diff --git a/node/src/args.rs b/node/src/args.rs index 31207e5d..bbdee54c 100644 --- a/node/src/args.rs +++ b/node/src/args.rs @@ -107,8 +107,9 @@ pub struct RunFlags { #[arg(long, default_value_t = 3030)] pub rpc_port: u16, - #[arg(long, default_value_t = 4)] - pub worker_threads: usize, + /// Number of tokio worker threads (defaults to number of logical CPUs) + #[arg(long)] + pub worker_threads: Option, /// level for logs (error,warn,info,debug,trace) #[arg( @@ -205,9 +206,12 @@ impl Command { let signer = key_store.node_key.clone(); // Initialize runtime + let worker_threads = flags + .worker_threads + .unwrap_or_else(|| std::thread::available_parallelism().map_or(4, |n| n.get())); let cfg = tokio::Config::default() .with_tcp_nodelay(Some(true)) - .with_worker_threads(flags.worker_threads) + .with_worker_threads(worker_threads) .with_storage_directory(store_path) .with_catch_panics(false); let executor = tokio::Runner::new(cfg); @@ -402,8 +406,6 @@ impl Command { let backfiller = network.register(BACKFILLER_CHANNEL, config.backfill_quota, MESSAGE_BACKLOG); - // Create network - let p2p = network.start(); // create engine let engine: Engine<_, _, _, _> = Engine::new(context.with_label("engine"), config).await; @@ -413,6 +415,9 @@ impl Command { // Start engine let engine = engine.start(pending, recovered, resolver, broadcaster, backfiller); + // Create network + let p2p = network.start(); + // Start RPC server let key_store_path = flags.key_store_path.clone(); let rpc_port = flags.rpc_port; @@ -585,8 +590,6 @@ pub fn run_node_local( let backfiller = network.register(BACKFILLER_CHANNEL, config.backfill_quota, MESSAGE_BACKLOG); - // Create network - let p2p = network.start(); // create engine let engine: Engine<_, _, _, _> = Engine::new(context.with_label("engine"), config).await; @@ -594,6 +597,9 @@ pub fn run_node_local( // Start engine let engine = engine.start(pending, recovered, resolver, broadcaster, backfiller); + // Create network + let p2p = network.start(); + // Start prometheus endpoint #[cfg(feature = "prom")] { diff --git a/node/src/bin/protocol_params.rs b/node/src/bin/protocol_params.rs index e3a52d84..10303f60 100644 --- a/node/src/bin/protocol_params.rs +++ b/node/src/bin/protocol_params.rs @@ -400,7 +400,7 @@ fn get_node_flags(node: usize, genesis_path: &str) -> RunFlags { prom_port: (28600 + (node * 10)) as u16, prom_ip: "0.0.0.0".into(), rpc_port: (3030 + (node * 10)) as u16, - worker_threads: 2, + worker_threads: Some(2), log_level: "debug".into(), db_prefix: format!("{node}"), genesis_path: genesis_path.into(), diff --git a/node/src/bin/stake_and_checkpoint.rs b/node/src/bin/stake_and_checkpoint.rs index 371289fd..74d8bebd 100644 --- a/node/src/bin/stake_and_checkpoint.rs +++ b/node/src/bin/stake_and_checkpoint.rs @@ -687,7 +687,7 @@ fn get_node_flags(node: usize, genesis_path: &str) -> RunFlags { prom_port: (28600 + (node * 10)) as u16, prom_ip: "0.0.0.0".into(), rpc_port: (3030 + (node * 10)) as u16, - worker_threads: 2, + worker_threads: Some(2), log_level: "debug".into(), db_prefix: format!("{node}"), genesis_path: genesis_path.into(), diff --git a/node/src/bin/stake_and_join_with_outdated_ckpt.rs b/node/src/bin/stake_and_join_with_outdated_ckpt.rs index 42b6c63a..f6cbea66 100644 --- a/node/src/bin/stake_and_join_with_outdated_ckpt.rs +++ b/node/src/bin/stake_and_join_with_outdated_ckpt.rs @@ -805,7 +805,7 @@ fn get_node_flags(node: usize, genesis_path: &str) -> RunFlags { prom_port: (28600 + (node * 10)) as u16, prom_ip: "0.0.0.0".into(), rpc_port: (3030 + (node * 10)) as u16, - worker_threads: 2, + worker_threads: Some(2), log_level: "debug".into(), db_prefix: format!("{node}"), genesis_path: genesis_path.into(), diff --git a/node/src/bin/sync_from_genesis.rs b/node/src/bin/sync_from_genesis.rs index 676e9fe1..40149cc4 100644 --- a/node/src/bin/sync_from_genesis.rs +++ b/node/src/bin/sync_from_genesis.rs @@ -670,7 +670,7 @@ fn get_node_flags(node: usize, genesis_path: &str) -> RunFlags { prom_port: (28600 + (node * 10)) as u16, prom_ip: "0.0.0.0".into(), rpc_port: (3030 + (node * 10)) as u16, - worker_threads: 2, + worker_threads: Some(2), log_level: "debug".into(), db_prefix: format!("{node}"), genesis_path: genesis_path.into(), diff --git a/node/src/bin/testnet.rs b/node/src/bin/testnet.rs index 10f255b8..367bd538 100644 --- a/node/src/bin/testnet.rs +++ b/node/src/bin/testnet.rs @@ -187,7 +187,7 @@ fn get_node_flags(node: usize) -> RunFlags { prom_port: (28600 + (node * 10)) as u16, prom_ip: "0.0.0.0".into(), rpc_port: (3030 + (node * 10)) as u16, - worker_threads: 2, + worker_threads: Some(2), log_level: "debug".into(), db_prefix: format!("{node}"), genesis_path: "./example_genesis.toml".into(), diff --git a/node/src/bin/verify_consensus_state_proof.rs b/node/src/bin/verify_consensus_state_proof.rs index 7e5945b3..3194fc85 100644 --- a/node/src/bin/verify_consensus_state_proof.rs +++ b/node/src/bin/verify_consensus_state_proof.rs @@ -547,7 +547,7 @@ fn get_node_flags(node: usize, genesis_path: &str) -> RunFlags { prom_port: (28600 + (node * 10)) as u16, prom_ip: "0.0.0.0".into(), rpc_port: (3030 + (node * 10)) as u16, - worker_threads: 2, + worker_threads: Some(2), log_level: "debug".into(), db_prefix: format!("{node}"), genesis_path: genesis_path.into(), diff --git a/node/src/bin/withdraw_and_exit.rs b/node/src/bin/withdraw_and_exit.rs index deac55c2..d61c1f2f 100644 --- a/node/src/bin/withdraw_and_exit.rs +++ b/node/src/bin/withdraw_and_exit.rs @@ -395,7 +395,7 @@ fn get_node_flags(node: usize, genesis_path: &str) -> RunFlags { prom_port: (28600 + (node * 10)) as u16, prom_ip: "0.0.0.0".into(), rpc_port: (3030 + (node * 10)) as u16, - worker_threads: 2, + worker_threads: Some(2), log_level: "debug".into(), db_prefix: format!("{node}"), genesis_path: genesis_path.into(),