Updating Execution Client
🚀 Automated Updates
💊Install EthPillar: a simple companion UI for node management!
Update your software with a keystroke.
To update, navigate to
EthPillar > Execution Client > Update to latest release

⏩ Manual 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 execution client.
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 execution client.
Nethermind
Option 1 - Download binaries
Run the following to automatically download the latest linux release, un-zip and cleanup.
RELEASE_URL="https://api.github.com/repos/NethermindEth/nethermind/releases/latest"
BINARIES_URL="$(curl -s $RELEASE_URL | jq -r ".assets[] | select(.name) | .browser_download_url" | grep linux-x64)"
echo Downloading URL: $BINARIES_URL
cd $HOME
wget -O nethermind.zip $BINARIES_URL
unzip -o nethermind.zip -d $HOME/nethermind
rm nethermind.zipStop the services.
sudo systemctl stop executionRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/nethermind
sudo mv $HOME/nethermind /usr/local/bin/nethermind
sudo systemctl start executionOption 2 - Build from source code
Build the binaries.
cd ~/git/nethermind
# Get new tags
git fetch --tags
# Get latest tag name
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
# Checkout latest tag
git checkout $latestTag
# Build
dotnet publish src/Nethermind/Nethermind.Runner -c release -o nethermindVerify Nethermind was properly built by checking the version.
./nethermind/nethermind --versionSample output of a compatible version.
Version: 1.25.2+78c7bf5f
Commit: 78c7bf5f2c0819f23e248ee6d108c17cd053ffd3
Build Date: 2024-01-23 06:34:53Z
OS: Linux x64
Runtime: .NET 8.0.1Stop the services.
sudo systemctl stop executionRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/nethermind
sudo mv $HOME/git/nethermind/nethermind /usr/local/bin
sudo systemctl start executionBesu
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/hyperledger/besu/releases/latest"
TAG=$(curl -s $RELEASE_URL | jq -r .tag_name)
BINARIES_URL="https://github.com/hyperledger/besu/releases/download/$TAG/besu-$TAG.tar.gz"
echo Downloading URL: $BINARIES_URL
cd $HOME
wget -O besu.tar.gz $BINARIES_URL
tar -xzvf besu.tar.gz -C $HOME
rm besu.tar.gz
sudo mv $HOME/besu-* besuStop the services.
sudo systemctl stop executionRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/besu
sudo mv $HOME/besu /usr/local/bin/besu
sudo systemctl start executionOption 2 - Build from source code
Build the binaries.
cd ~/git/besu
# Get new tags
git fetch --tags
# Get latest tag name
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
# Checkout latest tag
git checkout $latestTag
# Build
./gradlew installDistVerify Besu was properly built by checking the version.
./build/install/besu/bin/besu --versionSample output of a compatible version.
besu/v23.4.0/linux-x86_64/openjdk-java-17Stop the services.
sudo systemctl stop executionRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/besu
sudo cp -a $HOME/git/besu/build/install/besu /usr/local/bin/besu
sudo systemctl start executionGeth
Option 1 - Download binaries
RELEASE_URL="https://geth.ethereum.org/downloads"
FILE="https://gethstore.blob.core.windows.net/builds/geth-linux-amd64[a-zA-Z0-9./?=_%:-]*.tar.gz"
BINARIES_URL="$(curl -s $RELEASE_URL | grep -Eo $FILE | head -1)"
echo Downloading URL: $BINARIES_URL
cd $HOME
wget -O geth.tar.gz $BINARIES_URL
tar -xzvf geth.tar.gz -C $HOME --strip-components=1Stop the services.
sudo systemctl stop executionInstall new binaries, restart the services and cleanup files.
sudo mv $HOME/geth /usr/local/bin
sudo systemctl start execution
rm geth.tar.gz COPYINGOption 2 - Build from source code
Build the binary.
cd $HOME/git/go-ethereum
# Get new tags
git fetch --tags
# Get latest tag name
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
# Checkout latest tag
git checkout $latestTag
# Build
make gethStop the services.
sudo systemctl stop executionRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/geth
sudo cp $HOME/git/go-ethereum/build/bin/geth /usr/local/bin
sudo systemctl start executionErigon
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/ledgerwatch/erigon/releases/latest"
BINARIES_URL="$(curl -s $RELEASE_URL | jq -r ".assets[] | select(.name) | .browser_download_url" | grep linux_amd64)"
echo Downloading URL: $BINARIES_URL
cd $HOME
wget -O erigon.tar.gz $BINARIES_URL
tar -xzvf erigon.tar.gz -C $HOME
rm erigon.tar.gz README.mdStop the services.
sudo systemctl stop executionRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/erigon
sudo mv $HOME/erigon /usr/local/bin/erigon
sudo systemctl start executionOption 2 - Build from source code
Build the binary.
cd $HOME/git/erigon
git fetch --tags
# Get latest tag name
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
# Checkout latest tag
git checkout $latestTag
make erigonStop the services.
sudo systemctl stop executionRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/erigon
sudo cp $HOME/git/erigon/build/bin/erigon /usr/local/bin
sudo systemctl start executionReth
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/paradigmxyz/reth/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
wget -O reth.tar.gz $BINARIES_URL
tar -xzvf reth.tar.gz -C $HOME
rm reth.tar.gzStop the services.
sudo systemctl stop executionRemove old binaries, install new binaries, display the version, and restart the services.
sudo rm -rf /usr/local/bin/reth
sudo mv $HOME/reth /usr/local/bin
reth --version
sudo systemctl restart executionOption 2 - Build from source code
Build the binaries.
cd ~/git/reth
git fetch --tags
# Get latest tag name
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
# Checkout latest tag
git checkout $latestTag
# Build the release
cargo build --releaseVerify Reth was built properly by checking the version number.
~/git/reth/target/release/reth --versionIn case of compilation errors, run the following sequence.
rustup update
cargo clean
cargo build --releaseStop the services.
sudo systemctl stop executionRemove old binaries, install new binaries and restart the services.
sudo rm -rf /usr/local/bin/reth
sudo cp ~/git/reth/target/release/reth /usr/local/bin
sudo systemctl restart executionStep 2: Verify services and logs are working properly
# Verify services status
sudo systemctl status execution# Check logs
sudo journalctl -fu executionStep 3: Optional - Verify your validator's attestations on public block explorer
1) Visit https://holesky.beaconcha.in
2) Enter your validator's pubkey into the search bar and look for successful attestations.