From 97cb3458ee97a2c77f239a582d5bb3a587e8cc3d Mon Sep 17 00:00:00 2001 From: clemahieu Date: Sat, 29 Nov 2014 12:47:23 -0600 Subject: [PATCH] Generalizing the active network parameters. --- CMakeLists.txt | 12 +++--------- rai/core/core.cpp | 15 +++++++-------- rai/core/core.hpp | 5 ++--- rai/secure.cpp | 28 ++++++++++++++++------------ rai/secure.hpp | 16 ++++++++++++---- 5 files changed, 40 insertions(+), 36 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ef9f7e53..417d6e32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,16 +83,10 @@ add_executable (qt_client add_executable (qt_system rai/qt_system/entry.cpp) -SET (GENESIS_KEY rai_test_account CACHE STRING "Select whether the genesis account is the test or live account") -set_property (CACHE GENESIS_KEY PROPERTY STRINGS rai_test_account rai_live_account) +SET (ACTIVE_NETWORK rai_active_network CACHE STRING "Selects which network parameters are used") +set_property (CACHE ACTIVE_NETWORK PROPERTY STRINGS rai_test_network rai_beta_network rai_live_network) -SET (KDF_WORK_FACTOR kdf_test_work CACHE STRING "Selects whether full or test kdf work is performed") -set_property (CACHE KDF_WORK_FACTOR PROPERTY STRINGS kdf_test_work kdf_full_work) - -SET (PUBLISH_WORK_FACTOR publish_test_work CACHE STRING "Selects whether full or test publish work is performed") -set_property (CACHE PUBLISH_WORK_FACTOR PROPERTY STRINGS publish_test_work publish_full_work) - -set_target_properties (secure core core_test qt_test cli qt qt_client qt_system landing PROPERTIES COMPILE_FLAGS "-std=c++11 -Werror=switch ${PLATFORM_COMPILE_FLAGS} -DQT_NO_KEYWORDS -DGENESIS_KEY=${GENESIS_KEY} -DKDF_WORK_FACTOR=${KDF_WORK_FACTOR} -DPUBLISH_WORK_FACTOR=${PUBLISH_WORK_FACTOR} -DED25519_CUSTOMHASH -DED25519_CUSTOMRNG") +set_target_properties (secure core core_test qt_test cli qt qt_client qt_system landing PROPERTIES COMPILE_FLAGS "-std=c++11 -Werror=switch ${PLATFORM_COMPILE_FLAGS} -DQT_NO_KEYWORDS -DACTIVE_NETWORK=${ACTIVE_NETWORK} -DED25519_CUSTOMHASH -DED25519_CUSTOMRNG") set_target_properties (qt_client qt_test PROPERTIES LINK_FLAGS "${PLATFORM_GUI_EXE_LINK_FLAGS}") if (WIN32) diff --git a/rai/core/core.cpp b/rai/core/core.cpp index 1b978167..dbc06af1 100644 --- a/rai/core/core.cpp +++ b/rai/core/core.cpp @@ -4080,9 +4080,9 @@ namespace class kdf { public: - size_t static constexpr kdf_full_work = 8 * 1024 * 1024; - size_t static constexpr kdf_test_work = 8 * 1024; - size_t static constexpr entry_count = KDF_WORK_FACTOR; + size_t const static kdf_full_work = 8 * 1024 * 1024; + size_t const static kdf_test_work = 8 * 1024; + size_t const static entry_count = rai::rai_network == rai::rai_networks::rai_test_network ? kdf_test_work : kdf_full_work; kdf (std::string const & password_a, rai::uint256_union const & salt_a) { auto entries (entry_count); @@ -4135,9 +4135,9 @@ bool rai::publish::operator == (rai::publish const & other_a) const namespace { -size_t publish_test_work (1024); -size_t publish_full_work (128 * 1024); -size_t publish_work (PUBLISH_WORK_FACTOR); +size_t const publish_test_work (1024); +size_t const publish_full_work (128 * 1024); +size_t const publish_work = rai::rai_network == rai::rai_networks::rai_test_network ? publish_test_work : publish_full_work; } rai::work::work () : @@ -4232,9 +4232,8 @@ void rai::fan::value_set (rai::uint256_union const & value_a) } std::array constexpr rai::message::magic_number; -size_t constexpr rai::message::test_network_position; size_t constexpr rai::message::ipv4_only_position; -size_t constexpr rai::message::bootstrap_receiver_position; +size_t constexpr rai::message::bootstrap_server_position; std::bitset <16> constexpr rai::message::block_type_mask; rai::message::message (rai::message_type type_a) : diff --git a/rai/core/core.hpp b/rai/core/core.hpp index 623ad730..9a638544 100644 --- a/rai/core/core.hpp +++ b/rai/core/core.hpp @@ -150,15 +150,14 @@ namespace rai { void block_type_set (rai::block_type); bool ipv4_only (); void ipv4_only_set (bool); - static std::array constexpr magic_number = {{'R', 'A'}}; + static std::array constexpr magic_number = {{'R', rai::rai_network == rai::rai_networks::rai_test_network ? 'A' : rai::rai_network == rai::rai_networks::rai_beta_network ? 'B' : 'C'}}; uint8_t version_max; uint8_t version_using; uint8_t version_min; rai::message_type type; std::bitset <16> extensions; - static size_t constexpr test_network_position = 0; static size_t constexpr ipv4_only_position = 1; - static size_t constexpr bootstrap_receiver_position = 2; + static size_t constexpr bootstrap_server_position = 2; static std::bitset <16> constexpr block_type_mask = std::bitset <16> (0x0f00); }; class keepalive : public message diff --git a/rai/secure.cpp b/rai/secure.cpp index 1ba0ee95..3060c74c 100644 --- a/rai/secure.cpp +++ b/rai/secure.cpp @@ -5,8 +5,22 @@ #include #include -CryptoPP::AutoSeededRandomPool rai::random_pool; +namespace +{ + std::string rai_test_private_key = "34F0A37AAD20F4A260F0A5B3CB3D7FB50673212263E58A380BC10474BB039CE4"; + std::string rai_test_public_key = "B241CC17B3684D22F304C7AF063D1B833124F7F1A4DAD07E6DA60D7D8F334911"; // U63Kt3B7yp2iQB4GsVWriGv34kk2qwhT7acKvn8yWZGdNVesJ8 + std::string rai_beta_public_key = "0"; + std::string rai_live_public_key = "0"; +} +rai::keypair const rai::test_genesis_key (rai_test_private_key); +rai::account const rai::rai_test_account (rai_test_public_key); +rai::account const rai::rai_beta_account (rai_beta_public_key); +rai::account const rai::rai_live_account (rai_live_public_key); + +rai::account const rai::genesis_account = rai_network == rai_networks::rai_test_network ? rai_test_account : rai_network == rai_networks::rai_beta_network ? rai_beta_account : rai_live_account; + +CryptoPP::AutoSeededRandomPool rai::random_pool; std::string rai::to_string_hex (uint64_t value_a) { @@ -2518,14 +2532,4 @@ rai::uint256_union rai::vote::hash () const rai::uint256_t rai::votes::flip_threshold () { return ledger.supply () / 2; -} - -namespace { - std::string rai_test_private_key = "34F0A37AAD20F4A260F0A5B3CB3D7FB50673212263E58A380BC10474BB039CE4"; - std::string rai_test_public_key = "B241CC17B3684D22F304C7AF063D1B833124F7F1A4DAD07E6DA60D7D8F334911"; // U63Kt3B7yp2iQB4GsVWriGv34kk2qwhT7acKvn8yWZGdNVesJ8 - std::string rai_live_public_key = "0"; -} -rai::keypair rai::test_genesis_key (rai_test_private_key); -rai::account rai::rai_test_account (rai_test_public_key); -rai::account rai::rai_live_account (rai_live_public_key); -rai::account rai::genesis_account (GENESIS_KEY); \ No newline at end of file +} \ No newline at end of file diff --git a/rai/secure.hpp b/rai/secure.hpp index dd2a054f..94b90c5f 100644 --- a/rai/secure.hpp +++ b/rai/secure.hpp @@ -497,10 +497,11 @@ namespace rai uint64_t sequence; std::unordered_map >> rep_votes; }; - extern rai::keypair test_genesis_key; - extern rai::account rai_test_account; - extern rai::account rai_live_account; - extern rai::account genesis_account; + extern rai::keypair const test_genesis_key; + extern rai::account const rai_test_account; + extern rai::account const rai_beta_account; + extern rai::account const rai_live_account; + extern rai::account const genesis_account; class genesis { public: @@ -511,4 +512,11 @@ namespace rai rai::send_block send2; rai::open_block open; }; + enum class rai_networks + { + rai_test_network, + rai_beta_network, + rai_live_network + }; + rai_networks const rai_network = rai_networks::ACTIVE_NETWORK; } \ No newline at end of file