cl/beacon: report pending blob backfill availability - #23213
Draft
domiwei wants to merge 1 commit into
Draft
Conversation
This was referenced Aug 12, 2026
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
503when requested canonical blob data is still pending backfill instead of returning a misleading empty successblob_sidecars_by_rootresponses, verify them by identity and proof, and retry only missing sidecarsRelationship to #23138
This is a stacked follow-up to #23138. That PR remains the focused #22429 fix: the exclusive
FrozenBlobs()boundary, the lower peer startup gate, and the bounded request safety that gate requires.This PR starts at the API behavior requested during review. Returning
503safely requires trustworthy availability state across legal partial network responses, fork-specific retention windows, Fulu recovery, canonical reorgs, commit visibility, and partial persisted data; those cohesive lifecycle changes live here.The temporary base is
kewei/fix-blob-backfill-boundary. After #23138 merges, this PR can be retargeted tomainwithout changing its effective diff.API compatibility
The Beacon API endpoint schemas do not explicitly enumerate
503for these blob endpoints. This PR intentionally uses it as an Erigon extension for temporary backfill unavailability. The response follows the shared JSON error shape (codeandmessage) and usesContent-Type: application/json.Available requested indices or versioned hashes remain a
200. Empty blocks, unmatched filters, side branches, frozen data, and completed or disabled backfill preserve their normal behavior.Validation
go test ./cl/phase1/network ./cl/beacon/handler ./cl/das ./cl/persistence/blob_storage ./cl/phase1/stages ./cl/phase1/forkchoice ./cmd/caplin/caplin1 -count=1make lint(complete pass: 0 issues)make erigon integrationand fullmake test-all; the rebuilt follow-up was revalidated with the affected package set above503