diff --git a/docs/int/quickstart/quickstart-exit.md b/docs/int/quickstart/quickstart-exit.md index dec4418afb..e9d73b9a53 100644 --- a/docs/int/quickstart/quickstart-exit.md +++ b/docs/int/quickstart/quickstart-exit.md @@ -5,6 +5,7 @@ description: Exit a validator import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; # Exit a DV @@ -95,6 +96,130 @@ It needs to be the validator client that is connected to your charon client taki + + + +
+          
+        {String.raw`docker exec -ti charon-distributed-validator-node-teku-1 /opt/teku/bin/teku voluntary-exit \
+        --beacon-node-api-endpoint="http://charon:3600/" \
+        --confirmation-enabled=false \
+        --validator-keys="/opt/charon/validator_keys:/opt/charon/validator_keys" \
+        --epoch=256`}
+          
+        
+
+ + The following executes an interactive command inside the Nimbus VC container. It copies all files and directories from the Keystore path /home/user/data/charon to the newly created /home/user/data/wd directory. +

+ For each file in the /home/user/data/wd/secrets directory, it: +
  • Extracts the filename without the extension as the file name is the public key
  • +
  • Appends {String.raw`--validator=`} to the command variable.
  • +
  • Executes a program called nimbus_beacon_node with the following arguments:
  • +
      +
    • deposits exit : Exits validators
    • +
    • $command : The generated command string from the loop.
    • +
    • --epoch=256 : The epoch upon which to submit the voluntary exit.
    • +
    • --rest-url=http://charon:3600/ : Specifies the Charon host:port
    • +
    • --data-dir=/home/user/charon/ : Specifies the Keystore path which has all the validator keys. There will be a secrets and a validators folder inside it.
    • +
    +
    +          
    +            {String.raw`docker exec -it charon-distributed-validator-node-nimbus-1 /bin/bash -c '\
    +        
    +            mkdir /home/user/data/wd
    +            cp -r /home/user/data/charon/ /home/user/data/wd
    +        
    +            command=""; \
    +            for file in /home/user/data/wd/secrets/*; do \
    +                filename=$(basename "$file" | cut -d. -f1); \
    +                command+=" --validator=$filename"; \
    +            done; \
    +        
    +    /home/user/nimbus_beacon_node deposits exit $command --epoch=256 --rest-url=http://charon:3600/ --data-dir=/home/user/data/wd/'`}
    +          
    +        
    +
    + + The following executes an interactive command inside the Loestar VC container to exit all validators. It executes + node /usr/app/packages/cli/bin/lodestar validator voluntary-exit with the arguments: +
      +
    • --beaconNodes="http://charon:3600" : Specifies the Charon host:port.
    • +
    • --data-dir=/opt/data : Specifies the folder where the key stores were imported.
    • +
    • --exitEpoch=256 : The epoch upon which to submit the voluntary exit.
    • +
    • --network=holesky : Specifies the network.
    • +
    • --yes : Skips confirmation prompt.
    • +
    +
    +          
    +        {String.raw`docker exec -it charon-distributed-validator-node-lodestar-1 /bin/sh -c 'node /usr/app/packages/cli/bin/lodestar validator voluntary-exit --beaconNodes="http://charon:3600" --dataDir=/opt/data --exitEpoch=256 --network=holesky --yes'`}
    +          
    +        
    +
    +
    +
    + + + +
    +          
    +        {String.raw`docker exec -ti charon-distributed-validator-node-teku-1 /opt/teku/bin/teku voluntary-exit \
    +        --beacon-node-api-endpoint="http://charon:3600/" \
    +        --confirmation-enabled=false \
    +        --validator-keys="/opt/charon/validator_keys:/opt/charon/validator_keys" \
    +        --epoch=194048`}
    +          
    +        
    +
    + + The following executes an interactive command inside the Nimbus VC container. It copies all files and directories from the Keystore path /home/user/data/charon to the newly created /home/user/data/wd directory. +

    + For each file in the /home/user/data/wd/secrets directory, it: +
  • Extracts the filename without the extension as the file name is the public key
  • +
  • Appends {String.raw`--validator=`} to the command variable.
  • +
  • Executes a program called nimbus_beacon_node with the following arguments:
  • +
      +
    • deposits exit : Exits validators
    • +
    • $command : The generated command string from the loop.
    • +
    • --epoch=194048 : The epoch upon which to submit the voluntary exit.
    • +
    • --rest-url=http://charon:3600/ : Specifies the Charon host:port
    • +
    • --data-dir=/home/user/charon/ : Specifies the Keystore path which has all the validator keys. There will be a secrets and a validators folder inside it.
    • +
    +
    +          
    +            {String.raw`docker exec -it charon-distributed-validator-node-nimbus-1 /bin/bash -c '\
    +        
    +            mkdir /home/user/data/wd
    +            cp -r /home/user/data/charon/ /home/user/data/wd
    +        
    +            command=""; \
    +            for file in /home/user/data/wd/secrets/*; do \
    +                filename=$(basename "$file" | cut -d. -f1); \
    +                command+=" --validator=$filename"; \
    +            done; \
    +        
    +    /home/user/nimbus_beacon_node deposits exit $command --epoch=194048 --rest-url=http://charon:3600/ --data-dir=/home/user/data/wd/'`}
    +          
    +        
    +
    + + The following executes an interactive command inside the Loestar VC container to exit all validators. It executes + node /usr/app/packages/cli/bin/lodestar validator voluntary-exit with the arguments: +
      +
    • --beaconNodes="http://charon:3600" : Specifies the Charon host:port.
    • +
    • --data-dir=/opt/data : Specifies the folder where the key stores were imported.
    • +
    • --exitEpoch=194048 : The epoch upon which to submit the voluntary exit.
    • +
    • --network=mainnet : Specifies the network.
    • +
    • --yes : Skips confirmation prompt.
    • +
    +
    +          
    +        {String.raw`docker exec -it charon-distributed-validator-node-lodestar-1 /bin/sh -c 'node /usr/app/packages/cli/bin/lodestar validator voluntary-exit --beaconNodes="http://charon:3600" --dataDir=/opt/data --exitEpoch=194048 --network=mainnet --yes'`}
    +          
    +        
    +
    +
    +
    Once a threshold of exit signatures has been received by any single charon client, it will craft a valid voluntary exit message and will submit it to the beacon chain for inclusion. You can monitor partial exits stored by each node in the [Grafana Dashboard](https://github.com/ObolNetwork/charon-distributed-validator-node).