Dmitry Markin
authored
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>
Name | Last commit | Last update |
---|---|---|
.. | ||
.rpm | ||
cli | ||
core-primitives | ||
doc | ||
erasure-coding | ||
grafana | ||
node | ||
parachain | ||
primitives | ||
roadmap | ||
rpc | ||
runtime | ||
scripts | ||
src | ||
statement-table | ||
tests | ||
utils | ||
xcm | ||
zombienet_tests | ||
.dockerignore | ||
.editorconfig | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
build.rs | ||
file_header.txt |