Config to enable upnp port mapping
This commit is contained in:
		
					parent
					
						
							
								b123e90f05
							
						
					
				
			
			
				commit
				
					
						039903c82d
					
				
			
		
					 4 changed files with 12 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -198,6 +198,7 @@ TEST (toml, daemon_config_deserialize_defaults)
 | 
			
		|||
	ASSERT_EQ (conf.node.max_unchecked_blocks, defaults.node.max_unchecked_blocks);
 | 
			
		||||
	ASSERT_EQ (conf.node.backlog_scan_batch_size, defaults.node.backlog_scan_batch_size);
 | 
			
		||||
	ASSERT_EQ (conf.node.backlog_scan_frequency, defaults.node.backlog_scan_frequency);
 | 
			
		||||
	ASSERT_EQ (conf.node.enable_upnp, defaults.node.enable_upnp);
 | 
			
		||||
 | 
			
		||||
	ASSERT_EQ (conf.node.websocket_config.enabled, defaults.node.websocket_config.enabled);
 | 
			
		||||
	ASSERT_EQ (conf.node.websocket_config.address, defaults.node.websocket_config.address);
 | 
			
		||||
| 
						 | 
				
			
			@ -449,6 +450,7 @@ TEST (toml, daemon_config_deserialize_no_defaults)
 | 
			
		|||
	frontiers_confirmation = "always"
 | 
			
		||||
	backlog_scan_batch_size = 999
 | 
			
		||||
	backlog_scan_frequency = 999
 | 
			
		||||
	enable_upnp = false
 | 
			
		||||
 | 
			
		||||
	[node.block_processor]
 | 
			
		||||
	max_peer_queue = 999
 | 
			
		||||
| 
						 | 
				
			
			@ -672,6 +674,7 @@ TEST (toml, daemon_config_deserialize_no_defaults)
 | 
			
		|||
	ASSERT_NE (conf.node.request_aggregator_threads, defaults.node.request_aggregator_threads);
 | 
			
		||||
	ASSERT_NE (conf.node.backlog_scan_batch_size, defaults.node.backlog_scan_batch_size);
 | 
			
		||||
	ASSERT_NE (conf.node.backlog_scan_frequency, defaults.node.backlog_scan_frequency);
 | 
			
		||||
	ASSERT_NE (conf.node.enable_upnp, defaults.node.enable_upnp);
 | 
			
		||||
 | 
			
		||||
	ASSERT_NE (conf.node.websocket_config.enabled, defaults.node.websocket_config.enabled);
 | 
			
		||||
	ASSERT_NE (conf.node.websocket_config.address, defaults.node.websocket_config.address);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -145,6 +145,7 @@ nano::error nano::node_config::serialize_toml (nano::tomlconfig & toml) const
 | 
			
		|||
	toml.put ("rep_crawler_weight_minimum", rep_crawler_weight_minimum.to_string_dec (), "Rep crawler minimum weight, if this is less than minimum principal weight then this is taken as the minimum weight a rep must have to be tracked. If you want to track all reps set this to 0. If you do not want this to influence anything then set it to max value. This is only useful for debugging or for people who really know what they are doing.\ntype:string,amount,raw");
 | 
			
		||||
	toml.put ("backlog_scan_batch_size", backlog_scan_batch_size, "Number of accounts per second to process when doing backlog population scan. Increasing this value will help unconfirmed frontiers get into election prioritization queue faster, however it will also increase resource usage. \ntype:uint");
 | 
			
		||||
	toml.put ("backlog_scan_frequency", backlog_scan_frequency, "Backlog scan divides the scan into smaller batches, number of which is controlled by this value. Higher frequency helps to utilize resources more uniformly, however it also introduces more overhead. The resulting number of accounts per single batch is `backlog_scan_batch_size / backlog_scan_frequency` \ntype:uint");
 | 
			
		||||
	toml.put ("enable_upnp", enable_upnp, "Enable or disable automatic UPnP port forwarding. This feature only works if the node is directly connected to a router (not inside a docker container, etc.).\ntype:bool");
 | 
			
		||||
 | 
			
		||||
	auto work_peers_l (toml.create_array ("work_peers", "A list of \"address:port\" entries to identify work peers."));
 | 
			
		||||
	for (auto i (work_peers.begin ()), n (work_peers.end ()); i != n; ++i)
 | 
			
		||||
| 
						 | 
				
			
			@ -555,6 +556,8 @@ nano::error nano::node_config::deserialize_toml (nano::tomlconfig & toml)
 | 
			
		|||
		toml.get<unsigned> ("backlog_scan_batch_size", backlog_scan_batch_size);
 | 
			
		||||
		toml.get<unsigned> ("backlog_scan_frequency", backlog_scan_frequency);
 | 
			
		||||
 | 
			
		||||
		toml.get<bool> ("enable_upnp", enable_upnp);
 | 
			
		||||
 | 
			
		||||
		if (toml.has_key ("experimental"))
 | 
			
		||||
		{
 | 
			
		||||
			auto experimental_config_l (toml.get_required_child ("experimental"));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -147,6 +147,7 @@ public:
 | 
			
		|||
	unsigned backlog_scan_batch_size{ 10 * 1000 };
 | 
			
		||||
	/** Number of times per second to run backlog population batches. Number of accounts per single batch is `backlog_scan_batch_size / backlog_scan_frequency` */
 | 
			
		||||
	unsigned backlog_scan_frequency{ 10 };
 | 
			
		||||
	bool enable_upnp{ true };
 | 
			
		||||
	nano::vote_cache_config vote_cache;
 | 
			
		||||
	nano::rep_crawler_config rep_crawler;
 | 
			
		||||
	nano::block_processor_config block_processor;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,6 +36,11 @@ void nano::port_mapping::start ()
 | 
			
		|||
{
 | 
			
		||||
	debug_assert (!thread.joinable ());
 | 
			
		||||
 | 
			
		||||
	if (!node.config.enable_upnp)
 | 
			
		||||
	{
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Long discovery time and fast setup/teardown make this impractical for testing
 | 
			
		||||
	// TODO: Find a way to test this
 | 
			
		||||
	if (node.network_params.network.is_dev_network ())
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue