Gloas lookup sync boilerplate#9322
Merged
mergify[bot] merged 5 commits intoMay 20, 2026
Merged
Conversation
Wire the beacon processor (Work::RpcEnvelope queue + dispatcher), SyncRequestId::SinglePayloadEnvelope, BlockProcessType::SinglePayloadEnvelope, SyncMessage::RpcPayloadEnvelope, router dispatch for PayloadEnvelopesByRoot responses, send_lookup_envelope work-spawn, and the new PayloadEnvelopesByRoot request module. Processing/state-machine logic is stubbed with TODO(gloas) markers; this is plumbing only so the lookup sync rewrite from sigp#9155 can land additively on top.
- payload_envelopes_by_root_requests ActiveRequests field, plumbed through peer_disconnected and active_request_count_by_peer. - payload_lookup_request, on_single_payload_envelope_response, send_payload_for_processing, and a spec() helper. - Re-export PayloadEnvelopesByRootSingleRequest. Drive-by: drop stale `rpc_blob_queue` comment on Work::RpcEnvelope (separate queue is used) and collapse the PayloadEnvelopesByRoot router match to a single ok-case with default error arm.
- manager: on_single_payload_envelope_response now calls into network_context to drive ActiveRequests bookkeeping + per-chunk verification; TODO marks the missing block_lookups dispatch. - sync_methods: process_lookup_envelope mirrors process_lookup_block — chain.verify_envelope_for_gossip + chain.process_execution_payload_envelope with BlockImportSource::Lookup, folding EnvelopeError through BlockError::InternalError until the structured classifier lands with the state machine. - router: drop the low-signal trace! on PayloadEnvelopesByRoot. - Drop now-stale #[allow(dead_code)] / unused_imports gates on the request module and on on_single_payload_envelope_response.
The PR's callers live in the lookup state machine we deliberately didn't copy; nothing in the present scaffold uses it.
It's reached transitively via send_lookup_envelope, which itself is reached by send_payload_for_processing (the actual topmost dead node). One allow at the top of the chain is enough.
eserilev
reviewed
May 20, 2026
| let result = match self | ||
| .chain | ||
| .clone() | ||
| .verify_envelope_for_gossip(envelope.clone()) |
Member
There was a problem hiding this comment.
verify_envelope_for_gossip also checks that the envelope is not from a finalized portion of the chain and requires that the envelopes beacon block root is known to us. not sure if that causes issues with lookup sync but wanted to flag it just in case
Collaborator
Author
There was a problem hiding this comment.
It's an edge case we need to look into. I'll add a TODO(gloas) in the full impl
Merge Queue Status
This pull request spent 30 minutes 50 seconds in the queue, including 28 minutes 10 seconds running CI. Required conditions to merge
|
10 tasks
dapplion
added a commit
to dapplion/lighthouse
that referenced
this pull request
Jun 1, 2026
Brings in the gossip-blob deprecation (sigp#9126) and 17 other unstable commits. Conflict resolutions (8 files): - Kept our unified `SyncMessage::UnknownParentSidecarHeader` design over unstable's separate `UnknownParentDataColumn`/`UnknownParentPartialDataColumn` variants (gossip_methods, manager, single_block_lookup, mod, tests). - Adopted unstable's gossip-blob deprecation: dropped `process_gossip_blob`, `process_gossip_verified_blob`, and the blob parent-unknown test path. - Took unstable's `process_gossip_verified_data_column` (Result-returning `to_partial`), router PayloadEnvelopesByRoot flattened match, and combined `BlockProcessType::id` arm. - Dropped unstable's gloas-lookup-sync boilerplate stubs (sigp#9322) that duplicated our real impls: `process_lookup_envelope`, `rpc_payload_envelope_received`, `on_single_payload_envelope_response`, and the `SinglePayloadEnvelope` processing-result arm. cargo check -p network passes clean.
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.
Issue Addressed
Implements the boring boilerplate to send envelopes by root requests and process them. Pre-step to