--- a/node/cli/src/cli.rs +++ b/node/cli/src/cli.rs @@ -84,6 +84,10 @@ #[structopt(default_value = "500", long)] pub idle_autoseal_interval: u64, + /// Disable auto-sealing blocks on new transactions in the `--dev` mode. + #[structopt(long)] + pub disable_autoseal_on_tx: bool, + /// Disable automatic hardware benchmarks. /// /// By default these benchmarks are automatically ran at startup and measure --- a/node/cli/src/command.rs +++ b/node/cli/src/command.rs @@ -488,7 +488,7 @@ config.state_pruning = Some(sc_service::PruningMode::ArchiveAll); return start_node_using_chain_runtime! { - start_dev_node(config, autoseal_interval).map_err(Into::into) + start_dev_node(config, autoseal_interval, cli.disable_autoseal_on_tx).map_err(Into::into) }; }; --- a/node/cli/src/service.rs +++ b/node/cli/src/service.rs @@ -886,6 +886,7 @@ pub fn start_dev_node( config: Configuration, autoseal_interval: Duration, + disable_autoseal_on_tx: bool, ) -> sc_service::error::Result where Runtime: RuntimeInstance + Send + Sync + 'static, @@ -980,6 +981,7 @@ .pool() .validated_pool() .import_notification_stream() + .filter(move |_| futures::future::ready(!disable_autoseal_on_tx)) .map(|_| EngineCommand::SealNewBlock { create_empty: true, finalize: false, // todo:collator finalize true