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

Perf/parallel block downloader #8255

Draft
wants to merge 4 commits into
base: refactor/forward-header-provider
Choose a base branch
from

Conversation

asdacap
Copy link
Contributor

@asdacap asdacap commented Feb 24, 2025

  • Include Refactor/forward header provider #8254
  • Currently forward sync only download from a single peer.
  • This is a problem as the upload of a peer is more limited than download therefore the download speed really depends on the peer that the forward sync is being pinned to.
    • Depending on the peer, the download speed of the forward sync can be 0 (hang), 15 blk/s or 150 blks.
    • Since nethermind can consistently process at least 30blk/s a lot of the time when catching up, the node is waiting until it got lucky with a peer with fast upload.
    • This makes it hard to know if something is wrong with it or not.
    • Also makes performance benchmarking inconsistent as most of the time, it waiting for block download.
  • This PR add the ability to dowload blocks and receipts in parallel.
  • This provide a much more consistent forward sync download speed of around 200 block per sec.
  • Works by having a map of hash->(block, receipts) that stores download requests.

Types of changes

What types of changes does your code introduce?

  • Optimization

Testing

Requires testing

  • Yes
  • No

If yes, did you write tests?

  • Yes
  • No

Notes on testing

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