Skip to content

implement gloas data column verification#9202

Closed
dknopik wants to merge 5 commits into
sigp:unstablefrom
dknopik:gloas-column-verify
Closed

implement gloas data column verification#9202
dknopik wants to merge 5 commits into
sigp:unstablefrom
dknopik:gloas-column-verify

Conversation

@dknopik
Copy link
Copy Markdown
Member

@dknopik dknopik commented Apr 28, 2026

No description provided.

@dknopik dknopik added the das Data Availability Sampling label Apr 28, 2026
@dknopik dknopik requested a review from jxs as a code owner April 28, 2026 08:51
@dknopik dknopik added the gloas label Apr 28, 2026
Comment on lines +359 to +369
let commitments_len = match column_sidecar.as_ref() {
DataColumnSidecar::Fulu(dc) => dc.kzg_commitments.len(),
DataColumnSidecar::Gloas(_) => {
let bid = block
.message()
.body()
.signed_execution_payload_bid()
.map_err(|_| GossipDataColumnError::InvalidVariant)?;
bid.message.blob_kzg_commitments.len()
}
};
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.

We could use block.blob_kzg_commitments_len() here

.try_get_full_block(block_root)
.map_err(|e| GossipDataColumnError::BeaconChainError(Box::new(e.into())))?;

// TODO(gloas): maybe also check DA cache? fork choice?
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.

yeah we'll need to use DA cache for this, this gets called a lot in a single slot, so we can't read from DB without any cache

@eserilev eserilev mentioned this pull request Apr 28, 2026
);
}
SyncMessage::UnknownParentDataColumn(peer_id, data_column) => {
SyncMessage::UnknownDataColumnParentOrBlock(peer_id, data_column) => {
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.

As discussed, let's have a separate variant for unknown block

%index,
"Block not yet known for Gloas partial data column"
);
// TODO(gloas): send sync message
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.

reminder

@jimmygchen jimmygchen added the waiting-on-author The reviewer has suggested changes and awaits thier implementation. label Apr 28, 2026
@dknopik dknopik mentioned this pull request Apr 30, 2026
@jimmygchen
Copy link
Copy Markdown
Member

superceded by #9209

@jimmygchen jimmygchen closed this May 1, 2026
mergify Bot pushed a commit that referenced this pull request May 13, 2026
In Gloas, beacon blocks are imported into fork choice immediately - the payload envelope and data columns arrive
separately. KZG commitments moved from the column sidecar into the execution payload bid, so the existing
`DataAvailabilityChecker` (which assumes block and data are coupled) can't be used for Gloas.


  * Introduced `PendingPayloadCache` to keep track of payload and data columns per block root.
* Added gossip column verification
* Added support for Gloas data column reconstruction
* Payload envelope verification simplified: removed `MaybeAvailableEnvelope`, `ExecutedEnvelope`, `EnvelopeImportData`

Not yet implemented (tracked with TODOs):
- Proper lookup sync for Gloas columns arriving before blocks
- Partial column merging for Gloas
- Moving `load_gloas_payload_bid` disk reads off the async runtime
- Backfill/range sync for Gloas

Based on @eserilev's PR and work in progress. See also #9202 for verification.


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>

Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com>

Co-Authored-By: Daniel Knopik <daniel@dknopik.de>

Co-Authored-By: Daniel Knopik <107140945+dknopik@users.noreply.github.com>

Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>

Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
@dknopik dknopik deleted the gloas-column-verify branch May 26, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

das Data Availability Sampling gloas waiting-on-author The reviewer has suggested changes and awaits thier implementation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants