mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-23 16:41:06 +00:00
warp-sync: Return an error when trying to enable it for archive nodes. (#11086)
* warp-sync: Return an error when trying to enable it for archive nodes. * Fix checks * Ups * FMT
This commit is contained in:
@@ -377,8 +377,8 @@ impl From<multiaddr::Error> for ParseErr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
||||||
/// Sync operation mode.
|
/// Sync operation mode.
|
||||||
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
pub enum SyncMode {
|
pub enum SyncMode {
|
||||||
/// Full block download and verification.
|
/// Full block download and verification.
|
||||||
Full,
|
Full,
|
||||||
@@ -393,6 +393,18 @@ pub enum SyncMode {
|
|||||||
Warp,
|
Warp,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl SyncMode {
|
||||||
|
/// Returns if `self` is [`Self::Warp`].
|
||||||
|
pub fn is_warp(&self) -> bool {
|
||||||
|
matches!(self, Self::Warp)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns if `self` is [`Self::Fast`].
|
||||||
|
pub fn is_fast(&self) -> bool {
|
||||||
|
matches!(self, Self::Fast { .. })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Default for SyncMode {
|
impl Default for SyncMode {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self::Full
|
Self::Full
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ use sc_executor::RuntimeVersionOf;
|
|||||||
use sc_keystore::LocalKeystore;
|
use sc_keystore::LocalKeystore;
|
||||||
use sc_network::{
|
use sc_network::{
|
||||||
block_request_handler::{self, BlockRequestHandler},
|
block_request_handler::{self, BlockRequestHandler},
|
||||||
config::Role,
|
config::{Role, SyncMode},
|
||||||
light_client_requests::{self, handler::LightClientRequestHandler},
|
light_client_requests::{self, handler::LightClientRequestHandler},
|
||||||
state_request_handler::{self, StateRequestHandler},
|
state_request_handler::{self, StateRequestHandler},
|
||||||
warp_request_handler::{self, RequestHandler as WarpSyncRequestHandler, WarpSyncProvider},
|
warp_request_handler::{self, RequestHandler as WarpSyncRequestHandler, WarpSyncProvider},
|
||||||
@@ -767,6 +767,18 @@ where
|
|||||||
warp_sync,
|
warp_sync,
|
||||||
} = params;
|
} = params;
|
||||||
|
|
||||||
|
if warp_sync.is_none() && config.network.sync_mode.is_warp() {
|
||||||
|
return Err("Warp sync enabled, but no warp sync provider configured.".into())
|
||||||
|
}
|
||||||
|
|
||||||
|
if config.state_pruning.is_archive() {
|
||||||
|
match config.network.sync_mode {
|
||||||
|
SyncMode::Fast { .. } => return Err("Fast sync doesn't work for archive nodes".into()),
|
||||||
|
SyncMode::Warp => return Err("Warp sync doesn't work for archive nodes".into()),
|
||||||
|
SyncMode::Full => {},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
let transaction_pool_adapter = Arc::new(TransactionPoolAdapter {
|
let transaction_pool_adapter = Arc::new(TransactionPoolAdapter {
|
||||||
imports_external_transactions: !matches!(config.role, Role::Light),
|
imports_external_transactions: !matches!(config.role, Role::Light),
|
||||||
pool: transaction_pool,
|
pool: transaction_pool,
|
||||||
|
|||||||
Reference in New Issue
Block a user