Lookup tree sync: complete header-known shortcut and component fetch#83
Open
dapplion wants to merge 2 commits into
Open
Lookup tree sync: complete header-known shortcut and component fetch#83dapplion wants to merge 2 commits into
dapplion wants to merge 2 commits into
Conversation
- Skip the header-fetch stage when the block is already known at creation (gossip `UnknownParentBlock`): seed it into `ComponentsDownload` and let the beacon processor determine `ParentUnknown` rather than pre-parking. - Replace `add_child_components` by routing the block component through `SingleBlockLookup::new`. - Honor `awaiting_parent` at creation as a processing gate: a peerless gossip child keeps its cached block and is not submitted for processing until the parent resolves, instead of dropping a block it cannot re-fetch. - Fix `continue_requests` control flow: start the block download in `FetchingHeader` and break out of every terminal state. - Gate data-column requests on the peer-das fork so pre-fulu blocks do not request columns. - Ignore orphaned custody/payload download responses for a lookup that has parked awaiting its parent instead of dropping it on `BadState`.
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.
Builds on
e9eb55ca4d("Lookup tree sync: cache header when awaiting parent"), completing the wiring so lookup sync works end-to-end across phase0/electra/fulu.Changes
UnknownParentBlock), seed it straight intoComponentsDownloadand let the beacon processor authoritatively reportParentUnknown, instead of pre-parking on the gossip hint.add_child_componentsremoved: the block component is routed throughSingleBlockLookup::new.awaiting_parentgate (wires the previously-dead constructor arg): a peerless gossip child keeps its cached block and is not submitted for processing until the parent resolves — it never entersWaitingForParent, which drops the block, because it has no peers to re-fetch from.WaitingForParent(header-only; block dropped + re-fetched) remains for deep-chain parents, which do have peers.continue_requestscontrol flow: start the block download inFetchingHeaderand break out of every terminal state.DataColumnsByRoot(they carry blobs, not columns).BadState(this was killing fulu lookups whose in-flight column request outlived the park).