🛡️Switching / Migrating Execution Client

Important reasons why you would want to switch Execution Clients:

Here are some public options:

However, as validator downtime incurs minimal penalties, the added complexity might not be worth your time and extra work configuring a failover option.

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.

Option 1: Automated One-Liner

Simply copy and paste the command into your terminal.

Open source source code available here: https://github.com/coincashew/client-switcher

sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/coincashew/client-switcher/master/install.sh)"

Option 2: Manual Method

Step 1: Remove OLD Execution Client

Stop execution client and remove the service user, data paths, binaries and service files.

# Stop Execution Client
sudo systemctl stop execution
sudo systemctl disable execution

# Remove service file
sudo rm /etc/systemd/system/execution.service

# Nethermind
sudo rm -rf /usr/local/bin/nethermind
sudo rm -rf /var/lib/nethermind

# Besu
sudo rm -rf /usr/local/bin/besu
sudo rm -rf /var/lib/besu

# Geth
sudo rm -rf /usr/local/bin/geth
sudo rm -rf /var/lib/geth

# Erigon
sudo rm -rf /usr/local/bin/erigon
sudo rm -rf /var/lib/erigon

# Reth
sudo rm -rf /usr/local/bin/reth
sudo rm -rf /var/lib/reth

# Remove service user
sudo userdel execution
Step 2: Install NEW Execution Client

Follow the instructions found under section: Installing a new Execution Client.


Step 3: Restart Consensus Client

Ensure the consensus client establishes a connection to the new execution client.

sudo systemctl restart consensus
Step 4: Update Monitoring tools

Promentheus and Grafana:

  • Revisit the monitoring guide and update your prometheus.ymlconfiguration for the new execution client.

  • Ensure prometheus is connected to your new execution client's metrics port 6060.

  • Also import your new execution client's dashboard.

Beaconcha.in Mobile App:

  • To receive new notifications, update your app's settings to indicate you're using a different execution client

Congrats on switching to a new execution client!

Last updated