diff --git a/docs/start/quickstart-exit.mdx b/docs/start/quickstart-exit.mdx
index 87664326a3..9b7c5a228d 100644
--- a/docs/start/quickstart-exit.mdx
+++ b/docs/start/quickstart-exit.mdx
@@ -124,102 +124,26 @@ It needs to be the validator client that is connected to your Charon client taki
-
-
-
-
-
-
-
- {String.raw`docker exec -it 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=162304`}
-
-
-
-
- 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.
-
-
-
- {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
-
- /home/user/nimbus_beacon_node deposits exit --all --epoch=162304 --rest-url=http://charon:3600/ --data-dir=/home/user/data/wd/'`}
-
-
-
-
- The following executes an interactive command inside the Lodestar VC container to exit all validators.
-
-
- {String.raw`docker exec -it charon-distributed-validator-node-lodestar-1 node /usr/app/packages/cli/bin/lodestar validator voluntary-exit \
- --beaconNodes="http://charon:3600" \
- --dataDir=/opt/data \
- --exitEpoch=162304 \
- --network=goerli \
- --yes`}
-
-
-
-
- The following executes an interactive command inside the Lighthouse VC container to exit all validators. The exit is submitted for the current epoch.
-
-
- {String.raw`docker exec -it charon-distributed-validator-node-lighthouse-1 /bin/bash -c '\
- for file in /opt/charon/keys/*; do \
- filename=$(basename $file);
- if [[ $filename == *".json"* ]]; then
- `}
- {String.raw` keystore=$`}
- {String.raw`{filename%.*};
- `}
- {String.raw`lighthouse account validator exit \
- --beacon-node http://charon:3600 \
- --keystore /opt/charon/keys/$keystore.json \
- --network goerli \
- --password-file /opt/charon/keys/$keystore.txt \
- --no-confirmation \
- --no-wait;
- fi;
- done;'`}
-
-
-
-
- Currently voluntary exits through Prysm are not supported. This is because Prysm support voluntary exits only if both the validator client and the beacon node are running on Prysm. Note that this is incompatible with Charon, as the Charon client intercepts the communication between the validator client and the consensus layer.
-
-
- Voluntary exit can be submitted directly through Charon as well. The partially signed exit messages are stored (centrally) on Obol's infrastructure. Exits through Charon are submitted per validator. All active validators public keys for a given cluster lock can be listed with:
-
-
- {String.raw`docker exec -it charon-distributed-validator-node-charon-1 /bin/sh -c 'charon exit active-validator-list \
- --beacon-node-endpoints="http://lighthouse:5052"'`}
-
-
- Then a signed partial exit for validator can be submitted by:
-
-
- {String.raw`docker exec -it charon-distributed-validator-node-charon-1 /bin/sh -c 'charon exit sign \
- --beacon-node-endpoints="http://lighthouse:5052" \
- --validator-public-key="" \
- --publish-timeout="5m"'`}
-
-
- After a sufficient amount of signed partial exits from node operators in the cluster is cumulated, a full (complete) exit is created. The threshold is the same as the one submitted during the cluster creation. After a full exit message is created, any operator from the cluster can broadcast it to the beacon chain with:
-
-
- {String.raw`docker exec -it charon-distributed-validator-node-charon-1 /bin/sh -c 'charon exit broadcast \
- --beacon-node-endpoints="http://lighthouse:5052" \
- --validator-public-key="" \
- --publish-timeout="5m"'`}
-
-
-
+
+ Exit a distributed validator using DappNode
+
+ -
+ Navigate to the config tab of your Obol DappNode package. Click 'Packages', then click 'My Packages', and enter the Obol package. Go to the config tab. At the bottom right corner of the page, click on 'Show Advanced Editor'.
+
+
+ -
+ The advanced editor config page provides ENV configs for each validator. Scroll to the validator number you want to exit and type “true” in the column opposite SIGN_EXIT.
+
+
+ -
+ Scroll to the bottom of the page and click the 'update' button for the changes to take effect.
+
+
+ -
+ Check your logs to confirm the exit process has started.
+
+
+
@@ -316,6 +240,27 @@ It needs to be the validator client that is connected to your Charon client taki
+
+ Exit a distributed validator using DappNode
+ Below steps provide steps to exit a validator using DappNode.
+
+ -
+ Navigate to the config tab of your Obol DappNode package. Click 'Packages', then click 'My Packages', and enter the Obol package. Go to the config tab. At the bottom right corner of the page, click on 'Show Advanced Editor'.
+
+
+ -
+ The advanced editor config page provides ENV configs for each validator. Scroll to the validator number you want to exit and type “true” in the column opposite SIGN_EXIT.
+
+
+ -
+ Scroll to the bottom of the page and click the 'update' button for the changes to take effect.
+
+
+ -
+ Check your logs to confirm the exit process has started.
+
+
+
diff --git a/docs/start/quickstart_group.mdx b/docs/start/quickstart_group.mdx
index 9618b97cda..eb0321fa15 100644
--- a/docs/start/quickstart_group.mdx
+++ b/docs/start/quickstart_group.mdx
@@ -108,15 +108,15 @@ Before preparing the DappNode to take part in a Distributed Validator Cluster, y
#### Install the Obol DappNode package
-With a fully synced Ethereum node now running on the DappNode, the below steps will walk through installing the Obol Holesky package via an IPFS hash and preparing for a Distributed Key Generation ceremony. Future versions of this guide will download the package from the official DappNode DappStore once a stable 1.0 release is made.
+With a fully synced Ethereum node now running on the DappNode, the below steps will walk through installing the Obol package via an IPFS hash and preparing for a Distributed Key Generation ceremony. Future versions of this guide will download the package from the official DappNode DappStore once a stable 1.0 release is made.
-
- Before installing the package, go to the Obol DappNode Repo in order to get the latest IPFS hash.
+ Before installing the package, make sure you are installing the correct one, this depends on which network your creator configures the cluster on, Holesky or Mainnet. You can find the link to both packages below:
-
@@ -430,7 +430,7 @@ For the [DKG](../charon/dkg.md) to complete, all operators need to be running th
Once the creator gives you the
cluster-definition.json
file and you place it in a .charon
subdirectory, run: docker run --rm -v "$(pwd):/opt/charon" obolnetwork/charon:v1.0.0 dkg --publish
and the DKG process should begin.
- Follow this step you are signing through the DV Launchpad, importing the cluster definition URL into the DappNode package's config & then running the DKG inside the DappNode, followed by cluster run.
+ Follow this step if you are signing through the DV Launchpad, importing the cluster definition URL into the DappNode package's config & then running the DKG inside the DappNode, followed by cluster run.
-
@@ -456,6 +456,23 @@ For the [DKG](../charon/dkg.md) to complete, all operators need to be running th
+ Create a DV Node Backup
+ It is important to back up all artefacts generated by the DKG ceremony, and your node ENR private key. The below steps will show you how to download your keys & node artefacts.
+
+ -
+ Navigate to the backup tab inside the Obol package.
+
+
+ -
+ Click on the 'Backup now' button and it will open a new chrome window with a 'file save' option. Select the path where you want to save the Backup tar file.
+
+
+ -
+ Double click to extract the tar file. There will be folders for each charon node (max 5). Navigate to each node folder, and all artefacts related to each node will be present.
+
+
+
+
diff --git a/static/img/ConfigTabExit.png b/static/img/ConfigTabExit.png
new file mode 100644
index 0000000000..4d8b58d14f
Binary files /dev/null and b/static/img/ConfigTabExit.png differ
diff --git a/static/img/ExitUpdate.png b/static/img/ExitUpdate.png
new file mode 100644
index 0000000000..3b66d5a85a
Binary files /dev/null and b/static/img/ExitUpdate.png differ
diff --git a/static/img/ExtractFile.png b/static/img/ExtractFile.png
new file mode 100644
index 0000000000..364119a7a8
Binary files /dev/null and b/static/img/ExtractFile.png differ
diff --git a/static/img/Node.png b/static/img/Node.png
new file mode 100644
index 0000000000..29cfee0449
Binary files /dev/null and b/static/img/Node.png differ
diff --git a/static/img/TypeTrue.png b/static/img/TypeTrue.png
new file mode 100644
index 0000000000..1913cc8a7a
Binary files /dev/null and b/static/img/TypeTrue.png differ
diff --git a/static/img/createBackup.png b/static/img/createBackup.png
new file mode 100644
index 0000000000..9501da92c2
Binary files /dev/null and b/static/img/createBackup.png differ
diff --git a/static/img/saveBackup.png b/static/img/saveBackup.png
new file mode 100644
index 0000000000..999c92ad3e
Binary files /dev/null and b/static/img/saveBackup.png differ