mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 07:01:05 +00:00
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>
This commit is contained in:
@@ -21,10 +21,7 @@ use ansi_term::Colour;
|
||||
use log::info;
|
||||
use sc_client_api::ClientInfo;
|
||||
use sc_network::NetworkStatus;
|
||||
use sc_network_sync::{
|
||||
warp::{WarpSyncPhase, WarpSyncProgress},
|
||||
SyncState, SyncStatus,
|
||||
};
|
||||
use sc_network_sync::{SyncState, SyncStatus, WarpSyncPhase, WarpSyncProgress};
|
||||
use sp_runtime::traits::{Block as BlockT, CheckedDiv, NumberFor, Saturating, Zero};
|
||||
use std::{fmt, time::Instant};
|
||||
|
||||
@@ -130,9 +127,10 @@ impl<B: BlockT> InformantDisplay<B> {
|
||||
),
|
||||
(_, Some(state), _) => (
|
||||
"⚙️ ",
|
||||
"Downloading state".into(),
|
||||
"State sync".into(),
|
||||
format!(
|
||||
", {}%, {:.2} Mib",
|
||||
", {}, {}%, {:.2} Mib",
|
||||
state.phase,
|
||||
state.percentage,
|
||||
(state.size as f32) / (1024f32 * 1024f32)
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user