On-page actions for Nimbus client
Nimbus client can be used for staking on various supported chains. Client installation is always only one, used by services with an individual configuration (different service name, data path and ports in use).
One-page interactive complete guide to configurate and operate Nimbus client.
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.
Nimbus client can be used for staking on various supported chains. Client installation is always only one, used by services with an individual configuration (different service name, data path and ports in use).
This will update the url links in the guide below.
cd ~/downloads && curl -LO https://github.com/status-im/nimbus-eth2/releases/download/v24.12.0/nimbus-eth2_Linux_amd64_24.12.0_4e440277.tar.gz
tar xvf nimbus-eth2_Linux_amd64_24.12.0_4e440277.tar.gz
/usr/local/bin
sudo cp -a nimbus-eth2_Linux_amd64_24.12.0_4e440277/build /usr/local/bin/nimbus
rm nimbus-eth2_Linux_amd64_24.12.0_4e440277.tar.gz && rm -r nimbus-eth2_Linux_amd64_24.12.0_4e440277
sudo apt-get install build-essential git-lfs cmake
cd ~/downloads && git clone -b stable https://github.com/status-im/nimbus-eth2.git
cd nimbus-eth2 && make update
make gnosis-build
make gnosis-vc-build
/usr/local/bin
sudo cp -a build/nimbus_beacon_node_gnosis /usr/local/bin/nimbus
sudo cp -a build/nimbus_validator_client_gnosis /usr/local/bin/nimbus
sudo useradd --system --no-create-home --shell /bin/false nimbusbeacon
sudo mkdir -p /var/lib/nimbus/beacon
sudo chown -R nimbusbeacon:nimbusbeacon /var/lib/nimbus/beacon
Each service on the server needs a custom port for communication. Through ports, consensus client communicates with other peers in the network as well as other services running on the server, such as validator clients. There is an IPv4 and IPv6 variant, depending on the ISP support / preference. Each protocol version needs custom port. If you are not sure what to select, continue with default IPv4 port.
9000
ss -tuln | grep ':9000'
If it returns empty response, the port 9000
is free and can be used.
$ sudo ufw allow 9000
sudo ufw status numbered
9000 (V6)
and
remove it with the following line
sudo ufw delete <Number>
9001
ss -tuln | grep ':9001'
If it returns empty response, the port 9001
is free and can be used.
5052
ss -tuln | grep ':5052'
If it returns empty response, the port 5052
is free and can be used.
9090
ss -tuln | grep ':9090'
If it returns empty response, the port 9090
is free and can be used.
$ sudo ufw allow 9090
sudo ufw status numbered
9090
and
remove it with the following line
sudo ufw delete <Number>
9091
ss -tuln | grep ':9091'
If it returns empty response, the port 9091
is free and can be used.
Open Nimbus Beacon configuration file
sudo nano /etc/systemd/system/nimbusbeacon.service
Copy configuration
[Unit]
Description=Nimbus Beacon Consensus Client (Mainnet)
Wants=network-online.target
After=network-online.target
[Service]
User=nimbusbeacon
Group=nimbusbeacon
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/nimbus/nimbus_beacon_node \
--network=mainnet \
--data-dir=/var/lib/nimbus/beacon \
--web3-url=http://127.0.0.1:8551 \
--rest \
--rest-port=5052 \
--tcp-port=9000 \
--udp-port=9000 \
--trusted-node-url=https://beaconstate.info \
--jwt-secret=/var/lib/jwtsecret/ethereum.hex
[Install]
WantedBy=multi-user.target
See more flags at https://nimbus.guide/options.html
[Unit]
Description=Nimbus Beacon Consensus Client (Gnosis)
Wants=network-online.target
After=network-online.target
[Service]
User=nimbusbeacon
Group=nimbusbeacon
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/nimbus/nimbus_beacon_node_gnosis \
--network=gnosis \
--data-dir=/var/lib/nimbus/beacon \
--web3-url=http://127.0.0.1:8551 \
--rest \
--rest-port=5052 \
--tcp-port=9000 \
--udp-port=9000 \
#--trusted-node-url=https://checkpoint.gnosischain.com/ \
--jwt-secret=/var/lib/jwtsecret/gnosis.hex
[Install]
WantedBy=multi-user.target
See more flags at https://nimbus.guide/options.html
For an option to start syncing from a snapshot, check checkpoint-sync-url
for a quick synchronization from a checpoint. After enabling it, verify, that you are on on the expected chain, see https://checkpoint.gnosischain.com/ → Get started → Nimbus
jwt-secret-file
, if you use different
CTRL
+ X
then Y
then ENTER
to save and exit the config
file.
sudo systemctl daemon-reload
sudo systemctl start nimbusbeacon
systemctl status nimbusbeacon
journalctl -fu nimbusbeacon
sudo systemctl enable nimbusbeacon
sudo nano /usr/local/bin/delayed-start.sh
Configurate service start inside it
systemctl start nimbusbeacon.service
delayed-start.service
service controlling delayed-start.sh
is enabled for auto start with system startup
sudo systemctl enable delayed-start.service
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
beaconServices="nimbusbeacon.service"
sudo nano /usr/local/bin/delayed-start.sh
/usr/local/bin/staking.sh start beacon
sudo systemctl enable delayed-start.service
Do you want to create a new validation instance or extend exisiting instance for more validators?
sudo mkdir -p /var/lib/nimbus/vi1
/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.
sudo useradd --system --no-create-home --shell /bin/false nimbus-vi1
/var/lib/nimbus/vi1
to validators-i1
usersudo chown -R nimbus-vi1:nimbus-vi1 /var/lib/nimbus/vi1
nimbus-vi1
serviceOpen the configuration file
sudo nano /etc/systemd/system/nimbus-vi1.service
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
See more flags at https://nimbus.guide/options.html
[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
CTRL
+ X
then Y
then ENTER
to save and exit the config file.
nimbus-vi1
into clients.conf file that is used by Staking Manager.
sudo nano /usr/local/etc/staking/config/clients.conf
nimbus-vi1
sudo systemctl stop nimbus-vi1
/var/lib/nimbus/vi1
for new keystoressudo /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.
sudo systemctl daemon-reload
sudo systemctl start nimbus-vi1
systemctl status nimbus-vi1
journalctl -fu nimbus-vi1
$ sudo systemctl enable nimbus-vi1
sudo /usr/local/bin/nimbus-beacon deposits exit --validator=/var/lib/nimbus/vi1
See more at https://nimbus.guide/voluntary-exit.html
cd /usr/local/bin
Beacon chain
./nimbus-beacon --version
Validator:
./nimbus-validator --version
This will update the url links in the guide below.
cd ~/downloads && curl -LO https://github.com/status-im/nimbus-eth2/releases/download/v24.12.0/nimbus-eth2_Linux_amd64_24.12.0_4e440277.tar.gz
tar xvf nimbus-eth2_Linux_amd64_24.12.0_4e440277.tar.gz
Stop Nimbus Beacon service and all validators-based services
sudo systemctl stop nimbusbeacon
sudo systemctl stop nimbus-vi...
sudo systemctl stop nimbus-vi...
...
Check services status for state
sudo systemctl status nimbusbeacon
sudo systemctl status nimbus-vi...; sudo systemctl status nimbus-vi...
...
Stop cosnsensus services
/usr/local/bin/staking.sh stop consensus
Check cosnsensus services status
/usr/local/bin/staking.sh check consensus
/usr/local/bin
sudo cp -a nimbus-eth2_Linux_amd64_24.12.0_4e440277/build /usr/local/bin/nimbus
Start Nimbus Beacon service and all validators-based services
sudo systemctl start nimbusbeacon
sudo systemctl start nimbus-vi...
sudo systemctl start nimbus-vi...
...
/usr/local/bin/staking.sh start consensus
systemctl status nimbusbeacon nimbus-vi..
journalctl -fu nimbusbeacon
journalctl -f -u nimbus-vi.. -u nimbus-vi..
/usr/local/bin/staking.sh check consensus
/usr/local/bin/staking.sh monitor consensus
rm nimbus-eth2_Linux_amd64_24.12.0_4e440277.tar.gz && rm -r nimbus-eth2_Linux_amd64_24.12.0_4e440277
cd ~/downloads && git clone -b stable https://github.com/status-im/nimbus-eth2.git
cd nimbus-eth2 && make update
make gnosis-build
make gnosis-vc-build
/usr/local/bin
sudo cp -a build/nimbus_beacon_node_gnosis /usr/local/bin/nimbus
sudo cp -a build/nimbus_validator_client_gnosis /usr/local/bin/nimbus