From e83d85f620a2381f378d1e767142ee2b2ffe9c4a Mon Sep 17 00:00:00 2001 From: Guanqun Lu <guanqun.lu@gmail.com> Date: Tue, 14 Aug 2018 19:09:01 +0800 Subject: [PATCH] cli: add min-peers and max-peers (#557) --- substrate/substrate/cli/src/cli.yml | 10 ++++++++++ substrate/substrate/cli/src/lib.rs | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/substrate/substrate/cli/src/cli.yml b/substrate/substrate/cli/src/cli.yml index 0d6fd8795ad..e6b8e395d2a 100644 --- a/substrate/substrate/cli/src/cli.yml +++ b/substrate/substrate/cli/src/cli.yml @@ -76,6 +76,16 @@ args: help: Specify a list of reserved node addresses takes_value: true multiple: true + - min-peers: + long: min-peers + value_name: MIN_PEERS + help: Specify the minimum number of peers + takes_value: true + - max-peers: + long: max-peers + value_name: MAX_PEERS + help: Specify the maximum number of peers + takes_value: true - chain: long: chain value_name: CHAIN_SPEC diff --git a/substrate/substrate/cli/src/lib.rs b/substrate/substrate/cli/src/lib.rs index 801e808c51d..a1064cccc44 100644 --- a/substrate/substrate/cli/src/lib.rs +++ b/substrate/substrate/cli/src/lib.rs @@ -301,6 +301,20 @@ where Some(Err(err)) => return Err(format!("Error parsing node key: {}", err).into()), None => None, }; + + let min_peers = match matches.value_of("min-peers") { + Some(min_peers) => min_peers.parse().map_err(|_| "Invalid min-peers value specified.")?, + None => 25, + }; + let max_peers = match matches.value_of("max-peers") { + Some(max_peers) => max_peers.parse().map_err(|_| "Invalid max-peers value specified.")?, + None => 50, + }; + if min_peers > max_peers { + return Err(error::ErrorKind::Input("Min-peers mustn't be larger than max-peers.".to_owned()).into()); + } + config.network.min_peers = min_peers; + config.network.max_peers = max_peers; } config.keys = matches.values_of("key").unwrap_or_default().map(str::to_owned).collect(); -- GitLab