Updating Consensus Client
⏩ Updates
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 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.
Step 1: Select your consensus client.
Staking setups prior to July 2023:
Using beacon-chain as the consensus client service name? Checkout the guide to update concensus client.
Lighthouse
Option 1 - Download binaries
Run the following to automatically download the latest linux release, un-tar and cleanup.
RELEASE_URL="https://api.github.com/repos/sigp/lighthouse/releases/latest"
BINARIES_URL="$(curl -s $RELEASE_URL | jq -r ".assets[] | select(.name) | .browser_download_url" | grep x86_64-unknown-linux-gnu.tar.gz$)"
echo Downloading URL: $BINARIES_URL
cd $HOME
# Download
wget -O lighthouse.tar.gz $BINARIES_URL
# Untar
tar -xzvf lighthouse.tar.gz -C $HOME
# Cleanup
rm lighthouse.tar.gzStop the services.
sudo systemctl stop consensus validatorRemove old binaries, install new binaries and restart the services.
sudo rm /usr/local/bin/lighthouse
sudo mv $HOME/lighthouse /usr/local/bin/lighthouse
sudo systemctl start consensus validatorOption 2 - Build from source code
Build the binaries.
cd ~/git/lighthouse
git fetch --all && git checkout stable && git pull
make💡Tip: Improve some Lighthouse benchmarks by around 20% at the expense of increased compile time? Use maxperf profile.
- To compile with maxperf, replace the above - makecommand with
PROFILE=maxperf makeIn case of compilation errors, run the following sequence.
rustup update
cargo clean
makeVerify lighthouse was built properly by checking the version number.
lighthouse --versionStop the services.
sudo systemctl stop consensus validatorRemove old binaries, install new binaries and restart the services.
sudo rm /usr/local/bin/lighthouse
sudo cp $HOME/.cargo/bin/lighthouse /usr/local/bin/lighthouse
sudo systemctl start consensus validatorLodestar
Option 1 - Download binaries
Run the following to automatically download the latest linux release, un-tar and cleanup.
RELEASE_URL="https://api.github.com/repos/ChainSafe/lodestar/releases/latest"
LATEST_TAG="$(curl -s $RELEASE_URL | jq -r ".tag_name")"
BINARIES_URL="https://github.com/ChainSafe/lodestar/releases/download/${LATEST_TAG}/lodestar-${LATEST_TAG}-linux-amd64.tar.gz"
echo Downloading URL: $BINARIES_URL
cd $HOME
# Download
wget -O lodestar.tar.gz $BINARIES_URL
# Untar
tar -xzvf lodestar.tar.gz -C $HOME
# Cleanup
rm lodestar.tar.gzStop the services.
sudo systemctl stop consensus validatorRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/lodestar && sudo mkdir -p /usr/local/bin/lodestar
sudo mv $HOME/lodestar /usr/local/bin/lodestar
sudo systemctl start consensus validatorOption 2 - Build from source code
Pull the latest source and build Lodestar.
cd ~/git/lodestar
git checkout stable && git pull
yarn install
yarn run build⚠️ In case of build errors or missing dependencies, run the following command.
yarn clean:nm && yarn installVerify Lodestar was installed properly by displaying the version.
./lodestar --versionSample output of a compatible version.
🌟 Lodestar: TypeScript Implementation of the Ethereum Consensus Beacon Chain.
  * Version: v1.8.0/stable/a4b29cf
  * by ChainSafe Systems, 2018-2022Stop the services.
sudo systemctl stop consensus validatorRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/lodestar
sudo cp -a $HOME/git/lodestar /usr/local/bin/lodestar
sudo systemctl start consensus validatorTeku
Option 1 - Download binaries
Run the following to automatically download the latest linux release, un-tar and cleanup.
RELEASE_URL="https://api.github.com/repos/ConsenSys/teku/releases/latest"
LATEST_TAG="$(curl -s $RELEASE_URL | jq -r ".tag_name")"
BINARIES_URL="https://artifacts.consensys.net/public/teku/raw/names/teku.tar.gz/versions/${LATEST_TAG}/teku-${LATEST_TAG}.tar.gz"
echo Downloading URL: $BINARIES_URL
cd $HOME
# Download
wget -O teku.tar.gz $BINARIES_URL
# Untar
tar -xzvf teku.tar.gz -C $HOME
# Rename folder
mv teku-* teku
# Cleanup
rm teku.tar.gzStop the services.
sudo systemctl stop consensus
# If running Standalone Teku Validator
sudo systemctl stop validatorRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/teku
sudo mv $HOME/teku /usr/local/bin/teku
sudo systemctl start consensus
# If running Standalone Teku Validator
sudo systemctl start validatorOption 2 - Build from source code
Fetch the latest tags and build the binaries.
cd ~/git/teku
# Get new tags
git fetch --tags
RELEASETAG=$(curl -s https://api.github.com/repos/ConsenSys/teku/releases/latest | jq -r .tag_name)
git checkout tags/$RELEASETAG
./gradlew distTar installDistVerify Teku was built properly by displaying the version.
cd $HOME/git/teku/build/install/teku/bin
./teku --versionStop the services.
sudo systemctl stop consensus
# If running Standalone Teku Validator
sudo systemctl stop validatorRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/teku
sudo cp -a $HOME/git/teku/build/install/teku /usr/local/bin/teku
sudo systemctl start consensus
# If running Standalone Teku Validator
sudo systemctl start validatorNimbus
Option 1 - Download binaries
Run the following to automatically download the latest linux release, un-tar and cleanup.
RELEASE_URL="https://api.github.com/repos/status-im/nimbus-eth2/releases/latest"
BINARIES_URL="$(curl -s $RELEASE_URL | jq -r ".assets[] | select(.name) | .browser_download_url" | grep _Linux_amd64.*.tar.gz$)"
echo Downloading URL: $BINARIES_URL
cd $HOME
# Download
wget -O nimbus.tar.gz $BINARIES_URL
# Untar
tar -xzvf nimbus.tar.gz -C $HOME
# Rename folder
mv nimbus-eth2_Linux_amd64_* nimbus
# Cleanup
rm nimbus.tar.gzStop the services.
sudo systemctl stop consensus
# If running standalone Nimbus Validator
sudo systemctl stop validatorRemove old binaries, install new binaries, cleanup and restart the services.
sudo rm /usr/local/bin/nimbus_beacon_node
sudo rm /usr/local/bin/nimbus_validator_client
sudo mv nimbus/build/nimbus_beacon_node /usr/local/bin
sudo mv nimbus/build/nimbus_validator_client /usr/local/bin
rm -r nimbus
sudo systemctl start consensus
# If running standalone Nimbus Validator
sudo systemctl start validatorReminder: In combined CL+VC Nimbus configuration, there will be no validator systemctl service.
Option 2 - Build from source code
Pull the latest source code and build the binary.
cd ~/git/nimbus-eth2
git checkout stable && git pull
make -j$(nproc) update
make -j$(nproc) nimbus_beacon_node
make -j$(nproc) nimbus_validator_clientVerify Nimbus was built properly by displaying the version.
cd $HOME/git/nimbus-eth2/build
./nimbus_beacon_node --versionStop the services.
sudo systemctl stop consensus
# If running standalone Nimbus Validator
sudo systemctl stop validatorRemove old binaries, install new binaries and restart the services.
sudo rm /usr/local/bin/nimbus_beacon_node
sudo rm /usr/local/bin/nimbus_validator_client
sudo cp $HOME/git/nimbus-eth2/build/nimbus_beacon_node /usr/local/bin
sudo cp $HOME/git/nimbus-eth2/build/nimbus_validator_client /usr/local/bin
sudo systemctl start consensus
# If running standalone Nimbus Validator
sudo systemctl start validatorReminder: In combined CL+VC Nimbus configuration, there will be no validator systemctl service.
Prysm
Option 1 - Download binaries
Run the following to automatically download the latest binaries.
cd $HOME
prysm_version=$(curl -f -s https://prysmaticlabs.com/releases/latest)
file_beacon=beacon-chain-${prysm_version}-linux-amd64
file_validator=validator-${prysm_version}-linux-amd64
curl -f -L "https://prysmaticlabs.com/releases/${file_beacon}" -o beacon-chain
curl -f -L "https://prysmaticlabs.com/releases/${file_validator}" -o validator
chmod +x beacon-chain validatorStop the services.
sudo systemctl stop consensus validatorRemove old binaries, install new binaries and restart the services.
sudo rm /usr/local/bin/beacon-chain
sudo rm /usr/local/bin/validator
sudo mv beacon-chain validator /usr/local/bin
sudo systemctl start consensus validatorOption 2 - Build from source code
Pull the latest source code and build the binaries.
cd $HOME/git/prysm
git fetch --tags
RELEASETAG=$(curl -s https://api.github.com/repos/prysmaticlabs/prysm/releases/latest | jq -r .tag_name)
git checkout tags/$RELEASETAG
go build -o=./build/beacon-chain ./cmd/beacon-chain
go build -o=./build/validator ./cmd/validatorStop the services.
sudo systemctl stop consensus validatorRemove old binaries, install new binaries and restart the services.
sudo rm /usr/local/bin/beacon-chain
sudo rm /usr/local/bin/validator
sudo cp $HOME/git/prysm/build/beacon-chain /usr/local/bin
sudo cp $HOME/git/prysm/build/validator /usr/local/bin
sudo systemctl start consensus validatorStep 2: Verify services and logs are working properly
# Verify services status
sudo systemctl status consensus validator# Check logs
sudo journalctl -fu consensussudo journalctl -fu validator# Check services status
sudo systemctl status consensus# Check logs
sudo journalctl -fu consensusStep 3: Optional - Verify your validator's attestations on public block explorer
1) Visit https://beaconcha.in/ or https://beaconscan.com/
2) Enter your validator's pubkey into the search bar and look for successful attestations.
Last updated
