Nimbus VC

Download Nimbus

Follow the steps in this previous section to download Nimbus if you have not done so.

Nimbus BN

Create a new user account

sudo useradd --no-create-home --shell /bin/false nimbusvalidator

Prepare the validator data directory

1) Create a new folders to store the validator client data, validator keystore, and the validator keystore password

sudo mkdir -p /var/lib/nimbus_validator

2) Run the validator key import process.

sudo /usr/local/bin/nimbus_beacon_node deposits import --data-dir:/var/lib/nimbus_validator/ ~/validator_keys

3) Change the owner of this new folder to the nimbus_validator user

4) Restrict permissions on this new folder such that only the owner is able to read, write, and execute files in this folder

sudo chown -R nimbusvalidator:nimbusvalidator /var/lib/nimbus_validator
sudo chmod 700 /var/lib/nimbus_validator

Configure the validator client service

Create a systemd configuration file for the Nimbus Validator Client service to run in the background.

sudo nano /etc/systemd/system/nimbusvalidator.service

Paste the configuration parameters below into the file:

[Unit]
Description=Nimbus Validator Client (Holesky)
Wants=network-online.target
After=network-online.target

[Service]
User=nimbusvalidator
Group=nimbusvalidator
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/nimbus_validator_client \
  --data-dir=/var/lib/nimbus_validator \
  --payload-builder=true \
  --beacon-node=http://<Internal_IP_address>:5052 \
  --metrics \
  --metrics-port=8108 \
  --suggested-fee-recipient=<your_designated_ETH_wallet address> \
  --graffiti="<your_graffiti_of_choice>" \
  --doppelganger-detection

[Install]
WantedBy=multi-user.target

Once you're done, save with Ctrl+O and Enter, then exit with Ctrl+X. Understand and review your configuration summary below, and amend if needed.

Nimbus Validator Client configuration summary:

  1. --data-dir: Specify the directory for Nimbus to store the validator info

  2. --payload-builder: Required when using external builders to build blocks (e.g. MEV relays)

  3. --beacon-node: URLs to connect to the main and backup consensus clients if any. This needs to be the same IP address set in your consensus client. Refer back here if you don't remember it.

  4. --metrics: Enable metrics for monitoring

  5. --metrics-port: Set the port for retrieving metrics

  6. --suggested-fee-recipient: ETH wallet address to receive rewards from block proposals and MEV bribes

  7. --graffiti: Optional text to display on-chain when your validator proposes a block

  8. --doppelganger-detection: Helps prevents slashing due to double signing by checking if your validator keys are already active on the network. Not a fool-proof solution.

Start the Nimbus Validator Client service

Reload the systemd daemon to register the changes made, start the Nimbus Validator Client, and check its status to make sure its running.

sudo systemctl daemon-reload
sudo systemctl start nimbusvalidator.service
sudo systemctl status nimbusvalidator.service

The output should say the Nimbus Validator Client is “active (running)”. Press CTRL-C to exit and the Nimbus Validator Client will continue to run.

Use the following command to check the logs for any warnings or errors:

sudo journalctl -fu nimbusvalidator -o cat | ccze -A

Expected output:

Press CTRL-C to exit.

If the Nimbus Validator Client service is running smoothly, we can now enable it to fire up automatically when rebooting the system.

sudo systemctl enable nimbusvalidator

Expected output:

Created symlink /etc/systemd/system/multi-user.target.wants/nimbusvalidator.service → /etc/systemd/system/nimbusvalidator.service.

Remove duplicates of validator keystores

To prevent configuration mistakes leading to double signing in the future, remove duplicate copies of the validator signing keystores once everything is running smoothly.

sudo rm -r ~/validator_keys

Resources

Last updated