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 validatorsudo systemctl stop beacon-chain💽 2 Export slashing database (Optional)
Update the export .json file location and name.
lighthouse account validator slashing-protection export <lighthouse_interchange.json>To be implemented
teku slashing-protection export --to=<FILE>prysm.sh validator slashing-protection export --datadir=/path/to/your/wallet --slashing-protection-export-dir=/path/to/desired/outputdir./lodestar account validator slashing-protection export --network mainnet --file 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>To be implemented
teku slashing-protection import --from=<FILE>prysm.sh validator slashing-protection import --datadir=/path/to/your/wallet --slashing-protection-json-file=/path/to/desiredimportfile./lodestar account validator slashing-protection import --network mainnet --file interchange.json🌠 5 Start new validator and new beacon chain
sudo systemctl start beacon-chain validatorsudo systemctl start beacon-chain🔥 6 Verify functionality
Check the logs to verify the services are working properly and ensure there are no errors.
sudo systemctl status beacon-chain validatorsudo systemctl status beacon-chainFinally, 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.