-
-
owned this note
-
Published
Linked with GitHub
# withdrawals progress
goal: cross-client testnet implementing validator withdrawals by the end of the year 2022
## specs
capella specs: https://github.com/ethereum/consensus-specs/tree/dev/specs/capella
engine API mods: https://github.com/ethereum/execution-apis/pull/195
EIP-4895: https://eips.ethereum.org/EIPS/eip-4895
## open questions
### consider bounding the withdrawals sweep per-block
https://github.com/ethereum/consensus-specs/pull/3095
- @ralexstokes will add testing and then this PR is ready for final review
### update `staking-cli`
see: https://notes.ethereum.org/YGWpjmGHQceeq1gijiZuJg
### devp2p updates
TODO: do we try to version the devp2p docs at all?
### EL RPC updates
TODO: what to expose here? methods for getting withdrawal by {index, hash}?
## testing
- add CL spec tests (there are some, we should add more)
- check what tests we have
- add `randomized` tests
- add EL spec tests
- (i hear Mario V has been working on this already)
- Marius working on hive tests
## Status
|M0|M1|M2|M3|M4|M5|Docs|
|--|--|--|--|--|--|--|
[Geth][Geth-Link] |||✅ ||||
[Nethermind][Neth-Link] |||✅ ||||
[Besu][Besu-Link] |||||||
[Erigon-Link][] |||||||
[EthereumJS][EJS-Link] |||||||
||||||||
[Prysm][Prysm-Link]|||✅ ||||
[Lighthouse][LH-Link]|||✅ ||||
[Teku][Teku-Link]|||✅ ||||
[Nimbus][Nimbus-Link]|||||||
[Lodestar][Lodestar-Link]|||✅ ||||
[Geth-Link]: https://github.com/ethereum/go-ethereum/pull/25838
[Neth-Link]: https://github.com/NethermindEth/nethermind/pull/4731
[Besu-Link]: https://github.com/hyperledger/besu/pull/4552
[Erigon-Link]: (https://github.com/ledgerwatch/erigon/pull/6009/files)
[EJS-Link]: https://github.com/ethereumjs/ethereumjs-monorepo/pull/2353
[Prysm-Link]: https://github.com/prysmaticlabs/prysm/issues/11077
[LH-Link]: https://github.com/sigp/lighthouse/tree/eip4844
[Lodestar-Link]: https://github.com/ChainSafe/lodestar/pull/4679
[Teku-Link]: https://github.com/ConsenSys/teku/issues/5680
[Nimbus-Link]: https://github.com/status-im/nimbus-eth2/pull/4089
## Milestones
- M0: *Implementation started*
- Signify that implementation has started by creating a tracking issue and linking in the above table
- Docs: *Core Documentation*
- EL/CL: detailed documentation on how to run your client with withdrawals enabled
- Link under “Docs” in milestone table
- M1: *Spec Implemented*
- EL/CL passes test vectors
- M2: *1-to-1 Interop*
- Perform the following with at least two separate teams:
- run 1:1 devnet without transition (Capella == 0)
- Record teams interop’d with alongside ✅ in milestone table – e.g. “✅ lodestar, teku”
- M3: *Join the devnet*
- Join the devnet
- Instructions and parameters for the devnet will be released in due time
- Create a README for the public to join the devnet with your client
- Test the withdrawal functionality on the devnet
- M4: *Stretch goal tbd*
- M5: *Stretch goal tbd*