Skip to main content
Version: v1.2.0

Create a DV Alone

info

It is possible for a single operator to manage all of the nodes of a DV cluster. The nodes can be run on a single machine, which is only suitable for testing, or the nodes can be run on multiple machines, which is expected for a production setup.

The private key shares can be created centrally and distributed securely to each node. Alternatively, the private key shares can be created in a lower-trust manner with a Distributed Key Generation process, which avoids the validator private key being stored in full anywhere, at any point in its lifecycle. Follow the group quickstart instead for this latter case.

Pre-requisites

  • A basic knowledge of Ethereum nodes and validators.
  • Ensure you have git installed.
  • Ensure you have docker installed.
  • Make sure docker is running before executing the commands below.

Step 1: Create the key shares locally

Go to the the DV Launchpad and select Create a distributed validator alone. Follow the steps to configure your DV cluster. The Launchpad will give you a docker command to create your cluster.
Before you run the command, clone the CDVC repo and cd into the directory.

# Clone the repo
git clone https://github.com/ObolNetwork/charon-distributed-validator-cluster.git

# Change directory
cd charon-distributed-validator-cluster/

# Run the command provided in the DV Launchpad "Create a cluster alone" flow
docker run -u $(id -u):$(id -g) --rm -v "$(pwd)/:/opt/charon" obolnetwork/charon:v1.2.0 create cluster --definition-file=...

After the create cluster command is run, you should have multiple subfolders within the newly created ./cluster/ folder, one for each node created.

Backup the ./cluster/ folder, then move on to deploying the cluster.

info

Make sure your backup is secure and private, someone with access to these files could get the validators slashed.

Step 2: Deploy and start the nodes

warning

This part of the guide only runs one Execution Client, one Consensus Client, and 6 Distributed Validator Charon Client + Validator Client pairs on a single docker instance, and is not suitable for a mainnet deployment. (If this machine fails, there will not be any fault tolerance - the cluster will also fail.)

For a production deployment with fault tolerance, follow the part of the guide instructing you how to distribute the nodes across multiple machines.

Run this command to start your cluster containers if you deployed using the CDVC repo.

# Start the distributed validator cluster
docker compose up --build -d

Check the monitoring dashboard and see if things look all right.

# Open Grafana
open http://localhost:3000/d/laEp8vupp