Add Nimbus validator

One-page interactive guide to install Nimbus client and configurate it for running on supported chain.

Disclaimer

This guide is for informational purposes only. The author nor website owner does not guarantee accuracy of the information in this guide and is not responsible for any damages or losses incurred by following the guide. See more.

Launch validator instance / validator(s)

Validators are defined by validator keys. Based on the network you are going to stake on, check Gnosis validator keys / Ethereum validator keys generation guide.

  1. Do you want to create a new validation instance or extend exisiting instance for more validators?

    • Create a directory for validator instance data

      sudo mkdir -p /var/lib/nimbus/vi1
    • Load keystores to /var/lib/nimbus/vi1

      :
      sudo /usr/local/bin/nimbus-validator import data-dir=/var/lib/nimbus/vi1 $HOME/keystores/ddk_i1

      NOTE: If you have used different passwords for each of your validators you will get an error. Run the process multiple times, providing each of the different passwords until they are all imported. Use the accounts list command to verify.

    • Create a service user for the validator instance

      sudo useradd --system --no-create-home --shell /bin/false nimbus-vi1
    • Set ownership of /var/lib/nimbus/vi1 to validators-i1 user

      sudo chown -R nimbus-vi1:nimbus-vi1 /var/lib/nimbus/vi1
    • Create configuration service file for nimbus-vi1 service

      1. Open the configuration file

        sudo nano /etc/systemd/system/nimbus-vi1.service
      2. Copy the configuration below into the file.

        [Unit]
        Description=Nimbus Validator Instance (Ethereum Mainnet)
        Wants=network-online.target
        After=network-online.target
        [Service]
        User=teku-vi1
        Group=teku-vi1
        Type=simple
        Restart=always
        RestartSec=5
        ExecStart=/usr/local/bin/nimbus/nimbus_validator_client \
          --network=mainnet \
          --data-dir=/var/lib/nimbus/vi1 \
          --beacon-node=http://127.0.0.1:5052 \
          --suggested-fee-recipient=0xXXXXXXXXXXXXXXXX \
          --graffiti="Nethermind+Nimbus"
          # --payload-builder=true --payload-builder-url=https://${HOST}:${PORT}/
         
        [Install]
        WantedBy=multi-user.target

        Notes

        [Unit]
        Description=Nimbus Validator Instance (Gnosis Network)
        Wants=network-online.target
        After=network-online.target
        [Service]
        User=nimbus-vi1
        Group=nimbus-vi1
        Type=simple
        Restart=always
        RestartSec=5
        ExecStart=/usr/local/bin/nimbus/nimbus_validator_client \
          --network=gnosis \
          --data-dir=/var/lib/nimbus/vi1 \
          --beacon-node=http://127.0.0.1:5052 \
          --suggested-fee-recipient=0xXXXXXXXXXXXXXXXX \
          --graffiti="Nethermind+Nimbus"
          
        [Install]
        WantedBy=multi-user.target

        See more flags at https://nimbus.guide/options.html

      3. Press CTRL + X then Y then ENTER to save and exit the config file.
    • Stop running validator instance nimbus-vi1

      sudo systemctl stop nimbus-vi1
    • Extend /var/lib/nimbus/vi1 for new keystores

      sudo /usr/local/bin/nimbus-validator import data-dir=/var/lib/nimbus/vi1 $HOME/keystores/ddk_i1

      NOTE: If you have used different passwords for each of your validators you will get an error. Run the process multiple times, providing each of the different passwords until they are all imported. Use the accounts list command to verify.

  2. Load processed changes to the system

    sudo systemctl daemon-reload
  3. Start the validator instance

    sudo systemctl start nimbus-vi1
  4. Check the running validator instance

    systemctl status nimbus-vi1
    journalctl -fu nimbus-vi1
  5. Activate service to start automatically

    sudo systemctl enable nimbus-vi1
    • Open Delayed Start shell
      sudo nano /usr/local/bin/delayed-start.sh

      Configurate service start inside it

      systemctl start nimbus-vi1.service
    • Be sure, delayed-start.service service controlling delayed-start.sh is enabled for auto start with system startup
      sudo systemctl enable delayed-start.service
    1. Configurate Staking Manager util

      • Open the configuration file
        sudo nano /usr/local/etc/staking/config/clients.conf

        If the file is empty, generate it with command sudo /usr/local/bin/staking.sh init

      • Set link to proper service. It should be as follow:
        validatorServices="nimbus-vi1"

        If you place more services to the category, separate them with a space, see validatorServices="service1 service2 service3 ..."

    2. Activate service to start automatically on OS startup

      • Open Start with delay util
        sudo nano /usr/local/bin/delayed-start.sh
      • Place or uncomment a command to start the validator client(s)
        /usr/local/bin/staking.sh start validators
      • Verify, that a service `delayed-start.service` exists and is automatically launched on system start.
        sudo systemctl enable delayed-start.service

Any issue while running Nimbus client?

Check Nimbus client emergency page.

Install Nimbus client Update Nimbus client Emergency for Nimbus client Exit Nimbus validator