Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[draft] decentralized state sync: p2p state part transfer #12095

Draft
wants to merge 23 commits into
base: master
Choose a base branch
from

Conversation

saketh-are
Copy link
Collaborator

Mainly this is a draft PR so I can get CI signals. Will be breaking into smaller PRs for review.

github-merge-queue bot pushed a commit that referenced this pull request Sep 18, 2024
This module is dead code in master but I've started using it in #12095.
While testing end-to-end I noticed some unexpected behavior and started
digging into the implementation. While doing so I ended up refactoring
it extensively and simplifying it somewhat. Ultimately I don't think
there was actually any bug.

One meaningful change I've made is to include the shard id in the
priority score. This ensures that in the specific situation that
different shards have the same/similar host set and the number of parts
is smaller than the number of hosts, the load will still be well
distributed. This is admittedly not a concern in mainnet (where the
number of parts should be large) but can easily occur in localnet.
github-merge-queue bot pushed a commit that referenced this pull request Sep 20, 2024
In this PR we implement the ability to request state parts from
arbitrary peers in the network via routed messages. Previously, state
parts were requested via a PeerMessage which can only be sent to
directly connected peers of the node.

Because the responses to these requests are large and
non-time-sensitive, it is undesirable to send them over the tier1/tier2
connections used for other operations of the protocol. Hence we also
introduce a new connection pool tier3 used for the sole purpose of
transmitting large one-time payloads.

A separate PR will follow which overhauls the state sync actor in
accordance with these changes. The end-to-end behavior has been built
and tested in #12095.
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.

1 participant