Skip to main content

Set up an Obol DV Node with Sedge

What are Distributed Validators?

Read more about Obol DVs here

Sedge supports setting up distributed validator nodes just like it supports setting up a traditional validator node. This guide will walk you through the process of setting up a DV node using Sedge.

tip

Read more about how to generate Distributed Validator keys here.

Workflow breakdown

The Obol DV Setup process involves a few steps:

  1. Perform Obol DKG process: Generate distributed node contents and validator keys compatible with Obol DVT using DKG process.
  2. Set Up Your Full Node: Set up your full node with sedge generate command.
  3. Import DKG Validator keys: Import the keys generated in Step 1 using the sedge import_key command
  4. Run the cluster: Run the cluster using sedge run command.

Let's dive into each step in detail.

Using Sedge for setting up Obol DV node

Perform DKG and Generate DKG components

To get started with Obol DVT using Sedge, you first need to generate your validator keys and deposit data and DV node components with Obol DV Launchpad. You need to follow the steps listed below

  1. Step 1: Get your ENR
  2. Step 2: Create a cluster or accept an invitation to a cluster
  3. Step 3: Run the Distributed Key Generation (DKG) ceremony

At this stage, if DKG process is successful, a folder with name .charon will be created with the following structure for a cluster of 2 validators.

$sedge % tree .charon
.
├── charon-enr-private-key
├── cluster-lock.json
├── deposit-data.json
└── validator_keys
├── keystore-0.json
├── keystore-0.txt
├── keystore-1.json
├── keystore-1.txt

Setting up your full node

Once the DKG process is complete and .charon folder and its contents are generated, you can set up your full node using Sedge:

sedge generate full-node --validator=teku --consensus=prysm --execution=nethermind --network=holesky --distributed
note

This command will generate a DV enabled cluster for the Holesky testnet. If supported, you can set other networks by changing the --network flag. If supported, you can set other execution, consensus and validator clients using the respective flags.

Once the full node setup process is complete a folder with name sedge-data will be created.

$sedge % tree sedge-data
tree sedge-data
sedge-data
├── docker-compose.yml
└── jwtsecret

Next, run the import keys step:

sedge import-key --distributed --network holesky teku
note

This command will import the keys inside .charon folder into the validator client. If supported, you can set other networks by changing the --network flag. The validator client should be identical to the client used in the full-node generate command

Once the private keys import process is complete, the sedge-data folder contents will be updated.

sedge % tree sedge-data                                      
sedge-data
├── docker-compose.yml
├── jwtsecret
├── keystore
│ ├── deposit-data.json
│ ├── keystore-0.txt
│ ├── keystore-1.txt
│ └── validator_keys
│ ├── keystore-0.json
│ ├── keystore-1.json
└── validator-data
├── keys
│ ├── keystore-0.json
│ ├── keystore-1.json
└── passwords
├── keystore-0.txt
├── keystore-1.txt

Finally run the cluster.

sedge run