githubEdit

Migrate an Existing Validator

Migrate an existing validator by splitting its private key into shares

circle-exclamation

Split an existing Ethereum validator key into multiple key shares for use in an Obol Distributed Validator Cluster.

Pre-requisites

  • Ensure you have the existing validator keystores (the ones to split) and passwords.

  • Ensure you have dockerarrow-up-right installed.

  • Make sure docker is running before executing the commands below.

  • If you use MEV-Boost, you must either:

    • Turn off your MEV-Boost client before you split your keys, or;

    • Temporarily use a relay you won't be using when running the Distributed Validator; to prevent registering for MEV with a timestamp more recent than the one Charon prepares at the moment of key splitting.

Step 1. Prepare the existing keystore files

Create a folder to hold the encrypted keystores, along with the passwords to decrypt them.

   # Create a folder
   mkdir split_keys

Copy the existing validator keystore.json files into this new folder. Alongside them, with a matching filename but ending with .txt should be the password to the keystore (e.g.: keystore-0.json, keystore-0.txt). The files must start with keystore*.

At the end of this process, you should have a tree like this:

Step 2. Split the keys using the charon docker command

Run the following docker command to split the keys (for mainnet):

The above command will create validator_keys along with cluster-lock.json in ./cluster for each node.

Command output:

These split keys can now be used to start a Charon cluster.

Step 3. (Optional) Encrypt artifacts for distribution

Within each folder are the encrypted private key shares, along with the decryption passwords. To transmit these folders to the operators/machines where they will run, it might be prudent to encrypt the folder as a .zip to transport them.

Last updated

Was this helpful?