Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates docs to reflect updated Validator Exits SNOP #510

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/contracts/node-operators-registry.md
Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@ In the context of these terms "signing key", "key", "validator key", "validator"

**stuck** (validator). Not exited in proper time after an exit request from [`ValidatorsExitBusOracle`](/contracts/validators-exit-bus-oracle.md) by Lido protocol.

**refunded** (stuck validator). Compensated by the NO for being stuck. For more information on handling of NO misbehavior see [Lido on Ethereum Block Proposer Rewards Policy v1.0](https://snapshot.org/#/lido-snapshot.eth/proposal/0x3b1e5f9960e682abdc25c86624ad13acb88ee1cea18db9be99379b44750c7b36).
**refunded** (stuck validator). Compensated by the NO for being stuck. For more information on handling of NO misbehavior see Lido on Ethereum Validator Exits SNOP 2.0 ([IPFS](https://lido.mypinata.cloud/ipfs/QmZTMfmJZsYHz61f2FjhYdh5VNu6ifjYQJzYUGkysHs8Uu), [GitHub](https://github.com/lidofinance/documents-and-policies/blob/0ed664255f48ef224b96fb0325f4d27bd3c03773/Lido%20on%20Ethereum%20Standard%20Node%20Operator%20Protocol%20-%20Validator%20Exits.md), [HackMD](https://hackmd.io/@lido/Bk9oDtV7ye)).

## Node operator parameters

2 changes: 1 addition & 1 deletion docs/contracts/staking-router.md
Original file line number Diff line number Diff line change
@@ -120,7 +120,7 @@ Finally, the function returns five arrays/values: `recipients`, `stakingModuleId

- [Staking Router ADR](https://hackmd.io/f1wvHzpjTIq41-GCrdaMjw?view)
- [Staking Router LIP](https://github.com/lidofinance/lido-improvement-proposals/blob/develop/LIPS/lip-20.md)
- [Lido on Ethereum Validator Exits Policy](https://hackmd.io/zHYFZr4eRGm3Ju9_vkcSgQ?)
- Lido on Ethereum Validator Exits SNOP 2.0 ([IPFS](https://lido.mypinata.cloud/ipfs/QmZTMfmJZsYHz61f2FjhYdh5VNu6ifjYQJzYUGkysHs8Uu), [GitHub](https://github.com/lidofinance/documents-and-policies/blob/0ed664255f48ef224b96fb0325f4d27bd3c03773/Lido%20on%20Ethereum%20Standard%20Node%20Operator%20Protocol%20-%20Validator%20Exits.md), [HackMD](https://hackmd.io/@lido/Bk9oDtV7ye))


## View methods
2 changes: 1 addition & 1 deletion docs/contracts/validators-exit-bus-oracle.md
Original file line number Diff line number Diff line change
@@ -22,7 +22,7 @@ A report calculation consists of 4 key steps:
5. Go through the queue until the exited validators’ balances cover all withdrawal requests (considering the predicated final exited balance of each validator).

:::note
Placed exit requests via `ValidatorsExitBusOracle` should be processed timely according to the ratified [Lido on Ethereum Validator Exits Policy V1.0](https://snapshot.org/#/lido-snapshot.eth/proposal/0xa4eb1220a15d46a1825d5a0f44de1b34644d4aa6bb95f910b86b29bb7654e330).
Placed exit requests via `ValidatorsExitBusOracle` should be processed timely according to the ratified Lido on Ethereum Validator Exits SNOP 2.0 ([IPFS](https://lido.mypinata.cloud/ipfs/QmZTMfmJZsYHz61f2FjhYdh5VNu6ifjYQJzYUGkysHs8Uu), [GitHub](https://github.com/lidofinance/documents-and-policies/blob/0ed664255f48ef224b96fb0325f4d27bd3c03773/Lido%20on%20Ethereum%20Standard%20Node%20Operator%20Protocol%20-%20Validator%20Exits.md), [HackMD](https://hackmd.io/@lido/Bk9oDtV7ye)).
:::

Access to lever methods is restricted using the functionality of the
2 changes: 1 addition & 1 deletion docs/guides/node-operators/exits/introduction.md
Original file line number Diff line number Diff line change
@@ -23,7 +23,7 @@ Lido tooling is not required to use, but is recommended.

The only requirement for Node Operators is to exit their validators in time after requested by the protocol.

For details, check out [Validator Exits Policy](https://hackmd.io/@lido/HJYFjmf6s) and [Research Forum Discussion](https://research.lido.fi/t/lido-validator-exits-policy-draft-for-discussion).
For details, check out Lido on Ethereum Validator Exits SNOP 2.0 ([IPFS](https://lido.mypinata.cloud/ipfs/QmZTMfmJZsYHz61f2FjhYdh5VNu6ifjYQJzYUGkysHs8Uu), [GitHub](https://github.com/lidofinance/documents-and-policies/blob/0ed664255f48ef224b96fb0325f4d27bd3c03773/Lido%20on%20Ethereum%20Standard%20Node%20Operator%20Protocol%20-%20Validator%20Exits.md), [HackMD](https://hackmd.io/@lido/Bk9oDtV7ye)).

## Lido Tooling

4 changes: 2 additions & 2 deletions docs/guides/node-operators/general-overview.md
Original file line number Diff line number Diff line change
@@ -81,9 +81,9 @@ is defined by an address that is used for two purposes:

Pass this address to the DAO holders along with the other relevant information.

## Validator Exits Policy, Penalties, and Recovering
## Validator Exits Protocol, Penalties, and Recovering

According to the [Lido on Ethereum Validator Exits Policy](https://github.com/lidofinance/documents-and-policies/blob/7595317b8fd2ee60ab25f5cac8eac2cc2cafa149/Lido%20on%20Ethereum%20-%20Validator%20Exits%20Policy.md) document, a Node Operator participating in the Lido on Ethereum protocol are responsible for correctly exiting validators within a specified timeframe determined by the protocol's requirements and rules set by the DAO.
According to the Lido on Ethereum Validator Exits SNOP 2.0 ([IPFS](https://lido.mypinata.cloud/ipfs/QmZTMfmJZsYHz61f2FjhYdh5VNu6ifjYQJzYUGkysHs8Uu), [GitHub](https://github.com/lidofinance/documents-and-policies/blob/0ed664255f48ef224b96fb0325f4d27bd3c03773/Lido%20on%20Ethereum%20Standard%20Node%20Operator%20Protocol%20-%20Validator%20Exits.md), [HackMD](https://hackmd.io/@lido/Bk9oDtV7ye)), a Node Operator participating in the Lido on Ethereum protocol are responsible for correctly exiting validators within a specified timeframe determined by the protocol's requirements and rules set by the DAO.

In essence, if a Node Operator is unable to withdraw a validator within the time specified by the `VALIDATOR_DELINQUENT_TIMEOUT_IN_SLOTS` parameter in the `OracleDaemonConfig` contract, the accounting oracle report for that Node Operator increases the `STUCKED` field by the number of delayed validators.

3 changes: 1 addition & 2 deletions docs/guides/oracle-spec/penalties.md
Original file line number Diff line number Diff line change
@@ -32,6 +32,5 @@ In the case that a Node Operator cannot, for any reason, exit a validator (e.g.

#### Helpful links

* [Lido Validator Exits Policy](https://github.com/lidofinance/documents-and-policies/blob/main/Lido%20on%20Ethereum%20-%20Validator%20Exits%20Policy.md)
* [Lido Validator Exits Policy: Forum discussion](https://research.lido.fi/t/lido-validator-exits-policy-draft-for-discussion/3864)
* Lido on Ethereum Validator Exits SNOP 2.0 ([IPFS](https://lido.mypinata.cloud/ipfs/QmZTMfmJZsYHz61f2FjhYdh5VNu6ifjYQJzYUGkysHs8Uu), [GitHub](https://github.com/lidofinance/documents-and-policies/blob/0ed664255f48ef224b96fb0325f4d27bd3c03773/Lido%20on%20Ethereum%20Standard%20Node%20Operator%20Protocol%20-%20Validator%20Exits.md), [HackMD](https://hackmd.io/@lido/Bk9oDtV7ye))
* [Withdrawals: on Validator Exiting Order](https://research.lido.fi/t/withdrawals-on-validator-exiting-order/3048/1)
2 changes: 1 addition & 1 deletion docs/guides/oracle-spec/validator-exit-bus.md
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ A report calculation consists of 6 key steps:
6. Go through the queue until the exited validators’ balances cover all withdrawal requests (considering the predicated final exited balance of each validator).

:::note
Placed exit requests via `ValidatorsExitBusOracle` should be processed timely according to the ratified [Lido on Ethereum Validator Exits Policy V1.0](https://snapshot.org/#/lido-snapshot.eth/proposal/0xa4eb1220a15d46a1825d5a0f44de1b34644d4aa6bb95f910b86b29bb7654e330).
Placed exit requests via `ValidatorsExitBusOracle` should be processed timely according to the ratified Lido on Ethereum Validator Exits SNOP 2.0 ([IPFS](https://lido.mypinata.cloud/ipfs/QmZTMfmJZsYHz61f2FjhYdh5VNu6ifjYQJzYUGkysHs8Uu), [GitHub](https://github.com/lidofinance/documents-and-policies/blob/0ed664255f48ef224b96fb0325f4d27bd3c03773/Lido%20on%20Ethereum%20Standard%20Node%20Operator%20Protocol%20-%20Validator%20Exits.md), [HackMD](https://hackmd.io/@lido/Bk9oDtV7ye)).

See also the provided [penalties](/guides/oracle-spec/penalties.md) spec.
:::
4 changes: 2 additions & 2 deletions docs/staking-modules/csm/intro.md
Original file line number Diff line number Diff line change
@@ -43,10 +43,10 @@ The [Curated module](/contracts/node-operators-registry.md) uses the "exited" st
A Node Operator must supply a [bond](./join-csm#bond) to upload a new validator key to CSM. It is reasonable to allocate a stake in an order similar to the [bond](./join-csm#bond) submission order. For this purpose, a FIFO (first in, first out) [stake allocation queue](/staking-modules/csm/join-csm.md#stake-allocation-queue) is utilized. Once the Staking Router requests keys to make a deposit, the next `X` keys from the queue are returned, preserving the [bond](./join-csm#bond) submit order.

### Alternative measures for "stuck" keys
The presence of "stuck" ("Delinquent" in the [original terms](https://snapshot.org/#/lido-snapshot.eth/proposal/0xa4eb1220a15d46a1825d5a0f44de1b34644d4aa6bb95f910b86b29bb7654e330)) keys for the Node Operator indicates the [Lido exit policy](/guides/node-operators/general-overview#validator-exits-policy-penalties-and-recovering) violation. In this case, a module should apply measures for the policy-violating Node Operator. CSM uses measures that are different from those of the curated module. The measures are described in the corresponding [section](/staking-modules/csm/validator-exits.md#protocol-initiated-exits).
The presence of "stuck" keys for the Node Operator indicates a failure of the Node Operator to conform to the [Validator Exits SNOP](/guides/node-operators/general-overview#validator-exits-protocol-penalties-and-recovering). In this case, each module defines and is responsible for the application of remediative measures for the relevant protocol violation. CSM uses measures that are different from those of the Curated Module and the Simple DVT Module. The measures are described in the corresponding [section](/staking-modules/csm/validator-exits.md#protocol-initiated-exits).

:::info
Note: CSM does not apply any measures to "Delayed" validators mentioned in the [Lido exit policy](/guides/node-operators/general-overview#validator-exits-policy-penalties-and-recovering).
Note: CSM does not apply any measures to "Delayed" validators mentioned in the [Lido exit policy](/guides/node-operators/general-overview#validator-exits-protocol-penalties-and-recovering).
:::

### Node Operator structure
2 changes: 1 addition & 1 deletion docs/staking-modules/csm/validator-exits.md
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
Given the permissionless nature of CSM, NOs can voluntarily exit their validators at any moment.

## Protocol-initiated exits
For consistency with the core protocol and other staking modules, CSM uses [VEBO](/contracts/validators-exit-bus-oracle) to request or trigger exits (to be implemented after the Pectra hardfork bringing [EIP-7002](https://eips.ethereum.org/EIPS/eip-7002) to life) for the validators.
For consistency with the core protocol and other staking modules, CSM uses [VEBO](/contracts/validators-exit-bus-oracle) to request or trigger exits (to be implemented after the Pectra hardfork bringing [EIP-7002](https://eips.ethereum.org/EIPS/eip-7002) to life) for the validators. Details about the overall processes and mechanisms through which validator exits are requested by the protocol and why, including how these rules apply to CSM, are explained in the Lido on Ethereum Validator Exits SNOP 2.0 ([IPFS](https://lido.mypinata.cloud/ipfs/QmZTMfmJZsYHz61f2FjhYdh5VNu6ifjYQJzYUGkysHs8Uu), [GitHub](https://github.com/lidofinance/documents-and-policies/blob/0ed664255f48ef224b96fb0325f4d27bd3c03773/Lido%20on%20Ethereum%20Standard%20Node%20Operator%20Protocol%20-%20Validator%20Exits.md), [HackMD](https://hackmd.io/@lido/Bk9oDtV7ye))

:::info
Note: The actual implementation of the triggerable exits is not defined yet. There might be additional contracts to actually trigger exits on top of the [VEBO](/contracts/validators-exit-bus-oracle).