Running operator with DVT
The page will guide you through setting up vault with DVT cluster.
Prerequisites
Vault should be created in Stakewise web UI.
Step 1. Generate validator key shares
There are 2 ways to create validator keys:
create keys alone
create keys with a group using Distributed Key Generation (DKG) ceremony
Creating keys alone may be an option if you don't collaborate with anybody. In this case DVT may be used for additional robustness. When using SSV you can fully delegate validator duties to other entities (SSV operators) and do not mind running validators on your own. See Obol page and SSV page for further instructions if you are creating keys alone.
DKG is more secure and decentralized way because nobody has full control over validator keys. The document below is dedicated to DKG way.
Generate validator keys with a group using DKG ceremony. See Obol DKG guide.
Step 2. Set up DVT cluster
During cluster setup keep in mind:
withdrawal_address
should equal to vault addressvalidator fee recipient should equal to address specified in vault details section on the vault page.
Each DVT operator should run Charon instance. Charon is HTTP middleware built by Obol to enable any existing Ethereum validator clients to operate together as part of a distributed validator. Guide from step 1 includes setting up Charon.
Step 3. Set up DVT sidecars
Run DVT sidecar instance for each DVT node in a cluster. Each DVT operator should run his own sidecar instance.
Instructions how to run single sidecar for a given DVT operator is below.
DVT sidecar should have access to Obol node directory generated on step 1. Node directory contains cluster lock file and validator keys. In example below ~/node0
is used as node directory.
For Obol there is an option to store validator keys in Remote signer. In this case you should upload validator keys into Remote signer. After that you can move validator keys away from Obol node directory.
Fill .env file with environment variables.
Run sidecar:
Step 4. Set up Stakewise Operator
Single operator instance should be set up for DVT cluster.
Step 4.0 Prerequisites
Ensure prerequisites are satisfied. This includes setting up execution client and consensus client.
Step 4.1 Generate mnemonic
Run init command. The command creates mnemonic and creates folders structure. Mnemonic will not be used to generate validator keys because validator keys are already created by DVT tools (step 1). Mnemonic may be used for creating wallet (see below).
Step 4.2 Create hot wallet
Run the create-wallet command to create your hot wallet using your mnemonic (note, this mnemonic can be the one generated on step 4.1, or a new mnemonic if you desire).
Note, you must send some ETH (or xDAI for Gnosis) to the wallet for gas expenses
Step 4.3 Upload deposit data file to Vault
DKG ceremony produces deposit data file in addition to keystores. See instructions for uploading this file to Vault.
Step 4.4 Run Stakewise Operator
See instructions.
There are some changes for DVT case:
Run operator with
start-api
command, unlikestart
command in default scenario.Pass
--relayer-type=DVT --relayer-endpoint=https://mainnet-dvt-relayer.stakewise.io/
instart-api
optionsPass
--deposit-data-path
to provide deposit data file generated during DKG
Last updated