Implement Electra Fork
This issue will track the tasks for implementing the Electra upgrade
We propose doing things differently in this fork. Instead of working off of a dedicated branch and having one big review and merge at the end, all PRs will target unstable directly and we will review and merge changes in one PR at a time. This means lighthouse must fully pass CI for each of these changes. We will not be able to turn on the Electra spec tests until Electra is fully implemented.
- [ ] devnet-1 (https://github.com/sigp/lighthouse/pull/5937)
- [x] Move signature field in Attestation (https://github.com/sigp/lighthouse/pull/5924)
- [x] Rename
Constants,Presets, andContainers(https://github.com/sigp/lighthouse/pull/5974) - [x] Move
ConsolidationsfromBeaconBlocktoExecutionPayload& rename fields (https://github.com/sigp/lighthouse/pull/5974) - [x] Update
compute_proposer_index()(https://github.com/sigp/lighthouse/pull/5983) - [x] Modified
get_next_sync_committee_indices()(https://github.com/sigp/lighthouse/pull/5983) - [ ] New changes for
process_pending_balance_deposits()(https://github.com/sigp/lighthouse/pull/6005) - [x] All changes in
process_operations()(https://github.com/sigp/lighthouse/pull/5994) - [ ] Engine API Changes (https://github.com/sigp/lighthouse/pull/6001)
- [ ] Get ef-tests passing (https://github.com/sigp/lighthouse/pull/6019)
- [ ] Stop polling
Eth1Datafrom EL post-electra
- [x] devnet-0
- [x] Add Electra Fork boiler plate (https://github.com/sigp/lighthouse/pull/5122)
- [x] Constants, Preset & Configuration (https://github.com/sigp/lighthouse/pull/5606)
- [x] Add gnosis preset values https://github.com/sigp/lighthouse/issues/5638
- [x] Containers
- [x] New Containers (https://github.com/sigp/lighthouse/pull/5607)
- [x] Modified Containers (https://github.com/sigp/lighthouse/pull/5636)
- [x] Extended Containers
- [x] Attestation & IndexedAttestation (https://github.com/sigp/lighthouse/pull/5644)
- [x] BeaconBlockBody (https://github.com/sigp/lighthouse/pull/5636)
- [x] ExecutionPayload & ExecutionPayloadHeader https://github.com/sigp/lighthouse/pull/5652
- [x] #5608 https://github.com/sigp/lighthouse/pull/5652
- [x] Helper Functions
- [x] Predicates
- [x] Updated
is_eligible_for_activation_queuehttps://github.com/sigp/lighthouse/pull/5653 - [x] New
is_compounding_withdrawal_credentialhttps://github.com/sigp/lighthouse/pull/5652 - [x] New
has_compounding_withdrawal_credentialhttps://github.com/sigp/lighthouse/pull/5652 - [x] New
has_execution_withdrawal_credentialhttps://github.com/sigp/lighthouse/pull/5653 - [x] Updated
is_fully_withdrawable_validatorhttps://github.com/sigp/lighthouse/pull/5653 - [x] Updated
is_partially_withdrawable_validatorhttps://github.com/sigp/lighthouse/pull/5653
- [x] Updated
- [x] Misc
- [x]
get_committee_indices(https://github.com/sigp/lighthouse/pull/5657) - [x]
get_validator_max_effective_balancehttps://github.com/sigp/lighthouse/pull/5653
- [x]
- [x] Beacon State Accessors
- [x] New
get_balance_churn_limithttps://github.com/sigp/lighthouse/pull/5652 - [x] New
get_activation_exit_churn_limithttps://github.com/sigp/lighthouse/pull/5652 - [x] New
get_consolidation_churn_limithttps://github.com/sigp/lighthouse/pull/5652 - [x] New
get_active_balancehttps://github.com/sigp/lighthouse/pull/5653 - [x] New
get_pending_balance_to_withdrawhttps://github.com/sigp/lighthouse/pull/5653 - [x] Modified
get_attesting_indices(https://github.com/sigp/lighthouse/pull/5657)
- [x] New
- [x] Beacon State Mutators
- [x] Updated
initiate_validator_exithttps://github.com/sigp/lighthouse/pull/5741 - [x] New
switch_to_compounding_validatorhttps://github.com/sigp/lighthouse/pull/5653 - [x] New
queue_excess_active_balancehttps://github.com/sigp/lighthouse/pull/5652 - [x] New
queue_entire_balance_and_reset_validatorhttps://github.com/sigp/lighthouse/pull/5652 - [x] New
compute_exit_epoch_and_update_churnhttps://github.com/sigp/lighthouse/pull/5653 - [x] New
compute_consolidation_epoch_and_update_churnhttps://github.com/sigp/lighthouse/pull/5653 - [x] Updated
slash_validatorhttps://github.com/sigp/lighthouse/pull/5741
- [x] Updated
- [x] Predicates
- [x] Epoch Processing https://github.com/sigp/lighthouse/pull/5761
- [x] Block Processing
- [x] withdrawals https://github.com/sigp/lighthouse/pull/5741
- [x] execution payload https://github.com/sigp/lighthouse/pull/5741
- [x] operations other than attestations https://github.com/sigp/lighthouse/pull/5741
- [x] attestations https://github.com/sigp/lighthouse/pull/5741
- [x] P2P-interface changes https://github.com/sigp/lighthouse/pull/5712
- [x] Beacon API changes https://github.com/sigp/lighthouse/pull/5744
- [x] Validator changes https://github.com/sigp/lighthouse/pull/5744
- [x] Prague
engine-apichanges (https://github.com/sigp/lighthouse/pull/5743) - [x] spec tests
Merge Queue
This is a list of outstanding work and related PRs in the order we currently plan to merge them to unstable. Tasks should be picked up loosely in this order, and PRs for tasks should be built on top of PRs that precede it.
- Attestation related changes: https://github.com/sigp/lighthouse/pull/5712
- Block processing: https://github.com/sigp/lighthouse/pull/5741
- Epoch processing: https://github.com/sigp/lighthouse/pull/5761
- Execution Engine API changes: https://github.com/sigp/lighthouse/pull/5743
- Beacon API + validator changes: https://github.com/sigp/lighthouse/pull/5744
- Get EF tests passing: https://github.com/sigp/lighthouse/pull/5758
- Electra
devnet-1changes: https://github.com/sigp/lighthouse/pull/5937
PR Conga Line
All branches must be in sigp repo for easy access
unstable <- electra_attestation_changes <- block-processing-electra <- electra-epoch-proc <- electra-engine-api <- beacon-api-electra <- ef-tests-electra <- electra-devnet-1
I've just opened a PR with the epoch processing changes. But I am yet to rebase the PRs that follow it in the conga line:
- https://github.com/sigp/lighthouse/pull/5761