# Guía para instalar un nodo de [Zosma](http://zosma.dappnode.io/) con Openethereum: > Zosma usa [Openethereum](https://github.com/openethereum/openethereum) o [Nethermind](https://github.com/NethermindEth/nethermind), en el ejemplo el sistema operativo es Debian10(buster) con Openethereum, *(debería funcionar con Ubuntu)*. ## Instalamos dependencias: - Actualizamos: ```sh sudo apt update && sudo apt -y upgrade ``` - Como [indica el repositorio](https://github.com/openethereum/openethereum#31-build-dependencies-) nos hará falta `clang (>= 9.0)`, `clang++`, `pkg-config`, `file`, `make` y `cmake` *(`build-essential` es necesario para [Perl](https://wiki.debian.org/Perl))*: ```sh sudo apt install -y make clang pkg-config cmake libclang-dev build-essential perl perl-doc yasm wget ``` - Instalamos [Rustup](https://www.rustup.rs/): ```sh curl https://sh.rustup.rs -sSf | sh ``` ## Clonamos repositorio, seleccionamos la rama y compilamos: ```sh git clone https://github.com/openethereum/openethereum && cd openethereum git checkout main && cargo build --release --features final ``` > El binario se encuentran en `/openethereum/target/release` - Descargamos el [génesis](https://gist.github.com/q9f/79c201ca85ad2179fa32f311ef6e3617#file-zosma-json-L23), para Openethereum usamos el [`.json`](https://gist.github.com/q9f/79c201ca85ad2179fa32f311ef6e3617#file-zosma-json). ```sh wget https://gist.githubusercontent.com/q9f/79c201ca85ad2179fa32f311ef6e3617/raw/0370bf16c6f0b29558d6ff6901fd7d2ff596c398/zosma.json ``` - Iniciamos el nodo: ```sh openethereum --chain /home/dappnode/zosma.json --jsonrpc-port 8545 --jsonrpc-interface all --jsonrpc-hosts all --jsonrpc-cors all --ws-interface 0.0.0.0 --ws-port 8546 --ws-origins all --ws-hosts all --ws-apis all --reseal-on-txs none --force-sealing --identity "ZosmaWimelValid" --author 0xa9eb4c49718b9a3949a32b669ca7226570399526 --engine-signer 0xa9eb4c49718b9a3949a32b669ca7226570399526 --password /home/dappnode/.local/share/openethereum/keys/zosma-4/.passwd.pwd --keys-path /home/dappnode/.local/share/openethereum/keys/ ``` - Flags: >Ruta donde tenemos el `json` con el génesis: ```sh --chain /home/dappnode/zosma.json ``` >Identidad del nodo: ```sh --identity "ZosmaWimelValid" ``` >Clave pública de la wallet asociada al nodo: ```sh --author 0xa9eb4c49718b9a3949a32b669ca7226570399526 ``` >Clave pública de la wallet para las firmas: ```sh --engine-signer 0xa9eb4c49718b9a3949a32b669ca7226570399526 ``` >Archivo de texto donde tenemos la contraseña de la wallet: ``` --password /home/dappnode/.local/share/openethereum/keys/zosma-4/.passwd.pwd ``` >Ruta donde tenemos las claves de la wallet *(es un `json` encriptado)*: ```sh --keys-path /home/dappnode/.local/share/openethereum/keys/ ``` ## Creamos servicio de sistema para que el nodo inicie siempre con el servidor en caso de reinicio: > Entramos en `/etc/systemd/system/` y creamos un archivo llamado `zosma.service` dentro copiamos lo mismo que hemos usado para iniciarlo *(Cambiad el `User` si vuestro usuario es otro)*: ```sh [Unit] Description=Zosma node After=network.target [Service] Type=simple User=dappnode WorkingDirectory=/home/dappnode ExecStart=/home/dappnode/openethereum/target/release/openethereum --chain /home/dappnode/ssd/zosmaV/zosma.json --jsonrpc-port 8545 --jsonrpc-interface all --jsonrpc-hosts all --jsonrpc-cors all --ws-interface 0.0.0.0 --ws-port 8546 --ws-origins all --ws-hosts all --ws-apis all --reseal-on-txs none --force-sealing --identity "ZosmaWimelValid" --author 0xa9eb4c49718b9a3949a32b669ca7226570399526 --engine-signer 0xa9eb4c49718b9a3949a32b669ca7226570399526 --password /home/dappnode/.local/share/openethereum/keys/zosma-4/.passwd.pwd --keys-path /home/dappnode/.local/share/openethereum/keys/ Restart=on-failure RestartSec=3 LimitNOFILE=4096 [Install] WantedBy=multi-user.target ``` - Iniciamos el servicio de sistema: ```sh sudo systemctl start zosma.service ``` > Podemos ver los logs de nuestro nodo con `sudo journalctl -f -u zosma.service` - Activamos el servicio de sistema desde el arranque: ```sh sudo systemctl enable zosma.service ``` ### Problemas encontrados durante el inicio del nodo: En mi caso en Debian10 he tenido algunos problemas con el servicio `NTP` --- #### TODO: - Crear wallet con Metamask e importar el `json` con [mycrypto](https://mycrypto.com/).