diff --git a/docs/start/quickstart_group.md b/docs/start/quickstart_group.md index 37594210c1..39fe9e9283 100644 --- a/docs/start/quickstart_group.md +++ b/docs/start/quickstart_group.md @@ -45,12 +45,16 @@ This quickstart guide will walk you through creating a Distributed Validator Clu Make sure docker is running before executing the commands below. +
  • + (If you are taking part using a DappNode) A computer with an up to date version of DappNode's software and an internet connection. +
  • -
    - -## Step 1: Generate an ENR +## Step 1: Get your ENR + + + In order to prepare for a distributed key generation ceremony, you need to create an ENR for your charon client. This ENR is a public/private key pair that allows the other charon clients in the DKG to identify and connect to your node. If you are creating a cluster but not taking part as a node operator in it, you can skip this step. ```bash @@ -76,8 +80,83 @@ Please make sure to create a backup of the private key at `.charon/charon-enr-pr :::tip If instead of being shown your `enr` you see an error saying `permission denied` then you may need to [update your docker permissions](../faq/errors.mdx#docker-permission-denied-error) to allow the command to run successfully. ::: + + -For the next step, select the _Creator_ tab if you are coordinating the creation of the cluster. (This role holds no position of privilege in the cluster, it only sets the initial terms of the cluster that the other operators agree to.) Select the _Operator_ tab if you are accepting an invitation to operate a node in a cluster proposed by the cluster creator. +#### Prepare an Execution and Consensus client + +Before preparing the DappNode to take part in a Distributed Validator Cluster, you must ensure you have selected an execution client & consensus client on your DappNode under the 'Stakers' tab for the network you intend to validate. + +

    +

      +
    1. + Login to the DappNode Interface:{" "} + + Dappnode Login + + Dappnode Login +
    2. +
    3. + Click on the 'Stakers' tab on the left side, select an execution client (e.g. Geth) & consensus client (e.g. Lodestar) & click 'Apply changes'. This will start the syncing process which can take a number of hours. + Select Clients +
    4. +
    5. + Once the clients are finished syncing, it should reflect on your 'Dashboard' as shown below. + Dashboard showing chains are synced and their status are healthy +
    6. +
    +

    + +#### 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. + +

    +

      +
    1. + Before installing the package, go to the Obol DappNode Repo in order to get the latest IPFS hash. + +
    2. +
    3. + Copy the latest IPFS hash from the release details dropdown. + Retrieve IPFS Hash +
    4. +
    5. + Go back to DappNode Dashboard > Dappstore, select the 'Public' tab, and accept the terms & conditions before proceeding. + Select Public Tab +
    6. +
    7. + Paste the IPFS hash you copied from Github and click 'Search' (It may take a minute for the package to be found.) You will then be presented with the package installation page. Under the blue 'Install' button, click on 'Advanced Options' & toggle the button to 'Bypass only signed safe restriction'. + bypass only signed safe restriction +
    8. +
    9. + Click 'Install' & in the config mode page > select new cluster & submit. (if you already have the config URL, you can select URL option.) + Install Package +
    10. +
    11. + Accept the terms & conditions and the install process will begin. + Accept terms and conditions + Package Installing +
    12. +
    13. + You should now be able to see the Holesky Obol package under the 'Packages' tab. Click on the package to see important details. + Go to packages tab +
    14. +
    15. + Under the 'Info' tab, you will be see pre-generated ENRs, along with information such as the status of all five distributed validator clusters, their docker volumes & other menu options. + Get your ENR +
    16. +
    17. + Select any of the ENRs listed that are not already in use. This ENR will be used in the next step. +
    18. +
    +

    +
    +
    +For Step 2, select the "Creator" tab if you are coordinating the creation of the cluster (This role holds no position of privilege in the cluster, it only sets the initial terms of the cluster that the other operators agree to). Select the "Operator" tab if you are accepting an invitation to operate a node in a cluster, proposed by the cluster creator. ## Step 2: Create a cluster or accept an invitation to a cluster @@ -359,7 +438,6 @@ Please make sure to create a backup of your `.charon/` folder. **If you lose you The `cluster-lock` and `deposit-data` files are identical for each operator, if lost, they can be copied from one operator to another. ::: - Now that the DKG has been completed, all operators can start their nodes. ## Step 4: Start your Distributed Validator Node @@ -368,13 +446,11 @@ With the DKG ceremony over, the last phase before activation is to prepare your - The quickstart repository is configured to sync an execution layer client (Nethermind) and a consensus layer client (Lighthouse). You can also leverage alternative ways to run a node such as Ansible, Helm, or Kubernetes manifests. - + The quickstart repository is configured to sync an execution layer client (Nethermind) and a consensus layer client (Lighthouse). You can also leverage alternative ways to run a node such as Ansible, Helm, or Kubernetes manifests. - :::info Currently, the quickstart [repo](https://github.com/ObolNetwork/charon-distributed-validator-node) configures a node for the Holesky testnet. It is possible to choose a different network (another testnet, or mainnet) by overriding the `.env` file. @@ -388,6 +464,7 @@ Setup the desired inputs for the DV, including the network you wish to operate o # Copy ".env.sample", renaming it ".env" cp .env.sample .env ``` + ::: :::caution @@ -446,7 +523,6 @@ You might notice that there are logs indicating that a validator cannot be found - #### Using a pre-existing beacon node :::caution @@ -503,9 +579,8 @@ docker compose up -d - :::tip In a Distributed Validator Cluster, it is important to have a low latency connection to your peers. Charon clients will use the NAT protocol to attempt to establish a direct connection to one another automatically. If this doesn't happen, you should port forward charon's p2p port to the public internet to facilitate direct connections. (The default port to expose is `:3610`). Read more about charon's networking [here](../charon/networking.md). ::: -If you have gotten to this stage, every node is up, synced and connected, congratulations. You can now move forward to activating your validator to begin staking. \ No newline at end of file +If you have gotten to this stage, every node is up, synced and connected, congratulations. You can now move forward to activating your validator to begin staking. diff --git a/static/img/BypassButton.png b/static/img/BypassButton.png new file mode 100644 index 0000000000..1df302f5fd Binary files /dev/null and b/static/img/BypassButton.png differ diff --git a/static/img/DappnodeRepo.png b/static/img/DappnodeRepo.png new file mode 100644 index 0000000000..f27d0330de Binary files /dev/null and b/static/img/DappnodeRepo.png differ diff --git a/static/img/Dashboard.png b/static/img/Dashboard.png new file mode 100644 index 0000000000..fe0a9623b5 Binary files /dev/null and b/static/img/Dashboard.png differ diff --git a/static/img/GetENR.png b/static/img/GetENR.png new file mode 100644 index 0000000000..e8c5127075 Binary files /dev/null and b/static/img/GetENR.png differ diff --git a/static/img/InstallPackage.png b/static/img/InstallPackage.png new file mode 100644 index 0000000000..0aae4f05b9 Binary files /dev/null and b/static/img/InstallPackage.png differ diff --git a/static/img/PackageInstalling.png b/static/img/PackageInstalling.png new file mode 100644 index 0000000000..8cef02e6bb Binary files /dev/null and b/static/img/PackageInstalling.png differ diff --git a/static/img/PackagesTab.png b/static/img/PackagesTab.png new file mode 100644 index 0000000000..4260f1c030 Binary files /dev/null and b/static/img/PackagesTab.png differ diff --git a/static/img/PublicTab.png b/static/img/PublicTab.png new file mode 100644 index 0000000000..b998c51649 Binary files /dev/null and b/static/img/PublicTab.png differ diff --git a/static/img/SelectClients.png b/static/img/SelectClients.png new file mode 100644 index 0000000000..7f7ee302a2 Binary files /dev/null and b/static/img/SelectClients.png differ diff --git a/static/img/TermsAndConditions.png b/static/img/TermsAndConditions.png new file mode 100644 index 0000000000..f68f568299 Binary files /dev/null and b/static/img/TermsAndConditions.png differ diff --git a/static/img/dappnodeLogin.png b/static/img/dappnodeLogin.png new file mode 100644 index 0000000000..6410944ccb Binary files /dev/null and b/static/img/dappnodeLogin.png differ