CoinCashew
English
Search
⌃K
Links

Updating your consensus client

Scenario: In discord, you see an alert that your consensus client just announced a new release. How best to update?
🎊
Support us on Gitcoin Grants: We improve this guide with your support!🙏

Quick steps guide

The following steps align with our mainnet guide. You may need to adjust file names and directory locations where appropriate. The core concepts remain the same.
When a new release is cut, you will want to update to the latest stable release. The following shows you how to update your beacon chain and validator.
Always review the git logs with command git logor release notes before updating. There may be changes requiring your attention.
🔥
Pro tip: Plan your update to overlap with the longest attestation gap. Learn how here.
  1. 1.
    Select your consensus client.
Lighthouse
Nimbus
Teku
Prysm
Lodestar
Review release notes and check for breaking changes/features.
Pull the latest source and build it.
cd $HOME/git/lighthouse
git fetch --all && git checkout stable && git pull
make
Improve some Lighthouse benchmarks by around 20% at the expense of increased compile time? Use maxperf profile. To compile with maxperf, replace the above make command with
PROFILE=maxperf make
In case of compilation errors, update Rust with the following sequence.
rustup update
cargo clean
make
Verify the build completed by checking the new version number.
lighthouse --version
Restart beacon chain and validator as per normal operating procedures.
sudo systemctl reload-or-restart beacon-chain validator
Review release notes and check for breaking changes/features.
Pull the latest source and build it.
cd $HOME/git/nimbus-eth2
git checkout stable && git pull && make -j$(nproc) update
make -j$(nproc) nimbus_beacon_node
Verify the build completed by checking the new version number.
cd $HOME/git/nimbus-eth2/build
./nimbus_beacon_node --version
Stop, copy new binary, and restart beacon chain and validator as per normal operating procedures.
sudo systemctl stop beacon-chain
sudo rm /usr/bin/nimbus_beacon_node
sudo cp $HOME/git/nimbus-eth2/build/nimbus_beacon_node /usr/bin
sudo systemctl reload-or-restart beacon-chain
Review release notes and check for breaking changes/features.
If you encounter an error fetching the latest release TAG, install jq with following:
sudo apt-get install jq -y
Pull the latest release's tag and build it.
cd $HOME/git/teku
git fetch --all
RELEASETAG=$(curl -s https://api.github.com/repos/ConsenSys/teku/releases/latest | jq -r .tag_name)
git checkout tags/$RELEASETAG
echo "Updating to version: $RELEASETAG"
./gradlew distTar installDist
Verify the build completed by checking the new version number.
cd $HOME/git/teku/build/install/teku/bin
./teku --version
Restart beacon chain and validator as per normal operating procedures.
sudo systemctl stop beacon-chain
sudo rm -rf /usr/bin/teku
sudo cp -r $HOME/git/teku/build/install/teku /usr/bin/teku
sudo systemctl reload-or-restart beacon-chain
Review release notes and check for breaking changes/features.
#Simply restart the processes
sudo systemctl reload-or-restart beacon-chain validator
Review release notes and check for breaking changes/features.
Pull the latest source and build it.
cd $HOME/git/lodestar
git checkout stable && git pull
yarn install
yarn run build
Verify the build completed by checking the new version number.
./lodestar --version
Restart beacon chain and validator as per normal operating procedures.
sudo systemctl restart beacon-chain validator
2. Check the logs to verify the services are working properly and ensure there are no errors.
Lighthouse | Prysm | Lodestar
Nimbus | Teku
sudo systemctl status beacon-chain validator
sudo systemctl status beacon-chain
3. Finally, verify your validator's attestations are working with public block explorer such as
Enter your validator's pubkey to view its status.