Skip to content

gloas data availability checks 2#10375

Closed
mehdi-aouadi wants to merge 22 commits intoConsensys:masterfrom
mehdi-aouadi:10311-gloas-da-2
Closed

gloas data availability checks 2#10375
mehdi-aouadi wants to merge 22 commits intoConsensys:masterfrom
mehdi-aouadi:10311-gloas-da-2

Conversation

@mehdi-aouadi
Copy link
Copy Markdown
Contributor

@mehdi-aouadi mehdi-aouadi commented Feb 13, 2026

PR Description

Update the DataColumnSidecarELManger to 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

  • I thought about documentation and added the doc-change-required label to this PR if updates are required.

Changelog

  • I thought about adding a changelog entry, and added one if I deemed necessary.

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: DataColumnSidecar now exposes getMaybeKzgCommitments() and schema access, DataColumnSidecarUtil gains 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.

@mehdi-aouadi mehdi-aouadi self-assigned this Feb 13, 2026
@mehdi-aouadi mehdi-aouadi mentioned this pull request Feb 13, 2026
2 tasks
@mehdi-aouadi mehdi-aouadi changed the title gloas data availability checks gloas data availability checks 2 Feb 18, 2026
@mehdi-aouadi mehdi-aouadi changed the base branch from master to release-23.1.1 February 19, 2026 14:08
@mehdi-aouadi mehdi-aouadi changed the base branch from release-23.1.1 to master February 19, 2026 14:08
@mehdi-aouadi mehdi-aouadi requested a review from zilm13 February 19, 2026 14:27
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

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 =
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

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

@mehdi-aouadi
Copy link
Copy Markdown
Contributor Author

Closing this one as everything is addressed in #10377

@mehdi-aouadi mehdi-aouadi deleted the 10311-gloas-da-2 branch February 24, 2026 15:46
@github-actions github-actions bot locked and limited conversation to collaborators Feb 24, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants