gloas data availability checks 2#10375
Closed
mehdi-aouadi wants to merge 22 commits intoConsensys:masterfrom
Closed
gloas data availability checks 2#10375mehdi-aouadi wants to merge 22 commits intoConsensys:masterfrom
mehdi-aouadi wants to merge 22 commits intoConsensys:masterfrom
Conversation
...src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/events/DataColumnSidecarEvent.java
Show resolved
Hide resolved
storage/src/main/java/tech/pegasys/teku/storage/client/BlobReconstructor.java
Show resolved
Hide resolved
zilm13
reviewed
Feb 17, 2026
.../java/tech/pegasys/teku/statetransition/datacolumns/util/DataColumnSidecarELManagerImpl.java
Outdated
Show resolved
Hide resolved
...h/pegasys/teku/statetransition/datacolumns/util/DataColumnSidecarELManagerImplGloasTest.java
Outdated
Show resolved
Hide resolved
...h/pegasys/teku/statetransition/datacolumns/util/DataColumnSidecarELManagerImplGloasTest.java
Outdated
Show resolved
Hide resolved
ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/common/util/DataColumnSidecarUtil.java
Outdated
Show resolved
Hide resolved
.../acceptance-test/java/tech/pegasys/teku/test/acceptance/AttestationGossipAcceptanceTest.java
Show resolved
Hide resolved
.../java/tech/pegasys/teku/statetransition/datacolumns/util/DataColumnSidecarELManagerImpl.java
Show resolved
Hide resolved
.../java/tech/pegasys/teku/statetransition/datacolumns/util/DataColumnSidecarELManagerImpl.java
Show resolved
Hide resolved
zilm13
reviewed
Feb 23, 2026
ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/common/util/DataColumnSidecarUtil.java
Show resolved
Hide resolved
| new ConcurrentSkipListMap<>(); | ||
| // Tracks column indices seen before a full recovery task could be created (Gloas sidecars | ||
| // arriving before their block). Consumed when the block arrives to seed recoveredColumnIndices. | ||
| private final ConcurrentSkipListMap<SlotAndBlockRoot, Set<UInt64>> earlyColumnIndices = |
Contributor
There was a problem hiding this comment.
I think it's not a best way to address Gloas specific issue with class-wide map. It's better to make recoveryTask self-sufficient for all forks. How about something like this zilm13@688a3a9
Contributor
Author
There was a problem hiding this comment.
Used this approach in #10377
The only missing thing was adding the index of the data column sidecar that triggers the creation of a new recovery task to its recovered indices tracker
Contributor
Author
|
Closing this one as everything is addressed in #10377 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Description
Update the
DataColumnSidecarELMangerto handle Gloas.Only blocks trigger the data column sidecars recovery because we need the kzg commitments from the execution payload bid.
Rebased on top of #10357
Fixed Issue(s)
Documentation
doc-change-requiredlabel to this PR if updates are required.Changelog
Note
Medium Risk
Touches core data-availability recovery and gossip tracking paths across forks; while largely additive and covered by new tests, mistakes could impact sidecar reconstruction or equivocation detection at runtime.
Overview
Extends data-availability recovery so Gloas can reconstruct/publish
DataColumnSidecars from execution-layer blobs by sourcing KZG commitments from the block’s execution payload bid (sidecars alone may not contain commitments).Refactors the data-column sidecar APIs to be fork-aware:
DataColumnSidecarnow exposesgetMaybeKzgCommitments()and schema access,DataColumnSidecarUtilgains methods to extract commitments/build sidecars/proofs per fork, and equivocation tracking + logging/SSE event serialization are updated to handle optional headers/commitments. Adds new shared + Gloas-specific EL manager tests and updates existing Fulu tests/validators to use the optional commitments path.Written by Cursor Bugbot for commit ba4167c. This will update automatically on new commits. Configure here.