Skip to content

feat(data-availability): add pending data availability checker - #1578

Closed
perfogic wants to merge 2 commits into
ReamLabs:masterfrom
ream-collective:feat/1483-pending-data-availability
Closed

perfogic wants to merge 2 commits into
ReamLabs:masterfrom
ream-collective:feat/1483-pending-data-availability

Conversation

@perfogic

Copy link
Copy Markdown
Collaborator

What was wrong?

Closes #1483

Beacon block import required data availability to succeed immediately. If a valid block arrived before its Fulu data column sidecars, the block was not retained and could not be imported when the missing columns arrived later.

How was it fixed?

Added a pending data availability flow that:

  • keeps executed blocks pending until their required data columns are available
  • supports blocks and data columns arriving in either order
  • imports pending blocks as soon as availability is satisfied
  • persists accepted columns and backfills columns already stored in the database
  • retrieves missing data column sidecars by block root during sync
  • prunes stale availability entries and covers the flow with unit and E2E tests

To-Do

@perfogic
perfogic marked this pull request as draft September 13, 2026 16:18
@KolbyML

KolbyML commented Sep 26, 2026

Copy link
Copy Markdown
Contributor

@perfogic do you plan to open this PR for me to review?

@perfogic

Copy link
Copy Markdown
Collaborator Author

Yes, i'm going to open it now @KolbyML. Wait me for like 30 minutes

Beacon block import required data availability to succeed immediately, so a
valid block that arrived before its Fulu data column sidecars was dropped and
could not be imported once the missing columns turned up.

Keep such blocks pending instead:

- retain executed blocks until their required data columns are available
- accept blocks and columns in either order, importing as soon as availability
  is satisfied
- persist accepted columns and backfill columns already stored in the database
- retrieve missing data column sidecars by block root during sync
- prune stale availability entries by finality and the configured retention
  window

This replaces the TODO(ReamLabs#1483) rejection in `on_block`. The checker lives in the
existing `ream-data-availability` crate as `checker`/`pending`, which adds a
`ream-consensus-beacon` dependency there.
@perfogic
perfogic force-pushed the feat/1483-pending-data-availability branch from e28829f to 15ddf6e Compare September 28, 2026 10:38
@perfogic
perfogic marked this pull request as ready for review September 28, 2026 12:09
@perfogic perfogic closed this Oct 18, 2026
@perfogic
perfogic deleted the feat/1483-pending-data-availability branch October 18, 2026 09:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Decoupling Data Availability Validation and Handling pending DataColumnSidecar

2 participants