Split validator private keys
This process should only be used if you want to split an existing validator private key into multiple private key shares for use in a Distributed Validator Cluster. If your existing validator is not properly shut down before the Distributed Validator starts, your validator may be slashed.
If you are starting a new validator, you should follow a quickstart guide instead.
If you use MEV-Boost, make sure you turned off your MEV-Boost service for the time of splitting the keys, otherwise you may hit this issue.
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 docker installed.
- Make sure
docker
is running before executing the commands below.
Step 1. Clone the charon repo and copy existing keystore files
Clone the Charon repo.
# Clone the repo
git clone https://github.com/ObolNetwork/charon.git
# Change directory
cd charon/
# Create a folder within this checked out repo
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
).
At the end of this process, you should have a tree like this:
├── split_keys
│ ├── keystore-0.json
│ ├── keystore-0.txt
│ ├── keystore-1.json
│ ├── keystore-1.txt
│ ...
│ ├── keystore-N.json