malus: add finality_delay cli flag (#5770)

* add malus_finality_delay flag

* cargo update -p sp-io

* no warnings when malus is disabled

* subpar workaround for feature unification problem

* remove malus_finality_delay from regular cli

* document finality_delay param, rename cli arg
This commit is contained in:
Andronik
2022-07-23 01:24:33 +02:00
committed by GitHub
parent d6334447ae
commit b1f8445d62
6 changed files with 40 additions and 6 deletions
+16 -3
View File
@@ -267,14 +267,21 @@ fn host_perf_check() -> Result<()> {
/// Launch a node, accepting arguments just like a regular node,
/// accepts an alternative overseer generator, to adjust behavior
/// for integration tests as needed.
/// `malus_finality_delay` restrict finality votes of this node
/// to be at most `best_block - malus_finality_delay` height.
#[cfg(feature = "malus")]
pub fn run_node(run: Cli, overseer_gen: impl service::OverseerGen) -> Result<()> {
run_node_inner(run, overseer_gen, |_logger_builder, _config| {})
pub fn run_node(
run: Cli,
overseer_gen: impl service::OverseerGen,
malus_finality_delay: Option<u32>,
) -> Result<()> {
run_node_inner(run, overseer_gen, malus_finality_delay, |_logger_builder, _config| {})
}
fn run_node_inner<F>(
cli: Cli,
overseer_gen: impl service::OverseerGen,
maybe_malus_finality_delay: Option<u32>,
logger_hook: F,
) -> Result<()>
where
@@ -340,6 +347,7 @@ where
false,
overseer_gen,
cli.run.overseer_channel_capacity_override,
maybe_malus_finality_delay,
hwbench,
)
.map(|full| full.task_manager)
@@ -377,7 +385,12 @@ pub fn run() -> Result<()> {
}
match &cli.subcommand {
None => run_node_inner(cli, service::RealOverseerGen, polkadot_node_metrics::logger_hook()),
None => run_node_inner(
cli,
service::RealOverseerGen,
None,
polkadot_node_metrics::logger_hook(),
),
Some(Subcommand::BuildSpec(cmd)) => {
let runner = cli.create_runner(cmd)?;
Ok(runner.sync_run(|config| cmd.run(config.chain_spec, config.network))?)