Nimbus
Last updated
Last updated
Documentation
Create a service user for the consensus service, create data directory and assign ownership.
sudo adduser --system --no-create-home --group consensus
sudo mkdir -p /var/lib/nimbus
sudo chown -R consensus:consensus /var/lib/nimbus
Install dependencies.
sudo apt install curl libsnappy-dev libc6-dev jq libc6 unzip ccze -y
Downloading binaries is often faster and more convenient.
Building from source code can offer better compatibility and is more aligned with the spirit of FOSS (free open source software).
Create a systemd unit file to define your consensus.service
configuration.
sudo nano /etc/systemd/system/consensus.service
Paste the following configuration into the file.
[Unit]
Description=Nimbus Consensus Layer Client service for Holesky
Wants=network-online.target
After=network-online.target
Documentation=https://www.coincashew.com
[Service]
Type=simple
User=consensus
Group=consensus
Restart=on-failure
RestartSec=3
KillSignal=SIGINT
TimeoutStopSec=900
ExecStart=/usr/local/bin/nimbus_beacon_node \
--network=holesky \
--data-dir=/var/lib/nimbus \
--tcp-port=9000 \
--udp-port=9000 \
--max-peers=100 \
--rest-port=5052 \
--enr-auto-update=true \
--non-interactive \
--status-bar=false \
--in-process-validators=false \
--web3-url=http://127.0.0.1:8551 \
--rest \
--metrics \
--metrics-port=8008 \
--jwt-secret="/secrets/jwtsecret" \
--suggested-fee-recipient=<0x_CHANGE_THIS_TO_MY_ETH_FEE_RECIPIENT_ADDRESS>
[Install]
WantedBy=multi-user.target
Replace <0x_CHANGE_THIS_TO_MY_ETH_FEE_RECIPIENT_ADDRESS>
with your own Ethereum address that you control. Tips are sent to this address and are immediately spendable.
Not staking? If you only want a full node, use the Standalone Beacon Node configuration and delete the whole line beginning with
--suggested-fee-recipient
To exit and save, press Ctrl
+ X
, then Y
, then Enter
.
Run the following to quickly sync with Checkpoint Sync.
sudo -u consensus /usr/local/bin/nimbus_beacon_node trustedNodeSync \
--network=holesky \
--trusted-node-url=https://holesky.beaconstate.ethstaker.cc \
--data-dir=/var/lib/nimbus \
--backfill=false
When the checkpoint sync is complete, you'll see the following message:
Done, your beacon node is ready to serve you! Don't forget to check that you're on the canonical chain by comparing the checkpoint root with other online sources. See https://nimbus.guide/trusted-node-sync.html for more information.
Run the following to enable auto-start at boot time.
sudo systemctl daemon-reload
sudo systemctl enable consensus
Finally, start your consensus layer client and check it's status.
sudo systemctl start consensus
sudo systemctl status consensus
Press Ctrl
+ C
to exit the status.
Check your logs to confirm that the consensus clients are up and syncing.
sudo journalctl -fu consensus | ccze
Example of Synced Consensus Client Logs
nimbus_beacon_node[292966]: INF 2023-02-05 01:20:00.000+00:00 Slot start topics="beacnde" slot=31205 epoch=903 sync=synced peers=80 head=13a131:31204 finalized=1111:cdba33411 delay=69us850ns
nimbus_beacon_node[292966]: INF 2023-02-05 01:20:08.000+00:00 Slot end topics="beacnde" slot=31205 nextActionWait=7m27s985ms126us530ns nextAttestationSlot=31235 nextProposalSlot=-1 syncCommitteeDuties=none head=13a131:31204
sudo journalctl -fu consensus | ccze
Example of Synced Nimbus Consensus Client Logs
nimbus_beacon_node[292966]: INF 2023-02-05 01:20:00.000+00:00 Slot start topics="beacnde" slot=31205 epoch=903 sync=synced peers=80 head=13a131:31204 finalized=1111:cdba33411 delay=69us850ns
nimbus_beacon_node[292966]: INF 2023-02-05 01:20:08.000+00:00 Slot end topics="beacnde" slot=31205 nextActionWait=7m27s985ms126us530ns nextAttestationSlot=31235 nextProposalSlot=-1 syncCommitteeDuties=none head=13a131:31204
Now that your consensus client is configured and started, you have a full node.
Proceed to the next step on setting up your validator client, which turns a full node into a staking node.