Skip to content

Gloas data availability checker#8716

Open
eserilev wants to merge 33 commits intosigp:unstablefrom
eserilev:gloas-data-availability-checker
Open

Gloas data availability checker#8716
eserilev wants to merge 33 commits intosigp:unstablefrom
eserilev:gloas-data-availability-checker

Conversation

@eserilev
Copy link
Member

@eserilev eserilev commented Jan 29, 2026

TODO
Add more details

image

@eserilev eserilev requested a review from jxs as a code owner January 29, 2026 00:47
@eserilev eserilev changed the title Gloas data availability checker Gloas data availability checker [WIP] Jan 29, 2026
@eserilev eserilev added gloas work-in-progress PR is a work-in-progress labels Jan 29, 2026
@jimmygchen jimmygchen mentioned this pull request Jan 29, 2026
18 tasks
@eserilev eserilev changed the title Gloas data availability checker [WIP] Gloas data availability checker Feb 4, 2026
pub struct DataColumnsByRootRequest<E: EthSpec> {
/// The list of beacon block roots and column indices being requested.
pub data_column_ids: RuntimeVariableList<DataColumnsByRootIdentifier<E>>,
pub fork_name: ForkName,
Copy link
Member

Choose a reason for hiding this comment

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

Maybe add a comment here saying that this isn't part of the consensus object?
Mainly to avoid serializing the fork_name when sending it over the wire.

);

// If a block is in the da_checker, sync maybe awaiting for an event when block is finally
// imported. A block can become imported both after processing a block or data column. If a
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
// imported. A block can become imported both after processing a block or data column. If a
// imported. A block can become imported both after processing a block or data column. If

Copy link
Member

Choose a reason for hiding this comment

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

Any specific reason why we moved it from below to here other than this being cleaner?

Copy link
Member Author

Choose a reason for hiding this comment

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

yeah just to clean it up a bit

/// this trait. The associated types differ:
/// - V1: Returns `Availability<E>` containing `AvailableExecutedBlock<E>`
/// - V2: Returns `Availability<E>` containing `(Hash256, DataColumnSidecarList<E>)` (block root + columns)
pub trait AvailabilityCache<T: BeaconChainTypes>: Send + Sync {
Copy link
Member

Choose a reason for hiding this comment

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

Given that the da checker holds both v1 and v2 variants and we are explicitly dispatching to v1 and v2, the trait doesn't seem necessary to me.

Right now, it just seems to be documenting shared behaviour between both variants. Do you think its required?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah the trait was made to just be explicit about what functionality is shared between v1 and v2. Might be a lot of overhead just for documentation. I don't mind deleting it

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

Labels

gloas work-in-progress PR is a work-in-progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants