-
Notifications
You must be signed in to change notification settings - Fork 18
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
feat(code): BlockSync MVP #440
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #440 +/- ##
==========================================
- Coverage 85.32% 84.34% -0.97%
==========================================
Files 112 125 +13
Lines 7934 9128 +1194
==========================================
+ Hits 6769 7699 +930
- Misses 1165 1429 +264
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Great start! 👍 A few notes:
I have changes for the last two points in |
…ctors" This reverts commit 0a59ada.
* Define RPC behaviour for BlockSync * Hook BlockSync behaviour into networking layer * Revert to encoding-agnostic networking layer * Hook BlockSync actor to BlockSync behaviour * Fix unwraps * Remove round from status
* Add block store for blocksync testing * Sync helper get stored block at height from host * Add block store pruning
apply_driver_input.
NOT consensus round
…` crate (#487) * chore(code): Extract BlockSync logic from actor and into `blocksync` crate * Cleanup * Fix doc * Fix logs * Use custom timeout per test
* feat(code/blocksync): Add timeouts to BlockSync requests * Fix parsing of blocksync config
…os (#496) * Introduce small DSL for expressing test scenarios * Add basic integration test for BlockSync * Update fish script * Allow overriding the transport used in tests via a `MALACHITE_TRANSPORT` env variable * Update test * Add doc comments * Use TCP by default in tests Can be overriden locally with `MALACHITE_TRANSPORT=quic` * Run integration tests sequentially * Run integration tests in release mode * Fix coverage job * Try again * Do not panic when tracing subscribers are set twice * Enable basic optimizations in debug mode
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good!
…uested block in their store (#495) * feat(code/blocksync): Only request sync from peers which have the requested block in their store For this, we extend the status with the earliest block height available in the store, to ensure we only request a block from peers which have told us they have it. * Remove `blocksync::State::random_peer_at_or_above()` method
Let's leave the naming questions for later. We can address those in a follow-up PR. |
Closes: #439
TODO
BlockSync
actor and intoblocksync
crate #487Follow-up tasks
PR author checklist