Skip to content

Conversation

VolodymyrBg
Copy link
Contributor

  • Replace pre types from bellatrix.LightClient* to altair.LightClient* in specs/capella/light-client/fork.md.
  • In upgrade_lc_header_to_capella, explicitly set execution=ExecutionPayloadHeader() and execution_branch=ExecutionBranch() for pre-Capella data.

why:

  • The Capella fork upgrades light-client data from Altair, not Bellatrix. The file itself states the upgrade path is Altair → Capella, and networking tables confirm that through Bellatrix the wire types remain altair.. The repo contains no bellatrix.LightClient definitions.
  • Capella adds execution and execution_branch to LightClientHeader. For slots before CAPELLA_FORK_EPOCH, validation requires these fields to be zeroed. Without initializing them, upgraded pre-fork headers would be invalid per is_valid_light_client_header.

Copy link
Member

@jtraglia jtraglia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, I agree we should be using the altair spec object here.

@jtraglia jtraglia changed the title capella(light-client): use Altair pre-types and zero-init execution fields in fork upgrade Use altair spec objects in lightclient fork upgrade Oct 7, 2025
@jtraglia jtraglia merged commit bb694b8 into ethereum:master Oct 20, 2025
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants