mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-14 07:31:08 +00:00
cli: disable pruning on validators (#3835)
This commit is contained in:
@@ -675,13 +675,6 @@ where
|
|||||||
config.database_path = db_path(&base_path, config.chain_spec.id());
|
config.database_path = db_path(&base_path, config.chain_spec.id());
|
||||||
config.database_cache_size = cli.database_cache_size;
|
config.database_cache_size = cli.database_cache_size;
|
||||||
config.state_cache_size = cli.state_cache_size;
|
config.state_cache_size = cli.state_cache_size;
|
||||||
config.pruning = match cli.pruning {
|
|
||||||
Some(ref s) if s == "archive" => PruningMode::ArchiveAll,
|
|
||||||
None => PruningMode::default(),
|
|
||||||
Some(s) => PruningMode::keep_blocks(s.parse()
|
|
||||||
.map_err(|_| error::Error::Input("Invalid pruning mode specified".to_string()))?
|
|
||||||
),
|
|
||||||
};
|
|
||||||
|
|
||||||
let is_dev = cli.shared_params.dev;
|
let is_dev = cli.shared_params.dev;
|
||||||
|
|
||||||
@@ -694,6 +687,28 @@ where
|
|||||||
service::Roles::FULL
|
service::Roles::FULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// by default we disable pruning if the node is an authority (i.e.
|
||||||
|
// `ArchiveAll`), otherwise we keep state for the last 256 blocks. if the
|
||||||
|
// node is an authority and pruning is enabled explicitly, then we error
|
||||||
|
// unless `unsafe_pruning` is set.
|
||||||
|
config.pruning = match cli.pruning {
|
||||||
|
Some(ref s) if s == "archive" => PruningMode::ArchiveAll,
|
||||||
|
None if role == service::Roles::AUTHORITY => PruningMode::ArchiveAll,
|
||||||
|
None => PruningMode::default(),
|
||||||
|
Some(s) => {
|
||||||
|
if role == service::Roles::AUTHORITY && !cli.unsafe_pruning {
|
||||||
|
return Err(error::Error::Input(
|
||||||
|
"Validators should run with state pruning disabled (i.e. archive). \
|
||||||
|
You can ignore this check with `--unsafe-pruning`.".to_string()
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
PruningMode::keep_blocks(s.parse()
|
||||||
|
.map_err(|_| error::Error::Input("Invalid pruning mode specified".to_string()))?
|
||||||
|
)
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
config.wasm_method = cli.wasm_method.into();
|
config.wasm_method = cli.wasm_method.into();
|
||||||
|
|
||||||
let exec = cli.execution_strategies;
|
let exec = cli.execution_strategies;
|
||||||
|
|||||||
@@ -366,12 +366,22 @@ pub struct RunCmd {
|
|||||||
#[structopt(long = "rpc-cors", value_name = "ORIGINS", parse(try_from_str = parse_cors))]
|
#[structopt(long = "rpc-cors", value_name = "ORIGINS", parse(try_from_str = parse_cors))]
|
||||||
pub rpc_cors: Option<Cors>,
|
pub rpc_cors: Option<Cors>,
|
||||||
|
|
||||||
/// Specify the pruning mode, a number of blocks to keep or 'archive'.
|
/// Specify the state pruning mode, a number of blocks to keep or 'archive'.
|
||||||
///
|
///
|
||||||
/// Default is 256.
|
/// Default is to keep all block states if the node is running as a
|
||||||
|
/// validator (i.e. 'archive'), otherwise state is only kept for the last
|
||||||
|
/// 256 blocks.
|
||||||
#[structopt(long = "pruning", value_name = "PRUNING_MODE")]
|
#[structopt(long = "pruning", value_name = "PRUNING_MODE")]
|
||||||
pub pruning: Option<String>,
|
pub pruning: Option<String>,
|
||||||
|
|
||||||
|
/// Force start with unsafe pruning settings.
|
||||||
|
///
|
||||||
|
/// When running as a validator it is highly recommended to disable state
|
||||||
|
/// pruning (i.e. 'archive') which is the default. The node will refuse to
|
||||||
|
/// start as a validator if pruning is enabled unless this option is set.
|
||||||
|
#[structopt(long = "unsafe-pruning")]
|
||||||
|
pub unsafe_pruning: bool,
|
||||||
|
|
||||||
/// The human-readable name for this node.
|
/// The human-readable name for this node.
|
||||||
///
|
///
|
||||||
/// The node name will be reported to the telemetry server, if enabled.
|
/// The node name will be reported to the telemetry server, if enabled.
|
||||||
|
|||||||
Reference in New Issue
Block a user