# 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*