reserved_only CLI flag

This commit is contained in:
Robert Habermeier 2016-06-20 12:17:06 +02:00
parent ab4561b5bc
commit 06a3557e3e
5 changed files with 10 additions and 8 deletions

View File

@ -70,6 +70,7 @@ Networking Options:
--reserved-peers FILE Provide a file containing enodes, one per line. --reserved-peers FILE Provide a file containing enodes, one per line.
These nodes will always have a reserved slot on top These nodes will always have a reserved slot on top
of the normal maximum peers. of the normal maximum peers.
--reserved-only Connect only to reserved nodes.
API and Console Options: API and Console Options:
--jsonrpc-off Disable the JSON-RPC API server. --jsonrpc-off Disable the JSON-RPC API server.
@ -240,6 +241,7 @@ pub struct Args {
pub flag_nat: String, pub flag_nat: String,
pub flag_node_key: Option<String>, pub flag_node_key: Option<String>,
pub flag_reserved_peers: Option<String>, pub flag_reserved_peers: Option<String>,
pub flag_reserved_only: bool,
pub flag_cache_pref_size: usize, pub flag_cache_pref_size: usize,
pub flag_cache_max_size: usize, pub flag_cache_max_size: usize,
pub flag_queue_max_size: usize, pub flag_queue_max_size: usize,

View File

@ -200,6 +200,7 @@ impl Configuration {
net_path.push("network"); net_path.push("network");
ret.config_path = Some(net_path.to_str().unwrap().to_owned()); ret.config_path = Some(net_path.to_str().unwrap().to_owned());
ret.reserved_nodes = self.init_reserved_nodes(); ret.reserved_nodes = self.init_reserved_nodes();
ret.reserved_only = self.args.flag_reserved_only;
ret ret
} }

View File

@ -308,7 +308,7 @@ fn execute_export(conf: Configuration) {
udp_port: None, udp_port: None,
nat_enabled: false, nat_enabled: false,
discovery_enabled: false, discovery_enabled: false,
pin: true, reserved_only: true,
boot_nodes: Vec::new(), boot_nodes: Vec::new(),
use_secret: None, use_secret: None,
ideal_peers: 0, ideal_peers: 0,
@ -380,7 +380,7 @@ fn execute_import(conf: Configuration) {
udp_port: None, udp_port: None,
nat_enabled: false, nat_enabled: false,
discovery_enabled: false, discovery_enabled: false,
pin: true, reserved_only: true,
boot_nodes: Vec::new(), boot_nodes: Vec::new(),
use_secret: None, use_secret: None,
ideal_peers: 0, ideal_peers: 0,

View File

@ -74,5 +74,4 @@ impl<M> EthcoreSet for EthcoreSetClient<M> where M: MinerService + 'static {
to_value(&true) to_value(&true)
}) })
} }
} }

View File

@ -65,8 +65,8 @@ pub struct NetworkConfiguration {
pub nat_enabled: bool, pub nat_enabled: bool,
/// Enable discovery /// Enable discovery
pub discovery_enabled: bool, pub discovery_enabled: bool,
/// Pin to boot nodes only /// Pin to reserved nodes only
pub pin: bool, pub reserved_only: bool,
/// List of initial node addresses /// List of initial node addresses
pub boot_nodes: Vec<String>, pub boot_nodes: Vec<String>,
/// Use provided node key instead of default /// Use provided node key instead of default
@ -93,7 +93,7 @@ impl NetworkConfiguration {
udp_port: None, udp_port: None,
nat_enabled: true, nat_enabled: true,
discovery_enabled: true, discovery_enabled: true,
pin: false, reserved_only: false,
boot_nodes: Vec::new(), boot_nodes: Vec::new(),
use_secret: None, use_secret: None,
ideal_peers: 25, ideal_peers: 25,
@ -483,7 +483,7 @@ impl<Message> Host<Message> where Message: Send + Sync + Clone {
// Initialize discovery. // Initialize discovery.
let discovery = { let discovery = {
let info = self.info.read().unwrap(); let info = self.info.read().unwrap();
if info.config.discovery_enabled && !info.config.pin { if info.config.discovery_enabled && !info.config.reserved_only {
Some(Discovery::new(&info.keys, public_endpoint.address.clone(), public_endpoint, DISCOVERY)) Some(Discovery::new(&info.keys, public_endpoint.address.clone(), public_endpoint, DISCOVERY))
} else { None } } else { None }
}; };
@ -544,7 +544,7 @@ impl<Message> Host<Message> where Message: Send + Sync + Clone {
return; return;
} }
let ideal_peers = { self.info.read().unwrap().config.ideal_peers }; let ideal_peers = { self.info.read().unwrap().config.ideal_peers };
let pin = { self.info.read().unwrap().config.pin }; let pin = { self.info.read().unwrap().config.reserved_only };
let session_count = self.session_count(); let session_count = self.session_count();
if session_count >= ideal_peers as usize + self.pinned_nodes.len() { if session_count >= ideal_peers as usize + self.pinned_nodes.len() {
// check if all pinned nodes are connected. // check if all pinned nodes are connected.