πŸ—οΈObol Key Splitting

These instructions are used by Ether.fi to split the keys into keyshares for the Obol DVT validators.

As a solo staker, you do not need to follow or even understand the steps, but they are provided here for your interest.

Step 1: Clone the charon repo

Clone the charon repo into a new directory called charon-key-splitter.

cd ~
mkdir charon-key-splitter
cd charon-key-splitter
git clone https://github.com/ObolNetwork/charon.git .
mkdir split_keys

Step 2: Create a directory containing keys to split

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. These matching .txt files can be generated with a bash script.

At the start of this process, you should have a file tree that looks something like this.

β”œβ”€β”€ charon-key-splitter
      β”œβ”€β”€ split_keys
       Β Β  β”œβ”€β”€ keystore-0.json
       Β Β  β”œβ”€β”€ keystore-1.json
          ...
       Β Β  β”œβ”€β”€ keystore-*.json

Create the bash script file.

Save this script and make it executable.

Run the script.

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

Step 3: Split the keys into keyshares

Split the validator keys into keyshares.

In the .charon directory there will now be a cluster directory containing sub-directories, each named node0, node1, etc.

I can't see the .charon directory?! πŸ‘€

On most filesystems, files and directories that start with a . are hidden by default.

On a Unix system (Mac or Linux) on the command line you can see hidden files and directories using the -a flag for the ls command:

Each solo staker participate will receive one of these directories in a compressed format. The exact format depends on the machine being used. The file formats needed for Avado and Dappnode machines are slightly different and are explained below.

Avado requires the files to be uploaded in a .zip format.

Make sure you are in the .charon/cluster/ directory with all the node* directories.

For each node directory, compress the folder using the following command:

Last updated