Step 1: Getting started with Obol’s distributed validator software
There are 2 ways to start with Obol. Using the Obol DV Launchpad. Once the ‘create a cluster alone’ steps from the launchpad “Create a distributed validator alone” flow are completed, the user should have acluster/
subdirectory created.
To install Charon (Obol’s middleware client for managing the DVs), create private key shares for each of the DV nodes, follow this guide.
Once all the steps have been completed you just need to make small configurational changes.
Step 2: Create docker override file
If you have a pre-existing EL and CL Synced setup then follow this step or skip to step 3. As a reference you can take a look at this guide: https://docs.obol.tech/docs/int/quickstart/quickstart-mainnet#using-a-remote-mainnet-beacon-node Create a file docker-compose.override.yml and paste the following code:Step 3: Preparing the environment and the .env file
Take a look at the charon-distributed-validator-cluster repo. Importantly, it is recommended that you copy the sample env file found here: https://github.com/ObolNetwork/charon-distributed-validator-node/blob/main/.env.sample Where you can comment out the elements of the file you need. For example, here is a minimal.env
file:
- NETWORK: network on which the validator key is going to be active.
- CHARON_BEACON_NODE_ENDPOINTS: The endpoint for the beacon client. For this tutorial, the beacon node endpoint will be of the already running beacon client. Since we need to access the localhost:5052 from inside the docker, the localhost needs to be updated with the docker0 IP address, hence the endpoint will look like:
http://172.17.0.1:5052
. In case someone wants to connect to an external beacon node, they need to provide the consensus layer REST API link. - CHARON_PORT_P2P_TCP: TCP port for node0. The ports can be the same for all the DV clients if they are being run on separate devices. For the sake of this tutorial, all the nodes are running on the same device, hence the ports should be different for each of the DV clients.
- MONITORING_PORT_GRAFANA: Grafana port. Different for nodes running on the same device.
Step 4: Starting the nodes
To start the nodes, simply rundocker compose up
To manage docker as a non-root user, you might have to add docker as a user group. Follow this docker documentation to do so.