Skip to content

Conversation

dapplion
Copy link
Collaborator

@dapplion dapplion commented Mar 10, 2025

Issue Addressed

@AgeManning pointed to me that we can have experimental ReqResp protocols in Lighthouse :) so here we go

Implements

a new ReqResp protocol to make have better attributability of malicious sync peers when range syncing. See the spec PR for more details

Proposed Changes

Since the spec is not agreed upon yet, this PR implements a new namespaces "feature" protocol suffixed by the spec PR number: BlocksByRangeV2_3845, BlobsByRangeV1_3845, DataColumnsByRangeV1_3845. Note that we may have a new BlocksByRangeV3 protocol in the future before the 3845 feature is merged, thus having BlocksByRangeV2_3845 and BlocksByRangeV3_3845.

These new protocol can exist in Lighthouse nodes only who will use them between themselves. They can also be deprecated in the future without coordination if the feature is merged or abandoned.

Requester changes

On a syncing chain of type Head that with peers with a Status message (head_root, head_slot), include head_root in the request.

Server changes

Then instead of querying the fork-choice for blocks with the head root, query by the request block_root.

jimmygchen and others added 3 commits March 9, 2025 22:57
…ByRange` requests (sigp#7058)

* Load block roots from fork choice where possible to avoid loading state from disk when serving block by range requests.

* Check if the start slot is newer than finalization (`start_slot >= finalized_slot`), and use fork choice in that case.
sigp#7066)

* handle bbr across finalized slot gracefully

* sort deps

* Michael's off-by-one corrections

---------

Co-authored-by: Michael Sproul <[email protected]>
@dapplion dapplion added work-in-progress PR is a work-in-progress syncing labels Mar 10, 2025
@dapplion dapplion requested a review from AgeManning March 10, 2025 05:08
@dapplion dapplion requested a review from jxs as a code owner March 10, 2025 05:08
@mergify
Copy link

mergify bot commented May 19, 2025

Some required checks have failed. Could you please take a look @dapplion? 🙏

@mergify mergify bot added the waiting-on-author The reviewer has suggested changes and awaits thier implementation. label May 19, 2025
@mergify
Copy link

mergify bot commented May 19, 2025

This pull request has merge conflicts. Could you please resolve them @dapplion? 🙏

@mergify mergify bot closed this Jun 18, 2025
@mergify
Copy link

mergify bot commented Jun 18, 2025

Hi @dapplion, this pull request has been closed automatically due to 30 days of inactivity. If you’d like to continue working on it, feel free to reopen at any time.

@mergify mergify bot added the stale Stale PRs that have been inactive and is now outdated label Jun 18, 2025
@dapplion dapplion mentioned this pull request Jun 30, 2025
2 tasks
@jimmygchen
Copy link
Member

@dapplion I'm reopening this - i assume you still want this?

@jimmygchen jimmygchen reopened this Jul 2, 2025
@dapplion
Copy link
Collaborator Author

dapplion commented Jul 2, 2025

  • I'll close as stale and track this idea in Tree sync #7678 depending on testing this modification may not be necessary

@dapplion dapplion closed this Jul 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stale Stale PRs that have been inactive and is now outdated syncing waiting-on-author The reviewer has suggested changes and awaits thier implementation. work-in-progress PR is a work-in-progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants