From 4a25055780cfcfb28c91f2dfe13bd1f55bb0b194 Mon Sep 17 00:00:00 2001 From: Jedrzej Kula Date: Mon, 5 Dec 2022 11:32:14 +0100 Subject: [PATCH 1/3] add experimental_pruning flag --- bin/node/src/aleph_cli.rs | 8 ++++++++ bin/node/src/main.rs | 28 ++++++++++++++++------------ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/bin/node/src/aleph_cli.rs b/bin/node/src/aleph_cli.rs index 02f71132bc..3c513029ed 100644 --- a/bin/node/src/aleph_cli.rs +++ b/bin/node/src/aleph_cli.rs @@ -40,6 +40,10 @@ pub struct AlephCli { /// BEHAVIOUR AND PUNISHED ACCORDINGLY! #[clap(long, default_value_t = 20)] max_nonfinalized_blocks: u32, + + /// Experimental flag, allow pruning + #[clap(long)] + experimental_pruning: bool, } impl AlephCli { @@ -69,4 +73,8 @@ impl AlephCli { } self.max_nonfinalized_blocks } + + pub fn experimental_pruning(&self) -> bool { + self.experimental_pruning + } } diff --git a/bin/node/src/main.rs b/bin/node/src/main.rs index d9758ac8b3..731aec2785 100644 --- a/bin/node/src/main.rs +++ b/bin/node/src/main.rs @@ -10,19 +10,23 @@ use sc_service::PartialComponents; fn main() -> sc_cli::Result<()> { let mut cli = Cli::parse(); - - if cli - .run - .import_params - .pruning_params - .blocks_pruning - .is_some() - || cli.run.import_params.pruning_params.state_pruning != Some("archive".into()) - { - warn!("Pruning not supported. Switching to keeping all block bodies and states."); - cli.run.import_params.pruning_params.blocks_pruning = None; - cli.run.import_params.pruning_params.state_pruning = Some("archive".into()); + if !cli.aleph.experimental_pruning() { + if cli + .run + .import_params + .pruning_params + .blocks_pruning + .is_some() + || cli.run.import_params.pruning_params.state_pruning != Some("archive".into()) + { + warn!("Pruning not supported. Switching to keeping all block bodies and states."); + cli.run.import_params.pruning_params.blocks_pruning = None; + cli.run.import_params.pruning_params.state_pruning = Some("archive".into()); + } + } else { + warn!("Pruning not supported, but flag experimental_pruning was turned on. Usage of this flag can lead to misbehaviour, which can be punished."); } + match &cli.subcommand { Some(Subcommand::BootstrapChain(cmd)) => cmd.run(), From c1de8d75d24d7e8d07faccab81e4c6e53d2a78c4 Mon Sep 17 00:00:00 2001 From: Jedrzej Kula Date: Mon, 5 Dec 2022 11:54:17 +0100 Subject: [PATCH 2/3] add default value --- bin/node/src/aleph_cli.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bin/node/src/aleph_cli.rs b/bin/node/src/aleph_cli.rs index 3c513029ed..e4903cf38e 100644 --- a/bin/node/src/aleph_cli.rs +++ b/bin/node/src/aleph_cli.rs @@ -41,8 +41,10 @@ pub struct AlephCli { #[clap(long, default_value_t = 20)] max_nonfinalized_blocks: u32, - /// Experimental flag, allow pruning - #[clap(long)] + /// Experimental flag, allows pruning + /// + /// TURNING THIS FLAG ON, CAN LEAD TO MALICIOUS BEHAVIOUR AND CAN BE PUNISHED ACCORDINGLY! + #[clap(long, default_value_t = false)] experimental_pruning: bool, } From 4ef9cc4fb05ffb58518908694d0e70fa51bf56ed Mon Sep 17 00:00:00 2001 From: Jedrzej Kula Date: Mon, 5 Dec 2022 12:03:28 +0100 Subject: [PATCH 3/3] fmt --- bin/node/src/aleph_cli.rs | 2 +- bin/node/src/main.rs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/node/src/aleph_cli.rs b/bin/node/src/aleph_cli.rs index e4903cf38e..76d3a0539b 100644 --- a/bin/node/src/aleph_cli.rs +++ b/bin/node/src/aleph_cli.rs @@ -42,7 +42,7 @@ pub struct AlephCli { max_nonfinalized_blocks: u32, /// Experimental flag, allows pruning - /// + /// /// TURNING THIS FLAG ON, CAN LEAD TO MALICIOUS BEHAVIOUR AND CAN BE PUNISHED ACCORDINGLY! #[clap(long, default_value_t = false)] experimental_pruning: bool, diff --git a/bin/node/src/main.rs b/bin/node/src/main.rs index 731aec2785..a8d550a40a 100644 --- a/bin/node/src/main.rs +++ b/bin/node/src/main.rs @@ -26,7 +26,6 @@ fn main() -> sc_cli::Result<()> { } else { warn!("Pruning not supported, but flag experimental_pruning was turned on. Usage of this flag can lead to misbehaviour, which can be punished."); } - match &cli.subcommand { Some(Subcommand::BootstrapChain(cmd)) => cmd.run(),