This repo contains the docker-compose files needed to run one node in a charon Distributed Validator Cluster for a Lido Simple DVT module.
A distributed validator node is a machine running:
- An Ethereum Execution client
 - An Ethereum Consensus client
 - An Ethereum Distributed Validator client
 - An Ethereum Validator client
 
lido-charon-distributed-validator-node is a repo intended as a deployment guide and is not intended to be the canonical way to deploy a distributed validator.
Operators are encouraged to use this repository to build and maintain their own configurations that work for their individual use case.
Check the Obol docs for detailed instructions on how to get started using example repos.
To configure this repo for a particular network, follow these instructions. If you do not, your node will fail to start.
- Copy 
.env.sample.<network-name>to.env: 
    # mainnet
    cp .env.sample.mainnet .env
    # holesky
    cp .env.sample.holesky .env
    # hoodi
    cp .env.sample.hoodi .envNOTE: If you are using commit-boost, instead of mev-boost, do the same for commit-boost's config:
    # mainnet
    cp commit-boost/.config.toml.sample.mainnet commit-boost/config.toml
    # holesky
    cp commit-boost/.config.toml.sample.holesky commit-boost/config.toml
    # hoodi
    cp commit-boost/.config.toml.sample.hoodi commit-boost/config.toml- Grab your operator ID from the lido mainnet dashboard or testnet dashboard.
 - Find 
VE_OPERATOR_IDin.envand set it to your operator ID. - Find 
VE_EASY_TRACK_MOTION_CREATOR_ADDRESSES_ALLOWLIST=["0xYourNodeOperatorRewardAddress"], uncomment it, and change0xYourNodeOperatorRewardAddressto your Lido Operator SAFE manager address for your cluster. - To enable log collection with promtail which will stream logs to the Obol Core team to help identify cluster issues find 
MONITORING=${MONITORING:-monitoring},monitoring-log-collectorand uncomment it. - Consult with the others in your cluster, and choose a set of execution layer (EL), consensus layer (CL), validator client (VC) and mev clients (MEV) for your setup that maximises the client diversity of your cluster; by commenting and uncommenting one of each in the opening lines of your 
.envfile. - Save and close the 
.envfile. 
Important
You will need a .charon/ folder from a completed DKG ceremony present in this repo to complete the remaining setup of the node.
Finally, to run the node run the following command.
docker compose up -dTo update your node to a new release, run the following commands;
# Stop the node
docker compose down
# Save any local changes
git stash
git pull
# Check out the latest version of the repo (replace `v.0.*.* with e.g. `v0.2.0`)
git checkout v0.*.*
# Re-apply the local changes
git stash apply
# Restart the node
docker compose up -dCheck the Obol docs for frequent errors and resolutions.

