lighthouse icon indicating copy to clipboard operation
lighthouse copied to clipboard

Implement Electra Fork

Open ethDreamer opened this issue 1 year ago • 1 comments

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, and Containers(https://github.com/sigp/lighthouse/pull/5974)
    • [x] Move Consolidations from BeaconBlock to ExecutionPayload & 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 Eth1Data from 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] Helper Functions
      • [x] Predicates
        • [x] Updated is_eligible_for_activation_queue https://github.com/sigp/lighthouse/pull/5653
        • [x] New is_compounding_withdrawal_credential https://github.com/sigp/lighthouse/pull/5652
        • [x] New has_compounding_withdrawal_credential https://github.com/sigp/lighthouse/pull/5652
        • [x] New has_execution_withdrawal_credential https://github.com/sigp/lighthouse/pull/5653
        • [x] Updated is_fully_withdrawable_validator https://github.com/sigp/lighthouse/pull/5653
        • [x] Updated is_partially_withdrawable_validator https://github.com/sigp/lighthouse/pull/5653
      • [x] Misc
        • [x] get_committee_indices (https://github.com/sigp/lighthouse/pull/5657)
        • [x] get_validator_max_effective_balance https://github.com/sigp/lighthouse/pull/5653
      • [x] Beacon State Accessors
        • [x] New get_balance_churn_limit https://github.com/sigp/lighthouse/pull/5652
        • [x] New get_activation_exit_churn_limit https://github.com/sigp/lighthouse/pull/5652
        • [x] New get_consolidation_churn_limit https://github.com/sigp/lighthouse/pull/5652
        • [x] New get_active_balance https://github.com/sigp/lighthouse/pull/5653
        • [x] New get_pending_balance_to_withdraw https://github.com/sigp/lighthouse/pull/5653
        • [x] Modified get_attesting_indices (https://github.com/sigp/lighthouse/pull/5657)
      • [x] Beacon State Mutators
        • [x] Updated initiate_validator_exit https://github.com/sigp/lighthouse/pull/5741
        • [x] New switch_to_compounding_validator https://github.com/sigp/lighthouse/pull/5653
        • [x] New queue_excess_active_balance https://github.com/sigp/lighthouse/pull/5652
        • [x] New queue_entire_balance_and_reset_validator https://github.com/sigp/lighthouse/pull/5652
        • [x] New compute_exit_epoch_and_update_churn https://github.com/sigp/lighthouse/pull/5653
        • [x] New compute_consolidation_epoch_and_update_churn https://github.com/sigp/lighthouse/pull/5653
        • [x] Updated slash_validator https://github.com/sigp/lighthouse/pull/5741
    • [x] Epoch Processing https://github.com/sigp/lighthouse/pull/5761
    • [x] Block Processing
    • [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-api changes (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.

  1. Attestation related changes: https://github.com/sigp/lighthouse/pull/5712
  2. Block processing: https://github.com/sigp/lighthouse/pull/5741
  3. Epoch processing: https://github.com/sigp/lighthouse/pull/5761
  4. Execution Engine API changes: https://github.com/sigp/lighthouse/pull/5743
  5. Beacon API + validator changes: https://github.com/sigp/lighthouse/pull/5744
  6. Get EF tests passing: https://github.com/sigp/lighthouse/pull/5758
  7. Electra devnet-1 changes: 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

ethDreamer avatar Apr 18 '24 19:04 ethDreamer

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

michaelsproul avatar May 10 '24 07:05 michaelsproul