Closed
Description
Accompanying documents
- Official specification: https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/beacon-chain.md
- Feature document: https://www.notion.so/prysmaticlabs/Withdrawals-977373cfaf9e40feba57e19cfc687db5
- Team annotations: https://www.notion.so/prysmaticlabs/Annotations-on-withdrawals-0f967764131d41deace89634d1072b91
Tasks
Core changes reflecting the spec
- Add Capella beacon state
- Add Capella beacon block
- Update configuration
- Implement predicates:
has_eth1_withdrawal_credential
,is_fully_withdrawable_validator
,is_partially_withdrawable_validator
- Implement epoch processing: impl.
process_full_withdrawals
, impl.process_partial_withdrawals
- Implement block processing: impl
get_expected_withdrawals
, impl.process_withdrawals
, updateprocess_execution_payload
, updateprocess_operations
, impl.process_bls_to_execution_change
- Implement
process_bls_to_execution_change
Other core changes
- Database: persist and retrieve new objects
- Support from engine client
- Implement p2p code
- Gossip SignedBLSToExecutionChange objects through the p2p network
- Create a pool for SignedBLSToExecutionChange objects
- Perform state transition
RPC/API
- Implement Add capella types and endpoints. ethereum/beacon-APIs#248
- Update existing Prysm API endpoints to handle Capella block/state
- Redesign pools since withdrawal and exit look similar Redesign voluntary exits pool #11898
- Support custom builder and builder API Update builder code to Capella #11904
Misc
- Make sure withdrawals unmarshaling (Reconstruct full Capella block #11732 (comment)) works as expected
-
Add withdrawal support for Web UI?deprioritizing for now, other solutions are coming out.
prysmctl
- Allow sending
SignedBLSToExecutionChange
objects to the beacon node throughprysmctl
- allow batch blstoexecutionchange by giving a file directory.
- local devnet testing via ethdo generated signed messages.
-
include prysmctl to prysm.sh/prysm.bat prysmctl not included in sh,bat,ps1 files #11924removing in favor of directing users to binaries
Testing
- e2e
- Spec tests
- DOS/Stress test
- Builder test