From 8050979660e90aa25ffce4e92080b79761e8ce0e Mon Sep 17 00:00:00 2001
From: Pierre Krieger <pierre.krieger1708@gmail.com>
Date: Tue, 16 Oct 2018 08:34:59 +0100
Subject: [PATCH] Rename min-peers and max-peers CLI options (#909)

---
 substrate/core/cli/src/cli.yml                 | 18 +++++++++---------
 substrate/core/cli/src/lib.rs                  | 18 ++++++++----------
 .../core/network-libp2p/src/service_task.rs    |  4 ++--
 substrate/core/network-libp2p/src/traits.rs    | 12 ++++++------
 substrate/core/service/test/src/lib.rs         |  4 ++--
 5 files changed, 27 insertions(+), 29 deletions(-)

diff --git a/substrate/core/cli/src/cli.yml b/substrate/core/cli/src/cli.yml
index 79795026114..fed66ad91d2 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 4ff266e193c..59d653bfed7 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 8a8a7e2004f..93be0e476ca 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 d81702f314a..7e87ec13013 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 2a61f5dd606..883a8c6ac0a 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(),
-- 
GitLab