🛡️Switching / Migrating Execution Client

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.

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)"
One-liner screenshot

Option 2: Manual Method

Step 1: Remove OLD Execution Client

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

Step 2: Install NEW Execution Client

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.

Step 3: Restart Consensus Client

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

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