A validator setup using nimbus and besu which can be exectuded via docker compose.
-
First copy the
default.env
to a.env
and change the configuration as needed.$ cp default.env .env
-
Create data directories as specified in the
.env
. This can be done by executing:# Elevated priviliges are needed to set correct ownership and permissions. $ sudo ./create-data-directories.sh $(whoami) # Option 2: # Create data directories and set permissions manually e.g. # $ mkdir -p data/besu # $ mkdir -p data/nimbus # Set permissions as described in here: https://nimbus.guide/data-dir.html#permissions
-
Generate a JWT secret for authentication between the beacon and execution node.
$ openssl rand -hex 32 | tr -d "\n" > ./secrets/jwtsecret
(Optional) Create a
keymanagertoken
token file for accessing the keymanager API$ openssl rand -hex 32 | tr -d "\n" > ./secrets/keymanagertoken
-
Import your validator keys when deciding to run a validator. This can be done by placing your validator keys in the
validator_keys/
directory and by executing:# You'll be asked to enter the password you created to encrypt your keystore(s). $ ./import-validator-keys.sh
-
Copy
nimbus-config/default-config.toml
tonimbus-config/config.toml
and set your fee recipient address innimbus-config/config.toml
. -
Copy
besu-config/default-config.toml
tobesu-config/config.toml
and set your fee recipient address inbesu-config/config.toml
. -
(Optionally) Start trusted node sync (before set a trusted URL in
.env
) by executing:$ ./init-trusted-node-sync.sh
-
Start by running:
$ ./start.sh
For updating services simply execute:
$ ./start.sh