diff --git a/operator-v3/alternative-key-management/api-mode.mdx b/operator-v3/alternative-key-management/api-mode.mdx index b071d00..b51e86c 100644 --- a/operator-v3/alternative-key-management/api-mode.mdx +++ b/operator-v3/alternative-key-management/api-mode.mdx @@ -143,3 +143,16 @@ POST /validators :::custom-tips[Relayer Example] See demo project [relayer-example ↗](https://github.com/stakewise/relayer-example/tree/f6abdb3b8a307c8456bf37a00ea7691dc5155d79) - a Python-based FastAPI application that demonstrates how to implement a relayer service for Ethereum staking operations. ::: + +### DVT Relayer + +When using a DVT setup, a specialized DVT relayer is required. Unlike a regular relayer, +you do not need to set up a dedicated relayer instance. Instead, you can use the public DVT relayer +available at: https://mainnet-dvt-relayer.stakewise.io/. + +The Operator environment configuration is similar to that of a regular relayer. However, you must specify the relayer type as follows: + +```bash title=".env" +RELAYER_TYPE=DVT +# RELAYER_ENDPOINT env is not required +``` diff --git a/operator-v3/alternative-key-management/dvt/index.mdx b/operator-v3/alternative-key-management/dvt/index.mdx index 1b0ec5c..6615d3f 100644 --- a/operator-v3/alternative-key-management/dvt/index.mdx +++ b/operator-v3/alternative-key-management/dvt/index.mdx @@ -65,3 +65,34 @@ StakeWise Vaults support both [Obol ↗](https://obol.org) and [SSV ↗](https:/
Each node holds one encrypted key share.
+ + +## DVT setup components + +### DVT cluster of distributed validators + +Performs validator duties + +### Stakewise Operator + +Registers validators in vault contract. Operator doesn’t have access to validator keystores. + +### DVT Relayer + +Used to collect exit signatures of the validators for passing them to oracles. + +### DVT sidecars + +Sidecars provide exit signature shares to DVT Relayer. Each distributed validator node should run DVT sidecar instance. Each sidecar should have access to validator key shares on related DVT node. + +## Validator registration procedure + +Operator reads validators from the deposit data file. + +On validator registration Operator sends request to the relayer: + +1. Operator sends a list of public keys from the deposit data to the relayer, then polls the relayers for the exit signature(s) +2. Relayer creates VoluntaryExit(s) out of public keys and stores to DB. VoluntaryExits can be received through relayer API. +3. DVT sidecars poll VoluntaryExits they can sign from the relayer, create exit signatures for them and post to the relayer. +4. Relayer i) receives exit signature shares from the sidecars, ii) Restores exit signature from sidecar shares, verifies exit signature, creates shares for oracles, encrypts with oracle public keys and stores to DB. The encrypted shares for oracles are available through relayer API. +5. Operator fetches encrypted signatures from relayer and registers the validator.