diff --git a/substrate/core/cli/src/cli.yml b/substrate/core/cli/src/cli.yml index 7979502611464b46af25f1b6c2b1e5dbeb85ae9f..fed66ad91d2a2fe5e6649210b5251b48aff9d274 100644 --- a/substrate/core/cli/src/cli.yml +++ b/substrate/core/cli/src/cli.yml @@ -82,15 +82,15 @@ 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 + - out-peers: + long: out-peers + value_name: OUT_PEERS + help: Specify the number of outgoing connections we're trying to maintain + takes_value: true + - in-peers: + long: in-peers + value_name: IN_PEERS + help: Specify the maximum number of incoming connections we're accepting takes_value: true - chain: long: chain diff --git a/substrate/core/cli/src/lib.rs b/substrate/core/cli/src/lib.rs index 4ff266e193ce68b02f67bae53067cb6b937a0cbb..59d653bfed7529ab95a2539aecfa6ba1982f0c7c 100644 --- a/substrate/core/cli/src/lib.rs +++ b/substrate/core/cli/src/lib.rs @@ -320,19 +320,17 @@ where None => None, }; - let min_peers = match matches.value_of("min-peers") { - Some(min_peers) => min_peers.parse().map_err(|_| "Invalid min-peers value specified.")?, + let in_peers = match matches.value_of("in-peers") { + Some(in_peers) => in_peers.parse().map_err(|_| "Invalid in-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, + let out_peers = match matches.value_of("out-peers") { + Some(out_peers) => out_peers.parse().map_err(|_| "Invalid out-peers value specified.")?, + None => 25, }; - 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.network.in_peers = in_peers; + config.network.out_peers = out_peers; } config.keys = matches.values_of("key").unwrap_or_default().map(str::to_owned).collect(); diff --git a/substrate/core/network-libp2p/src/service_task.rs b/substrate/core/network-libp2p/src/service_task.rs index 8a8a7e2004ff17e876c913db0f0415a5a3d9f2d4..93be0e476cae1d144b53ab8db809e178e9f5823b 100644 --- a/substrate/core/network-libp2p/src/service_task.rs +++ b/substrate/core/network-libp2p/src/service_task.rs @@ -150,8 +150,8 @@ where TProtos: IntoIterator<Item = RegisteredProtocol> { Ok(Service { swarm, - max_incoming_connections: config.max_peers.saturating_sub(config.min_peers) as usize, - max_outgoing_connections: config.min_peers as usize, + max_incoming_connections: config.in_peers as usize, + max_outgoing_connections: config.out_peers as usize, topology, nodes_addresses: Default::default(), disabled_peers: Default::default(), diff --git a/substrate/core/network-libp2p/src/traits.rs b/substrate/core/network-libp2p/src/traits.rs index d81702f314a8e177c15cc9fa15c9992059ce8dd5..7e87ec130138cdbbdec90170fdc295b6b34849cc 100644 --- a/substrate/core/network-libp2p/src/traits.rs +++ b/substrate/core/network-libp2p/src/traits.rs @@ -44,10 +44,10 @@ pub struct NetworkConfiguration { pub boot_nodes: Vec<String>, /// Use provided node key instead of default pub use_secret: Option<Secret>, - /// Minimum number of connected peers to maintain - pub min_peers: u32, - /// Maximum allowed number of peers - pub max_peers: u32, + /// Maximum allowed number of incoming connections + pub in_peers: u32, + /// Number of outgoing connections we're trying to maintain + pub out_peers: u32, /// List of reserved node addresses. pub reserved_nodes: Vec<String>, /// The non-reserved peer mode. @@ -76,8 +76,8 @@ impl NetworkConfiguration { public_addresses: Vec::new(), boot_nodes: Vec::new(), use_secret: None, - min_peers: 25, - max_peers: 100, + in_peers: 25, + out_peers: 75, reserved_nodes: Vec::new(), non_reserved_mode: NonReservedPeerMode::Accept, client_version: "Parity-network".into(), // TODO: meh diff --git a/substrate/core/service/test/src/lib.rs b/substrate/core/service/test/src/lib.rs index 2a61f5dd60633699f25202e86f1ef942dbf8de57..883a8c6ac0aa9eafa25f9c8224197c349529040c 100644 --- a/substrate/core/service/test/src/lib.rs +++ b/substrate/core/service/test/src/lib.rs @@ -105,8 +105,8 @@ fn node_config<F: ServiceFactory> ( public_addresses: vec![], boot_nodes: vec![], use_secret: Some(blake2_256(node_private_key_string(index).as_bytes())), - min_peers: 50, - max_peers: 500, + in_peers: 50, + out_peers: 450, reserved_nodes: vec![], non_reserved_mode: NonReservedPeerMode::Accept, client_version: "network/test/0.1".to_owned(),