Update your software with a keystroke.
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.
Step 1: Select your consensus client.
Option 1 - Download binariesRun the following to automatically download the latest linux release, un-tar and cleanup.
Copy 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.gz
Stop the services.
Copy sudo systemctl stop consensus validator
Remove old binaries, install new binaries and restart the services.
Copy sudo rm /usr/local/bin/lighthouse
sudo mv $HOME/lighthouse /usr/local/bin/lighthouse
sudo systemctl start consensus validator
Option 2 - Build from source codeBuild the binaries.
Copy cd ~/git/lighthouse
git fetch --all && git checkout stable && git pull
make
To compile with maxperf, replace the above make
command with
In case of compilation errors, run the following sequence.
Copy rustup update
cargo clean
make
Verify lighthouse was built properly by checking the version number.
Stop the services.
Copy sudo systemctl stop consensus validator
Remove old binaries, install new binaries and restart the services.
Copy sudo rm /usr/local/bin/lighthouse
sudo cp $HOME/.cargo/bin/lighthouse /usr/local/bin/lighthouse
sudo systemctl start consensus validator
Option 1 - Build from source codePull the latest source and build Lodestar.
Copy cd ~/git/lodestar
git checkout stable && git pull
yarn install
yarn run build
Copy yarn clean:nm && yarn install
Verify Lodestar was installed properly by displaying the version.
Sample output of a compatible version.
Copy 🌟 Lodestar: TypeScript Implementation of the Ethereum Consensus Beacon Chain.
* Version: v1.8.0/stable/a4b29cf
* by ChainSafe Systems, 2018-2022
Stop the services.
Copy sudo systemctl stop consensus validator
Remove old binaries, install new binaries and restart the services.
Copy sudo rm -rf /usr/local/bin/lodestar
sudo cp -a $HOME/git/lodestar /usr/local/bin/lodestar
sudo systemctl start consensus validator
Option 1 - Download binariesRun the following to automatically download the latest linux release, un-tar and cleanup.
Copy 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.gz
Stop the services.
Copy sudo systemctl stop consensus
# If running Standalone Teku Validator
sudo systemctl stop validator
Remove old binaries, install new binaries and restart the services.
Copy 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 validator
Option 2 - Build from source codeFetch the latest tags and build the binaries.
Copy 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 installDist
Verify Teku was built properly by displaying the version.
Copy cd $HOME/git/teku/build/install/teku/bin
./teku --version
Stop the services.
Copy sudo systemctl stop consensus
# If running Standalone Teku Validator
sudo systemctl stop validator
Remove old binaries, install new binaries and restart the services.
Copy 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 validator
Option 1 - Download binariesRun the following to automatically download the latest linux release, un-tar and cleanup.
Copy 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.gz
Stop the services.
Copy sudo systemctl stop consensus
# If running standalone Nimbus Validator
sudo systemctl stop validator
Remove old binaries, install new binaries, cleanup and restart the services.
Copy 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 validator
Reminder: In combined CL+VC Nimbus configuration, there will be no validator systemctl service.
Option 2 - Build from source codePull the latest source code and build the binary.
Copy cd ~/git/nimbus-eth2
git checkout stable && git pull
make -j$(nproc) update
make -j$(nproc) nimbus_beacon_node
make -j$(nproc) nimbus_validator_client
Verify Nimbus was built properly by displaying the version.
Copy cd $HOME/git/nimbus-eth2/build
./nimbus_beacon_node --version
Stop the services.
Copy sudo systemctl stop consensus
# If running standalone Nimbus Validator
sudo systemctl stop validator
Remove old binaries, install new binaries and restart the services.
Copy 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 validator
Reminder: In combined CL+VC Nimbus configuration, there will be no validator systemctl service.
Option 1 - Download binariesRun the following to automatically download the latest binaries.
Copy 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 validator
Stop the services.
Copy sudo systemctl stop consensus validator
Remove old binaries, install new binaries and restart the services.
Copy 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 validator
Option 2 - Build from source codePull the latest source code and build the binaries.
Copy 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/validator
Stop the services.
Copy sudo systemctl stop consensus validator
Remove old binaries, install new binaries and restart the services.
Copy 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 validator
Step 2: Verify services and logs are working properly
Lighthouse | Prysm | Lodestar | Nimbus | Teku Combined BN+VC for Nimbus | Teku
Copy # Verify services status
sudo systemctl status consensus validator
Copy # Check logs
sudo journalctl -fu consensus
Copy sudo journalctl -fu validator
Copy # Check services status
sudo systemctl status consensus
Copy # Check logs
sudo journalctl -fu consensus
Step 3: Optional - Verify your validator's attestations on public block explorer
2) Enter your validator's pubkey into the search bar and look for successful attestations.