Adding Validators
Add validators to your existing distributed validator cluster using the charon alpha edit add-validators command.
This is an alpha feature and is not yet recommended for production use.
You can add validators to your cluster using the charon alpha edit add-validators command. The example below is designed for the CDVN repository and assumes a Lodestar validator, but the process is similar for other setups.
Prerequisites
Review the
edit add-validatorscommand CLI reference.Keep the DV node running during the process and ensure you have a copy of the current cluster lock file and validator private key shares (or use
--unverifiedif validator keys are not accessible).
Adding Validators Process
The examples below are for adding 10 validators. You can use them with any number of validators you would like to add. Run the following command to collectively generate and add 10 new validators with other node operators (similar to DKG):
# If you prefer running a pre-built charon binary
charon alpha edit add-validators --num-validators 10 --withdrawal-addresses=0x<your_withdrawal_address> --fee-recipient-addresses=0x<your_fee_recipient_address> --output-dir=output
# Or, if you prefer running it in Docker
# (replace 'latest' with the most recent version if needed: https://hub.docker.com/r/obolnetwork/charon/tags)
docker run --rm -v "$(pwd):/opt/charon" -w "/opt/charon" obolnetwork/charon:latest alpha edit add-validators --num-validators 10 --withdrawal-addresses=0x<your_withdrawal_address> --fee-recipient-addresses=0x<your_fee_recipient_address> --output-dir=/opt/charon/outputThis command will create a new cluster configuration that includes both existing and new validators. It will also generate the necessary keys for the new validators and deposit data files. The new configuration will be saved in the output directory.
Making the DV Stack Use the New Validators
The example below is designed for the CDVN repository, but the process is similar for other setups.
To start using the new configuration (with the added validators), stop the current Charon and validator client instances:
Back up and remove the existing
.charondirectory, then move theoutputdirectory to.charon:
Restart the Charon and validator client instances:
Lodestar's boot script (lodestar/run.sh) will automatically import all keys, removing any existing keys and cache. Charon will load the new cluster-lock.json and recognise all validators in the cluster.
Current Considerations
The new cluster configuration will not be reflected on the Obol Launchpad.
The new cluster configuration will have a new cluster hash, so the observability stack will display new cluster under a different identifier.
If Charon has no access to the existing validator keys (for example, if they're stored in a remote KeyManager), you must use the
--unverifiedflag. This flag allows the addition to proceed but skips hashing and signing the new cluster lock data. However when using cluster artifacts created with this flag, you must startcharon runwith the--no-verifyflag or set theCHARON_NO_VERIFY=trueenvironment variable.If you use different validator clients, review the keys import script. The old keys in
.charon/validator_keysremain unchanged, so verify that importing the same keys will not disrupt the validator client's state.
Last updated
Was this helpful?

