Changing nano::node to hold nano::network_params by reference rather than initializing it statically.

This commit is contained in:
clemahieu 2021-07-28 20:19:59 +01:00
commit 1ecefdd5d0
No known key found for this signature in database
GPG key ID: 43708520C8DFB938
6 changed files with 13 additions and 9 deletions

View file

@ -89,6 +89,7 @@ nano::node::node (boost::asio::io_context & io_ctx_a, boost::filesystem::path co
io_ctx (io_ctx_a), io_ctx (io_ctx_a),
node_initialized_latch (1), node_initialized_latch (1),
config (config_a), config (config_a),
network_params{ config.network_params },
stats (config.stat_config), stats (config.stat_config),
workers (std::max (3u, config.io_threads / 4), nano::thread_role::name::worker), workers (std::max (3u, config.io_threads / 4), nano::thread_role::name::worker),
flags (flags_a), flags (flags_a),

View file

@ -154,8 +154,8 @@ public:
nano::write_database_queue write_database_queue; nano::write_database_queue write_database_queue;
boost::asio::io_context & io_ctx; boost::asio::io_context & io_ctx;
boost::latch node_initialized_latch; boost::latch node_initialized_latch;
nano::network_params network_params;
nano::node_config config; nano::node_config config;
nano::network_params & network_params;
nano::stat stats; nano::stat stats;
nano::thread_pool workers; nano::thread_pool workers;
std::shared_ptr<nano::websocket::listener> websocket_server; std::shared_ptr<nano::websocket::listener> websocket_server;

View file

@ -21,14 +21,15 @@ const std::string default_test_peer_network = nano::get_env_or_default ("NANO_TE
} }
nano::node_config::node_config () : nano::node_config::node_config () :
node_config (0, nano::logging ()) node_config (0, nano::logging (), nano::dev::network_params)
{ {
} }
nano::node_config::node_config (uint16_t peering_port_a, nano::logging const & logging_a) : nano::node_config::node_config (uint16_t peering_port_a, nano::logging const & logging_a, nano::network_params network_params) :
peering_port (peering_port_a), network_params{ network_params },
logging (logging_a), peering_port{ peering_port_a },
external_address (boost::asio::ip::address_v6{}.to_string ()) logging{ logging_a },
external_address{ boost::asio::ip::address_v6{}.to_string () }
{ {
// The default constructor passes 0 to indicate we should use the default port, // The default constructor passes 0 to indicate we should use the default port,
// which is determined at node startup based on active network. // which is determined at node startup based on active network.

View file

@ -35,7 +35,7 @@ class node_config
{ {
public: public:
node_config (); node_config ();
node_config (uint16_t, nano::logging const &); node_config (uint16_t, nano::logging const &, nano::network_params network_params = nano::dev::network_params);
nano::error serialize_json (nano::jsonconfig &) const; nano::error serialize_json (nano::jsonconfig &) const;
nano::error deserialize_json (bool &, nano::jsonconfig &); nano::error deserialize_json (bool &, nano::jsonconfig &);
nano::error serialize_toml (nano::tomlconfig &) const; nano::error serialize_toml (nano::tomlconfig &) const;

View file

@ -81,7 +81,8 @@ std::string const test_canary_public_key_data = nano::get_env_or_default ("NANO_
} }
nano::keypair nano::dev::genesis_key{ dev_private_key_data }; nano::keypair nano::dev::genesis_key{ dev_private_key_data };
nano::ledger_constants nano::dev::constants{ nano::networks::nano_dev_network }; nano::network_params nano::dev::network_params{ nano::networks::nano_dev_network };
nano::ledger_constants & nano::dev::constants{ network_params.ledger };
std::shared_ptr<nano::block> & nano::dev::genesis = nano::dev::constants.genesis; std::shared_ptr<nano::block> & nano::dev::genesis = nano::dev::constants.genesis;
nano::network_params::network_params () : nano::network_params::network_params () :

View file

@ -395,7 +395,8 @@ public:
namespace dev namespace dev
{ {
extern nano::keypair genesis_key; extern nano::keypair genesis_key;
extern nano::ledger_constants constants; extern nano::network_params network_params;
extern nano::ledger_constants & constants;
extern std::shared_ptr<nano::block> & genesis; extern std::shared_ptr<nano::block> & genesis;
} }