From a56a8d1eee4625f08dfa3b2fe867a7d676889298 Mon Sep 17 00:00:00 2001 From: clemahieu Date: Tue, 10 Aug 2021 15:49:28 +0100 Subject: [PATCH] Removing empty constructor from network_constants. --- nano/core_test/distributed_work.cpp | 4 ++-- nano/core_test/fakes/work_peer.hpp | 11 ++++------- nano/lib/config.hpp | 5 ----- nano/load_test/entry.cpp | 3 +-- nano/nano_node/entry.cpp | 19 ++++++++----------- nano/nano_rpc/entry.cpp | 4 ++-- nano/node/json_handler.cpp | 2 +- nano/node/node.cpp | 3 +-- nano/node/nodeconfig.cpp | 8 +++----- nano/test_common/system.cpp | 6 ++---- 10 files changed, 24 insertions(+), 41 deletions(-) diff --git a/nano/core_test/distributed_work.cpp b/nano/core_test/distributed_work.cpp index 8c3a6701..00fbbcbb 100644 --- a/nano/core_test/distributed_work.cpp +++ b/nano/core_test/distributed_work.cpp @@ -10,7 +10,7 @@ TEST (distributed_work, stopped) { nano::system system (1); system.nodes[0]->distributed_work.stop (); - ASSERT_TRUE (system.nodes[0]->distributed_work.make (nano::work_version::work_1, nano::block_hash (), {}, nano::network_constants ().publish_thresholds.base, {})); + ASSERT_TRUE (system.nodes[0]->distributed_work.make (nano::work_version::work_1, nano::block_hash (), {}, nano::dev::network_params.network.publish_thresholds.base, {})); } TEST (distributed_work, no_peers) @@ -43,7 +43,7 @@ TEST (distributed_work, no_peers_disabled) nano::node_config node_config (nano::get_available_port (), system.logging); node_config.work_threads = 0; auto & node = *system.add_node (node_config); - ASSERT_TRUE (node.distributed_work.make (nano::work_version::work_1, nano::block_hash (), node.config.work_peers, nano::network_constants ().publish_thresholds.base, {})); + ASSERT_TRUE (node.distributed_work.make (nano::work_version::work_1, nano::block_hash (), node.config.work_peers, nano::dev::network_params.network.publish_thresholds.base, {})); } TEST (distributed_work, no_peers_cancel) diff --git a/nano/core_test/fakes/work_peer.hpp b/nano/core_test/fakes/work_peer.hpp index 82a64e97..5192b8b1 100644 --- a/nano/core_test/fakes/work_peer.hpp +++ b/nano/core_test/fakes/work_peer.hpp @@ -138,20 +138,17 @@ private: void handle_generate (nano::block_hash const & hash_a) { - static nano::network_constants constants; if (type == work_peer_type::good) { auto hash = hash_a; - auto request_difficulty = constants.publish_thresholds.threshold_base (version); - auto this_l (shared_from_this ()); - work_pool.generate (version, hash, request_difficulty, [this_l, hash] (boost::optional work_a) { + auto request_difficulty = work_pool.network_constants.publish_thresholds.threshold_base (version); + work_pool.generate (version, hash, request_difficulty, [this_l = shared_from_this (), hash] (boost::optional work_a) { auto result = work_a.value_or (0); - static nano::network_constants constants; - auto result_difficulty (constants.publish_thresholds.difficulty (this_l->version, hash, result)); + auto result_difficulty (this_l->work_pool.network_constants.publish_thresholds.difficulty (this_l->version, hash, result)); ptree::ptree message_l; message_l.put ("work", nano::to_string_hex (result)); message_l.put ("difficulty", nano::to_string_hex (result_difficulty)); - message_l.put ("multiplier", nano::to_string (nano::difficulty::to_multiplier (result_difficulty, constants.publish_thresholds.threshold_base (this_l->version)))); + message_l.put ("multiplier", nano::to_string (nano::difficulty::to_multiplier (result_difficulty, this_l->work_pool.network_constants.publish_thresholds.threshold_base (this_l->version)))); message_l.put ("hash", hash.to_string ()); std::stringstream ostream; ptree::write_json (ostream, message_l); diff --git a/nano/lib/config.hpp b/nano/lib/config.hpp index d1f4300d..f0b84bb5 100644 --- a/nano/lib/config.hpp +++ b/nano/lib/config.hpp @@ -134,11 +134,6 @@ public: class network_constants { public: - network_constants () : - network_constants (network_constants::active_network) - { - } - network_constants (nano::networks network_a) : current_network (network_a), publish_thresholds (is_live_network () ? nano::work_thresholds::publish_full : is_beta_network () ? nano::work_thresholds::publish_beta : is_test_network () ? nano::work_thresholds::publish_test : nano::work_thresholds::publish_dev) diff --git a/nano/load_test/entry.cpp b/nano/load_test/entry.cpp index 042743f3..cd4803cc 100644 --- a/nano/load_test/entry.cpp +++ b/nano/load_test/entry.cpp @@ -360,8 +360,7 @@ int main (int argc, char * const * argv) data_paths.push_back (std::move (data_path)); } - nano::network_constants network_constants; - auto current_network = network_constants.get_current_network_as_string (); + auto current_network = nano::dev::network_params.network.get_current_network_as_string (); std::vector> nodes; std::vector> rpc_servers; for (auto const & data_path : data_paths) diff --git a/nano/nano_node/entry.cpp b/nano/nano_node/entry.cpp index eb6b9fdc..83954349 100644 --- a/nano/nano_node/entry.cpp +++ b/nano/nano_node/entry.cpp @@ -139,6 +139,7 @@ int main (int argc, char * const * argv) } } + nano::network_params network_params{ nano::network_constants::active_network }; auto data_path_it = vm.find ("data_path"); boost::filesystem::path data_path ((data_path_it != vm.end ()) ? data_path_it->second.as () : nano::working_path ()); auto ec = nano::handle_node_options (vm); @@ -158,7 +159,7 @@ int main (int argc, char * const * argv) } else if (vm.count ("compare_rep_weights")) { - if (!nano::network_constants ().is_dev_network ()) + if (nano::network_constants::active_network != nano::networks::nano_dev_network) { auto node_flags = nano::inactive_node_flag_defaults (); nano::update_flags (node_flags, vm); @@ -339,9 +340,8 @@ int main (int argc, char * const * argv) << "Public: " << rep.pub.to_string () << "\n" << "Account: " << rep.pub.to_account () << "\n"; } - nano::network_constants network_constants; nano::uint128_t balance (std::numeric_limits::max ()); - nano::open_block genesis_block (reinterpret_cast (genesis.pub), genesis.pub, genesis.pub, genesis.prv, genesis.pub, *work.generate (nano::work_version::work_1, genesis.pub, network_constants.publish_thresholds.epoch_1)); + nano::open_block genesis_block (reinterpret_cast (genesis.pub), genesis.pub, genesis.pub, genesis.prv, genesis.pub, *work.generate (nano::work_version::work_1, genesis.pub, network_params.network.publish_thresholds.epoch_1)); std::cout << genesis_block.to_json (); std::cout.flush (); nano::block_hash previous (genesis_block.hash ()); @@ -353,7 +353,7 @@ int main (int argc, char * const * argv) { debug_assert (balance > weekly_distribution); balance = balance < (weekly_distribution * 2) ? 0 : balance - weekly_distribution; - nano::send_block send (previous, landing.pub, balance, genesis.prv, genesis.pub, *work.generate (nano::work_version::work_1, previous, network_constants.publish_thresholds.epoch_1)); + nano::send_block send (previous, landing.pub, balance, genesis.prv, genesis.pub, *work.generate (nano::work_version::work_1, previous, network_params.network.publish_thresholds.epoch_1)); previous = send.hash (); std::cout << send.to_json (); std::cout.flush (); @@ -455,7 +455,6 @@ int main (int argc, char * const * argv) } else if (vm.count ("debug_profile_generate")) { - nano::network_constants network_constants; uint64_t difficulty{ nano::work_thresholds::publish_full.base }; auto multiplier_it = vm.find ("multiplier"); if (multiplier_it != vm.end ()) @@ -491,7 +490,7 @@ int main (int argc, char * const * argv) pow_rate_limiter = std::chrono::nanoseconds (boost::lexical_cast (pow_sleep_interval_it->second.as ())); } - nano::work_pool work{ network_constants, std::numeric_limits::max (), pow_rate_limiter }; + nano::work_pool work{ network_params.network, std::numeric_limits::max (), pow_rate_limiter }; nano::change_block block (0, 0, nano::keypair ().prv, 0, 0); if (!result) { @@ -508,7 +507,6 @@ int main (int argc, char * const * argv) } else if (vm.count ("debug_profile_validate")) { - nano::network_constants network_constants; uint64_t difficulty{ nano::work_thresholds::publish_full.base }; std::cerr << "Starting validation profile" << std::endl; auto start (std::chrono::steady_clock::now ()); @@ -517,7 +515,7 @@ int main (int argc, char * const * argv) uint64_t count{ 10000000U }; // 10M for (uint64_t i (0); i < count; ++i) { - valid = network_constants.publish_thresholds.value (hash, i) > difficulty; + valid = network_params.network.publish_thresholds.value (hash, i) > difficulty; } std::ostringstream oss (valid ? "true" : "false"); // IO forces compiler to not dismiss the variable auto total_time (std::chrono::duration_cast (std::chrono::steady_clock::now () - start).count ()); @@ -526,7 +524,6 @@ int main (int argc, char * const * argv) } else if (vm.count ("debug_opencl")) { - nano::network_constants network_constants; bool error (false); nano::opencl_environment environment (error); if (!error) @@ -610,8 +607,8 @@ int main (int argc, char * const * argv) { nano::logger_mt logger; nano::opencl_config config (platform, device, threads); - auto opencl (nano::opencl_work::create (true, config, logger, network_constants.publish_thresholds)); - nano::work_pool work_pool{ network_constants, 0, std::chrono::nanoseconds (0), opencl ? [&opencl] (nano::work_version const version_a, nano::root const & root_a, uint64_t difficulty_a, std::atomic &) { + auto opencl (nano::opencl_work::create (true, config, logger, network_params.network.publish_thresholds)); + nano::work_pool work_pool{ network_params.network, 0, std::chrono::nanoseconds (0), opencl ? [&opencl] (nano::work_version const version_a, nano::root const & root_a, uint64_t difficulty_a, std::atomic &) { return opencl->generate_work (version_a, root_a, difficulty_a); } : std::function (nano::work_version const, nano::root const &, uint64_t, std::atomic &)> (nullptr) }; diff --git a/nano/nano_rpc/entry.cpp b/nano/nano_rpc/entry.cpp index 87b4429b..c69eb017 100644 --- a/nano/nano_rpc/entry.cpp +++ b/nano/nano_rpc/entry.cpp @@ -39,9 +39,9 @@ void run (boost::filesystem::path const & data_path, std::vector co boost::system::error_code error_chmod; nano::set_secure_perm_directory (data_path, error_chmod); std::unique_ptr runner; - nano::network_constants network; - nano::rpc_config rpc_config{ network }; + nano::network_params network_params{ nano::network_constants::active_network }; + nano::rpc_config rpc_config{ network_params.network }; auto error = nano::read_rpc_config_toml (data_path, rpc_config, config_overrides); if (!error) { diff --git a/nano/node/json_handler.cpp b/nano/node/json_handler.cpp index 7c74c4c3..1bee4224 100644 --- a/nano/node/json_handler.cpp +++ b/nano/node/json_handler.cpp @@ -60,7 +60,7 @@ void nano::json_handler::process_request (bool unsafe_a) boost::property_tree::read_json (istream, request); if (node_rpc_config.request_callback) { - debug_assert (nano::network_constants ().is_dev_network ()); + debug_assert (node.network_params.network.is_dev_network ()); node_rpc_config.request_callback (request); } action = request.get ("action"); diff --git a/nano/node/node.cpp b/nano/node/node.cpp index 5628468f..7bdf6b75 100644 --- a/nano/node/node.cpp +++ b/nano/node/node.cpp @@ -1110,12 +1110,11 @@ int nano::node::price (nano::uint128_t const & balance_a, int amount_a) uint64_t nano::node::default_difficulty (nano::work_version const version_a) const { - nano::network_constants constants; uint64_t result{ std::numeric_limits::max () }; switch (version_a) { case nano::work_version::work_1: - result = constants.publish_thresholds.threshold_base (version_a); + result = network_params.network.publish_thresholds.threshold_base (version_a); break; default: debug_assert (false && "Invalid version specified to default_difficulty"); diff --git a/nano/node/nodeconfig.cpp b/nano/node/nodeconfig.cpp index e5a3fc4b..14caebbc 100644 --- a/nano/node/nodeconfig.cpp +++ b/nano/node/nodeconfig.cpp @@ -351,7 +351,6 @@ nano::error nano::node_config::deserialize_toml (nano::tomlconfig & toml) toml.get ("conf_height_processor_batch_min_time", conf_height_processor_batch_min_time_l); conf_height_processor_batch_min_time = std::chrono::milliseconds (conf_height_processor_batch_min_time_l); - nano::network_constants network; toml.get ("max_work_generate_multiplier", max_work_generate_multiplier); toml.get ("max_queued_requests", max_queued_requests); @@ -392,7 +391,7 @@ nano::error nano::node_config::deserialize_toml (nano::tomlconfig & toml) { toml.get_error ().set ("io_threads must be non-zero"); } - if (active_elections_size <= 250 && !network.is_dev_network ()) + if (active_elections_size <= 250 && !network_params.network.is_dev_network ()) { toml.get_error ().set ("active_elections_size must be greater than 250"); } @@ -416,7 +415,7 @@ nano::error nano::node_config::deserialize_toml (nano::tomlconfig & toml) { toml.get_error ().set ((boost::format ("block_processor_batch_max_time value must be equal or larger than %1%ms") % network_params.node.process_confirmed_interval.count ()).str ()); } - if (max_pruning_age < std::chrono::seconds (5 * 60) && !network.is_dev_network ()) + if (max_pruning_age < std::chrono::seconds (5 * 60) && !network_params.network.is_dev_network ()) { toml.get_error ().set ("max_pruning_age must be greater than or equal to 5 minutes"); } @@ -684,7 +683,6 @@ nano::error nano::node_config::deserialize_json (bool & upgraded_a, nano::jsonco json.get ("conf_height_processor_batch_min_time", conf_height_processor_batch_min_time_l); conf_height_processor_batch_min_time = std::chrono::milliseconds (conf_height_processor_batch_min_time_l); - nano::network_constants network; // Validate ranges if (password_fanout < 16 || password_fanout > 1024 * 1024) { @@ -694,7 +692,7 @@ nano::error nano::node_config::deserialize_json (bool & upgraded_a, nano::jsonco { json.get_error ().set ("io_threads must be non-zero"); } - if (active_elections_size <= 250 && !network.is_dev_network ()) + if (active_elections_size <= 250 && !network_params.network.is_dev_network ()) { json.get_error ().set ("active_elections_size must be greater than 250"); } diff --git a/nano/test_common/system.cpp b/nano/test_common/system.cpp index ecc4623e..24fd99e1 100644 --- a/nano/test_common/system.cpp +++ b/nano/test_common/system.cpp @@ -202,11 +202,10 @@ uint64_t nano::system::work_generate_limited (nano::block_hash const & root_a, u { debug_assert (min_a > 0); uint64_t result = 0; - static nano::network_constants constants; do { result = *work.generate (root_a, min_a); - } while (constants.publish_thresholds.difficulty (nano::work_version::work_1, root_a, result) >= max_a); + } while (work.network_constants.publish_thresholds.difficulty (nano::work_version::work_1, root_a, result) >= max_a); return result; } @@ -220,7 +219,6 @@ std::unique_ptr nano::upgrade_epoch (nano::work_pool & pool_a nano::state_block_builder builder; std::error_code ec; - static nano::network_constants constants; auto epoch = builder .account (dev_genesis_key.pub) .previous (latest) @@ -228,7 +226,7 @@ std::unique_ptr nano::upgrade_epoch (nano::work_pool & pool_a .link (ledger_a.epoch_link (epoch_a)) .representative (dev_genesis_key.pub) .sign (dev_genesis_key.prv, dev_genesis_key.pub) - .work (*pool_a.generate (latest, constants.publish_thresholds.threshold (nano::work_version::work_1, nano::block_details (epoch_a, false, false, true)))) + .work (*pool_a.generate (latest, pool_a.network_constants.publish_thresholds.threshold (nano::work_version::work_1, nano::block_details (epoch_a, false, false, true)))) .build (ec); bool error{ true };