Important reasons why you would want to switch Execution Clients:
🦉 Client Diversity: Improve Ethereum's resilience by using a minority client
💾 Unique Features: Each client has their own strengths, i.e. faster sync, lower resource requirements, different programming language, unique abilities
🔥Optional Tip: Before switching, it is possible to minimize downtime and keep your validator online by using a failover node, either your own EL/CL stack, or a public service.
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.
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)"
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
Follow the instructions found under section: Installing a new Execution Client.
🔥Tip: As well as being a minority client, Nethermind is known to be incredibly fast at syncing, often as quick as 2 hours with fast NVME drives.
Ensure the consensus client establishes a connection to the new execution client.
sudo systemctl restart consensus
Promentheus and Grafana:
Revisit the monitoring guide and update your prometheus.yml
configuration 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!