Extract warp sync strategy from `ChainSync` (#2467)
Extract `WarpSync` (and `StateSync` as part of warp sync) from
`ChainSync` as independent syncing strategy called by `SyncingEngine`.
Introduce `SyncingStrategy` enum as a proxy between `SyncingEngine` and
specific syncing strategies.
## Limitations
Gap sync is kept in `ChainSync` for now because it shares the same set
of peers as block syncing implementation in `ChainSync`. Extraction of a
common context responsible for peer management in syncing strategies
able to run in parallel is planned for a follow-up PR.
## Further improvements
A possibility of conversion of `SyncingStartegy` into a trait should be
evaluated. The main stopper for this is that different strategies need
to communicate different actions to `SyncingEngine` and respond to
different events / provide different APIs (e.g., requesting
justifications is only possible via `ChainSync` and not through
`WarpSync`; `SendWarpProofRequest` action is only relevant to
`WarpSync`, etc.)
---------
Co-authored-by:
Aaro Altonen <48052676+altonen@users.noreply.github.com>
parent
5ed0a75f
Showing
- polkadot/node/service/src/lib.rs 1 addition, 1 deletionpolkadot/node/service/src/lib.rs
- prdoc/pr_2467.prdoc 15 additions, 0 deletionsprdoc/pr_2467.prdoc
- substrate/bin/node/cli/src/service.rs 1 addition, 1 deletionsubstrate/bin/node/cli/src/service.rs
- substrate/client/consensus/grandpa/src/warp_proof.rs 1 addition, 1 deletionsubstrate/client/consensus/grandpa/src/warp_proof.rs
- substrate/client/informant/src/display.rs 4 additions, 6 deletionssubstrate/client/informant/src/display.rs
- substrate/client/network/sync/Cargo.toml 1 addition, 1 deletionsubstrate/client/network/sync/Cargo.toml
- substrate/client/network/sync/src/block_announce_validator.rs 1 addition, 4 deletions...trate/client/network/sync/src/block_announce_validator.rs
- substrate/client/network/sync/src/block_request_handler.rs 1 addition, 1 deletionsubstrate/client/network/sync/src/block_request_handler.rs
- substrate/client/network/sync/src/blocks.rs 7 additions, 6 deletionssubstrate/client/network/sync/src/blocks.rs
- substrate/client/network/sync/src/engine.rs 176 additions, 177 deletionssubstrate/client/network/sync/src/engine.rs
- substrate/client/network/sync/src/extra_requests.rs 9 additions, 8 deletionssubstrate/client/network/sync/src/extra_requests.rs
- substrate/client/network/sync/src/lib.rs 5 additions, 3 deletionssubstrate/client/network/sync/src/lib.rs
- substrate/client/network/sync/src/pending_responses.rs 1 addition, 4 deletionssubstrate/client/network/sync/src/pending_responses.rs
- substrate/client/network/sync/src/state_request_handler.rs 4 additions, 2 deletionssubstrate/client/network/sync/src/state_request_handler.rs
- substrate/client/network/sync/src/strategy.rs 489 additions, 0 deletionssubstrate/client/network/sync/src/strategy.rs
- substrate/client/network/sync/src/strategy/chain_sync.rs 145 additions, 313 deletionssubstrate/client/network/sync/src/strategy/chain_sync.rs
- substrate/client/network/sync/src/strategy/chain_sync/test.rs 26 additions, 26 deletions...trate/client/network/sync/src/strategy/chain_sync/test.rs
- substrate/client/network/sync/src/strategy/state.rs 754 additions, 0 deletionssubstrate/client/network/sync/src/strategy/state.rs
- substrate/client/network/sync/src/strategy/state_sync.rs 86 additions, 27 deletionssubstrate/client/network/sync/src/strategy/state_sync.rs
- substrate/client/network/sync/src/strategy/warp.rs 1443 additions, 0 deletionssubstrate/client/network/sync/src/strategy/warp.rs
Please register or sign in to comment