close
Skip to content

Extend light client protocol for Gloas#5178

Merged
jtraglia merged 6 commits into
ethereum:masterfrom
etan-status:dev/etan/lc-gf
Apr 28, 2026
Merged

Extend light client protocol for Gloas#5178
jtraglia merged 6 commits into
ethereum:masterfrom
etan-status:dev/etan/lc-gf

Conversation

@etan-status

Copy link
Copy Markdown
Contributor

As part of Gloas, the execution data in the beacon block no longer refers to the latest canonical data, but instead just to a potential future payload that may or may not become canonical depending on the PTC attestations. The latest canonical data is available in the state's latest_block_hash, mirrored in the block's parent_block_hash. As state access is tricky, the execution_branch for post-Gloas blocks now is for the parent_block_hash in the block's bid.

Further, Gloas removes the ExecutionPayloadHeader from both the beacon block and state. Therefore, corresponding light client data structures can now only commit to the block_hash field. In transition situations where finalized_header points to pre-Gloas while attested_header is post-Gloas, or in syncing situations where a LightClientStore is Gloas but wants to sync pre-Gloas data, existing LightClientHeader upgrades dynamically create a new execution_branch for the block_hash field, discarding the rest of the payload header during the upgrade.

As part of Gloas, the execution data in the beacon block no longer
refers to the latest canonical data, but instead just to a potential
future payload that may or may not become canonical depending on the
PTC attestations. The latest canonical data is available in the state's
`latest_block_hash`, mirrored in the block's `parent_block_hash`.
As state access is tricky, the `execution_branch` for post-Gloas blocks
now is for the `parent_block_hash` in the block's bid.

Further, Gloas removes the `ExecutionPayloadHeader` from both the beacon
block _and_ state. Therefore, corresponding light client data structures
can now only commit to the `block_hash` field. In transition situations
where `finalized_header` points to pre-Gloas while `attested_header` is
post-Gloas, or in syncing situations where a `LightClientStore` is Gloas
but wants to sync pre-Gloas data, existing `LightClientHeader` upgrades
dynamically create a new `execution_branch` for the `block_hash` field,
discarding the rest of the payload header during the upgrade.
@github-actions github-actions Bot added lightclients testing CI, actions, tests, testing infra fulu gloas labels Apr 28, 2026
etan-status added a commit to status-im/nimbus-eth2 that referenced this pull request Apr 28, 2026
Define the types and helpers needed for Gloas light client specs.

- ethereum/consensus-specs#5178
Comment thread specs/gloas/light-client/sync-protocol.md Outdated
tersec pushed a commit to status-im/nimbus-eth2 that referenced this pull request Apr 28, 2026
* Add Gloas light client containers

Define the types and helpers needed for Gloas light client specs.

- ethereum/consensus-specs#5178

* Cleanup indexing

* Add spec references

* Cleanup upgrade_lc_header_to_gloas

* Use static for default

* Use correct source for building the proof

* More static

* Update zero hash comparison
@etan-status etan-status marked this pull request as ready for review April 28, 2026 19:59
@etan-status

Copy link
Copy Markdown
Contributor Author

Partially ran it against Nimbus, should be alright now.

@jtraglia jtraglia left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Awesome. Looks good to me. Nice work @etan-status!

@jtraglia jtraglia merged commit 279b0eb into ethereum:master Apr 28, 2026
15 checks passed
@etan-status etan-status deleted the dev/etan/lc-gf branch April 28, 2026 20:34
tersec pushed a commit to status-im/nimbus-eth2 that referenced this pull request Apr 29, 2026
* Add LightClientDataFork.Gloas

Introduce Gloas helpers for processing light client data:

- ethereum/consensus-specs#5178

* Regen tests md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fulu gloas lightclients testing CI, actions, tests, testing infra

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants