Switching / Migrating Consensus Client
🛑 1 Stop old beacon chain and old validator.
In order to export the slashing database, the validator needs to be stopped.
sudo systemctl stop beacon-chain validator
💽 2 Export slashing database (Optional)
Update the export .json file location and name.
lighthouse account validator slashing-protection export <lighthouse_interchange.json>
🚧 3 Setup and install new validator / beacon chain
Now you need to setup/install your new validator but do not start running the systemd processes. Be sure to thoroughly follow your new validator's Section 4. Configure a ETH2 beacon chain and validator. You will need to build/install the client, configure port forwarding/firewalls, and new systemd unit files.
✨ Pro Tip: During the process of re-importing validator keys, wait at least 13 minutes or two epochs to prevent slashing penalties. You must avoid running two consensus clients with same validator keys at the same time.
🛑 Critical Step: Do not start any systemd processes until either you have imported the slashing database or you have waited at least 13 minutes or two epochs.
📂 4 Import slashing database (Optional)
Using your new consensus client, run the following command and update the relevant path to import your slashing database from 2 steps ago.
lighthouse account validator slashing-protection import <my_interchange.json>
🌠 5 Start new validator and new beacon chain
sudo systemctl start beacon-chain validator
🔥 6 Verify functionality
Check the logs to verify the services are working properly and ensure there are no errors.
sudo systemctl status beacon-chain validator
Finally, verify your validator's attestations are working with public block explorer such as
Enter your validator's pubkey to view its status.
🧯 7 Update Monitoring with Prometheus and Grafana
Review section 6 and change your prometheus.yml
. Ensure prometheus is connected to your new consensus client's metrics port. You will also want to import your new consensus client's dashboard.