From 95838fa7af5d246cdf8b2abdf355d8dfcd72f6b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wo=CC=81jcik?= <3044353+pwojcikdev@users.noreply.github.com> Date: Sun, 12 May 2024 12:29:08 +0200 Subject: [PATCH] Network class config --- nano/node/network.cpp | 24 +++++++++++++++--------- nano/node/network.hpp | 11 +++++++++++ nano/node/nodeconfig.hpp | 2 ++ 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/nano/node/network.cpp b/nano/node/network.cpp index 6fc16a7c..95d376cd 100644 --- a/nano/node/network.cpp +++ b/nano/node/network.cpp @@ -18,6 +18,7 @@ using namespace std::chrono_literals; */ nano::network::network (nano::node & node, uint16_t port) : + config{ node.config.network }, node{ node }, id{ nano::network_constants::active_network }, syn_cookies{ node.network_params.network.max_peers_per_ip, node.logger }, @@ -49,15 +50,20 @@ void nano::network::start () run_keepalive (); }); - reachout_thread = std::thread ([this] () { - nano::thread_role::set (nano::thread_role::name::network_reachout); - run_reachout (); - }); - - reachout_cached_thread = std::thread ([this] () { - nano::thread_role::set (nano::thread_role::name::network_reachout); - run_reachout_cached (); - }); + if (config.peer_reachout.count () > 0) + { + reachout_thread = std::thread ([this] () { + nano::thread_role::set (nano::thread_role::name::network_reachout); + run_reachout (); + }); + } + if (config.cached_peer_reachout.count () > 0) + { + reachout_cached_thread = std::thread ([this] () { + nano::thread_role::set (nano::thread_role::name::network_reachout); + run_reachout_cached (); + }); + } if (!node.flags.disable_tcp_realtime) { diff --git a/nano/node/network.hpp b/nano/node/network.hpp index ea39c00d..6f636266 100644 --- a/nano/node/network.hpp +++ b/nano/node/network.hpp @@ -51,6 +51,16 @@ private: std::size_t max_cookies_per_ip; }; +class network_config final +{ +public: + // TODO: Serialization & deserialization + +public: + std::chrono::milliseconds peer_reachout{ 250ms }; + std::chrono::milliseconds cached_peer_reachout{ 1s }; +}; + class network final { public: @@ -112,6 +122,7 @@ private: void run_reachout_cached (); private: // Dependencies + network_config const & config; nano::node & node; public: diff --git a/nano/node/nodeconfig.hpp b/nano/node/nodeconfig.hpp index ff9f31d8..75d1510a 100644 --- a/nano/node/nodeconfig.hpp +++ b/nano/node/nodeconfig.hpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -148,6 +149,7 @@ public: nano::transport::tcp_config tcp; nano::request_aggregator_config request_aggregator; nano::message_processor_config message_processor; + nano::network_config network; public: std::string serialize_frontiers_confirmation (nano::frontiers_confirmation_mode) const;