diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e7ad20a..e5955aa1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -341,7 +341,7 @@ if (NANO_GUI OR RAIBLOCKS_GUI) nano/qt/qt.hpp) target_link_libraries(qt - secure nano_lib node libminiupnpc-static Qt5::Gui Qt5::Widgets) + node secure nano_lib libminiupnpc-static Qt5::Gui Qt5::Widgets) target_compile_definitions(qt PRIVATE diff --git a/nano/core_test/block_store.cpp b/nano/core_test/block_store.cpp index 537ae91d..525969f4 100644 --- a/nano/core_test/block_store.cpp +++ b/nano/core_test/block_store.cpp @@ -821,7 +821,7 @@ TEST (block_store, upgrade_v2_v3) ASSERT_FALSE (store.account_get (transaction, nano::test_genesis_key.pub, info)); info.rep_block = 42; nano::account_info_v5 info_old (info.head, info.rep_block, info.open_block, info.balance, info.modified); - auto status (mdb_put (store.env.tx (transaction), store.accounts_v0, nano::mdb_val (nano::test_genesis_key.pub), info_old.val (), 0)); + auto status (mdb_put (store.env.tx (transaction), store.accounts_v0, nano::mdb_val (nano::test_genesis_key.pub), nano::mdb_val (sizeof (info_old), &info_old), 0)); assert (status == 0); } nano::logger_mt logger; @@ -853,7 +853,7 @@ TEST (block_store, upgrade_v3_v4) auto transaction (store.tx_begin_write ()); store.version_put (transaction, 3); nano::pending_info_v3 info (key1.pub, 100, key2.pub); - auto status (mdb_put (store.env.tx (transaction), store.pending_v0, nano::mdb_val (key3.pub), info.val (), 0)); + auto status (mdb_put (store.env.tx (transaction), store.pending_v0, nano::mdb_val (key3.pub), nano::mdb_val (sizeof (info), &info), 0)); ASSERT_EQ (0, status); } nano::logger_mt logger; @@ -1734,7 +1734,7 @@ void modify_genesis_account_info_to_v5 (nano::mdb_store & store, nano::transacti nano::account_info info; store.account_get (transaction_a, nano::test_genesis_key.pub, info); nano::account_info_v5 info_old (info.head, info.rep_block, info.open_block, info.balance, info.modified); - auto status (mdb_put (store.env.tx (transaction_a), store.accounts_v0, nano::mdb_val (nano::test_genesis_key.pub), info_old.val (), 0)); + auto status (mdb_put (store.env.tx (transaction_a), store.accounts_v0, nano::mdb_val (nano::test_genesis_key.pub), nano::mdb_val (sizeof (info_old), &info_old), 0)); assert (status == 0); } } diff --git a/nano/core_test/ledger.cpp b/nano/core_test/ledger.cpp index c0dfbd61..b42282e2 100644 --- a/nano/core_test/ledger.cpp +++ b/nano/core_test/ledger.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #include diff --git a/nano/core_test/node.cpp b/nano/core_test/node.cpp index 9d4fec40..6f1676dd 100644 --- a/nano/core_test/node.cpp +++ b/nano/core_test/node.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include diff --git a/nano/core_test/versioning.cpp b/nano/core_test/versioning.cpp index f3f1a3b7..299e2e35 100644 --- a/nano/core_test/versioning.cpp +++ b/nano/core_test/versioning.cpp @@ -1,3 +1,5 @@ +#include +#include #include #include @@ -17,7 +19,7 @@ TEST (versioning, account_info_v1) auto transaction (store.tx_begin_write ()); nano::block_sideband sideband (nano::block_type::open, 0, 0, 0, 0, 0); store.block_put (transaction, open.hash (), open, sideband); - auto status (mdb_put (store.env.tx (transaction), store.accounts_v0, nano::mdb_val (account), v1.val (), 0)); + auto status (mdb_put (store.env.tx (transaction), store.accounts_v0, nano::mdb_val (account), nano::mdb_val (sizeof (v1), &v1), 0)); ASSERT_EQ (0, status); store.version_put (transaction, 1); } @@ -53,7 +55,7 @@ TEST (versioning, account_info_v5) auto transaction (store.tx_begin_write ()); nano::block_sideband sideband (nano::block_type::open, 0, 0, 0, 0, 0); store.block_put (transaction, open.hash (), open, sideband); - auto status (mdb_put (store.env.tx (transaction), store.accounts_v0, nano::mdb_val (account), v5.val (), 0)); + auto status (mdb_put (store.env.tx (transaction), store.accounts_v0, nano::mdb_val (account), nano::mdb_val (sizeof (v5), &v5), 0)); ASSERT_EQ (0, status); store.version_put (transaction, 5); } diff --git a/nano/lib/CMakeLists.txt b/nano/lib/CMakeLists.txt index 6337a9b0..0a7dfae1 100644 --- a/nano/lib/CMakeLists.txt +++ b/nano/lib/CMakeLists.txt @@ -35,6 +35,8 @@ add_library (nano_lib rpcconfig.cpp numbers.hpp numbers.cpp + stats.hpp + stats.cpp timer.hpp utility.hpp utility.cpp diff --git a/nano/node/stats.cpp b/nano/lib/stats.cpp similarity index 99% rename from nano/node/stats.cpp rename to nano/lib/stats.cpp index e395c81c..1e60fc6b 100644 --- a/nano/node/stats.cpp +++ b/nano/lib/stats.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/nano/node/stats.hpp b/nano/lib/stats.hpp similarity index 100% rename from nano/node/stats.hpp rename to nano/lib/stats.hpp diff --git a/nano/lib/utility.hpp b/nano/lib/utility.hpp index 19da371a..770929fd 100644 --- a/nano/lib/utility.hpp +++ b/nano/lib/utility.hpp @@ -141,6 +141,14 @@ public: boost::asio::executor_work_guard io_guard; }; +/** + * Returns seconds passed since unix epoch (posix time) + */ +inline uint64_t seconds_since_epoch () +{ + return std::chrono::duration_cast (std::chrono::system_clock::now ().time_since_epoch ()).count (); +} + template class observer_set final { diff --git a/nano/nano_node/daemon.cpp b/nano/nano_node/daemon.cpp index b48444c1..6665529a 100644 --- a/nano/nano_node/daemon.cpp +++ b/nano/nano_node/daemon.cpp @@ -5,8 +5,8 @@ #include #include #include -#include #include +#include #include diff --git a/nano/nano_rpc/entry.cpp b/nano/nano_rpc/entry.cpp index d9f69e94..e58e45e5 100644 --- a/nano/nano_rpc/entry.cpp +++ b/nano/nano_rpc/entry.cpp @@ -4,9 +4,9 @@ #include #include #include -#include #include #include +#include #include #include diff --git a/nano/nano_wallet/entry.cpp b/nano/nano_wallet/entry.cpp index ccc6fd67..98b86b4c 100644 --- a/nano/nano_wallet/entry.cpp +++ b/nano/nano_wallet/entry.cpp @@ -8,9 +8,9 @@ #include #include #include -#include #include #include +#include #include #include diff --git a/nano/nano_wallet/entry_com.cpp b/nano/nano_wallet/entry_com.cpp index b7ec7b8e..d62226d1 100644 --- a/nano/nano_wallet/entry_com.cpp +++ b/nano/nano_wallet/entry_com.cpp @@ -1,8 +1,8 @@ #include #include #include -#include #include +#include #include #include diff --git a/nano/node/CMakeLists.txt b/nano/node/CMakeLists.txt index 14a5e299..bcf3dc23 100644 --- a/nano/node/CMakeLists.txt +++ b/nano/node/CMakeLists.txt @@ -76,8 +76,6 @@ add_library (node signatures.cpp socket.hpp socket.cpp - stats.hpp - stats.cpp voting.hpp voting.cpp wallet.hpp @@ -86,7 +84,6 @@ add_library (node websocket.cpp websocketconfig.hpp websocketconfig.cpp - working.hpp xorshift.hpp) target_link_libraries (node diff --git a/nano/node/common.hpp b/nano/node/common.hpp index 1e1c1dc7..f7aa6c68 100644 --- a/nano/node/common.hpp +++ b/nano/node/common.hpp @@ -410,12 +410,4 @@ public: virtual void node_id_handshake (nano::node_id_handshake const &) = 0; virtual ~message_visitor (); }; - -/** - * Returns seconds passed since unix epoch (posix time) - */ -inline uint64_t seconds_since_epoch () -{ - return std::chrono::duration_cast (std::chrono::system_clock::now ().time_since_epoch ()).count (); -} } diff --git a/nano/node/confirmation_height_processor.cpp b/nano/node/confirmation_height_processor.cpp index 251b6eaf..0cd642ba 100644 --- a/nano/node/confirmation_height_processor.cpp +++ b/nano/node/confirmation_height_processor.cpp @@ -1,9 +1,9 @@ #include #include +#include #include #include #include -#include #include #include diff --git a/nano/node/lmdb.cpp b/nano/node/lmdb.cpp index 554d6861..40cac55f 100644 --- a/nano/node/lmdb.cpp +++ b/nano/node/lmdb.cpp @@ -1086,7 +1086,7 @@ void nano::mdb_store::upgrade_v1_to_v2 (nano::transaction const & transaction_a) block = block_get (transaction_a, block->previous ()); } v2.open_block = block->hash (); - auto status (mdb_put (env.tx (transaction_a), accounts_v0, nano::mdb_val (account), v2.val (), 0)); + auto status (mdb_put (env.tx (transaction_a), accounts_v0, nano::mdb_val (account), nano::mdb_val (sizeof (v2), &v2), 0)); release_assert (status == 0); account = account.number () + 1; } @@ -1110,7 +1110,7 @@ void nano::mdb_store::upgrade_v2_to_v3 (nano::transaction const & transaction_a) assert (!visitor.result.is_zero ()); info.rep_block = visitor.result; auto impl (boost::polymorphic_downcast *> (i.get ())); - mdb_cursor_put (impl->cursor, nano::mdb_val (account_l), info.val (), MDB_CURRENT); + mdb_cursor_put (impl->cursor, nano::mdb_val (account_l), nano::mdb_val (sizeof (info), &info), MDB_CURRENT); representation_add (transaction_a, visitor.result, info.balance.number ()); } } diff --git a/nano/node/node.hpp b/nano/node/node.hpp index 7a5c4dec..a9186e9c 100644 --- a/nano/node/node.hpp +++ b/nano/node/node.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -13,7 +14,6 @@ #include #include #include -#include #include #include #include diff --git a/nano/node/nodeconfig.hpp b/nano/node/nodeconfig.hpp index 0155f24d..ad42b96a 100644 --- a/nano/node/nodeconfig.hpp +++ b/nano/node/nodeconfig.hpp @@ -4,10 +4,10 @@ #include #include #include +#include #include #include #include -#include #include #include diff --git a/nano/node/transport/tcp.cpp b/nano/node/transport/tcp.cpp index f9ed796f..2ca5940b 100644 --- a/nano/node/transport/tcp.cpp +++ b/nano/node/transport/tcp.cpp @@ -1,5 +1,5 @@ +#include #include -#include #include nano::transport::channel_tcp::channel_tcp (nano::node & node_a, std::shared_ptr socket_a) : diff --git a/nano/node/transport/transport.hpp b/nano/node/transport/transport.hpp index 321c7055..32fb395b 100644 --- a/nano/node/transport/transport.hpp +++ b/nano/node/transport/transport.hpp @@ -1,8 +1,8 @@ #pragma once +#include #include #include -#include #include diff --git a/nano/node/transport/udp.cpp b/nano/node/transport/udp.cpp index 757358c8..7e2fd10e 100644 --- a/nano/node/transport/udp.cpp +++ b/nano/node/transport/udp.cpp @@ -1,6 +1,6 @@ #include +#include #include -#include #include nano::transport::channel_udp::channel_udp (nano::transport::udp_channels & channels_a, nano::endpoint const & endpoint_a, unsigned network_version_a) : diff --git a/nano/node/wallet.cpp b/nano/node/wallet.cpp index 01c0312d..efaa99c8 100644 --- a/nano/node/wallet.cpp +++ b/nano/node/wallet.cpp @@ -440,7 +440,7 @@ nano::wallet_value nano::wallet_store::entry_get_raw (nano::transaction const & void nano::wallet_store::entry_put_raw (nano::transaction const & transaction_a, nano::public_key const & pub_a, nano::wallet_value const & entry_a) { - auto status (mdb_put (tx (transaction_a), handle, nano::mdb_val (pub_a), entry_a.val (), 0)); + auto status (mdb_put (tx (transaction_a), handle, nano::mdb_val (pub_a), nano::mdb_val (sizeof (entry_a), const_cast (&entry_a)), 0)); assert (status == 0); } diff --git a/nano/secure/CMakeLists.txt b/nano/secure/CMakeLists.txt index ba2a777f..a612d4a6 100644 --- a/nano/secure/CMakeLists.txt +++ b/nano/secure/CMakeLists.txt @@ -33,16 +33,17 @@ add_library (secure ${PLATFORM_SECURE_SOURCE} ${CMAKE_BINARY_DIR}/bootstrap_weights_live.cpp ${CMAKE_BINARY_DIR}/bootstrap_weights_beta.cpp - common.cpp common.hpp - blockstore.cpp + common.cpp blockstore.hpp - ledger.cpp + blockstore.cpp ledger.hpp - utility.cpp + ledger.cpp utility.hpp + utility.cpp versioning.hpp - versioning.cpp) + versioning.cpp + working.hpp) target_link_libraries(secure nano_lib diff --git a/nano/secure/blockstore.cpp b/nano/secure/blockstore.cpp index 5a4a91e3..54ac9f75 100644 --- a/nano/secure/blockstore.cpp +++ b/nano/secure/blockstore.cpp @@ -1,5 +1,3 @@ -#include -#include #include #include diff --git a/nano/secure/common.cpp b/nano/secure/common.cpp index 324056b2..92e2a3b8 100644 --- a/nano/secure/common.cpp +++ b/nano/secure/common.cpp @@ -3,10 +3,8 @@ #include #include #include -#include #include #include -#include #include #include diff --git a/nano/secure/ledger.cpp b/nano/secure/ledger.cpp index 25ff9c27..ab0294f4 100644 --- a/nano/secure/ledger.cpp +++ b/nano/secure/ledger.cpp @@ -1,6 +1,6 @@ +#include +#include #include -#include -#include #include #include diff --git a/nano/secure/plat/osx/working.mm b/nano/secure/plat/osx/working.mm index 77cdb007..48f8c50a 100644 --- a/nano/secure/plat/osx/working.mm +++ b/nano/secure/plat/osx/working.mm @@ -1,4 +1,4 @@ -#include +#include #include diff --git a/nano/secure/plat/posix/working.cpp b/nano/secure/plat/posix/working.cpp index d19d07cd..9b56aca5 100644 --- a/nano/secure/plat/posix/working.cpp +++ b/nano/secure/plat/posix/working.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/nano/secure/plat/windows/working.cpp b/nano/secure/plat/windows/working.cpp index 860e27bd..07e005e2 100644 --- a/nano/secure/plat/windows/working.cpp +++ b/nano/secure/plat/windows/working.cpp @@ -1,4 +1,4 @@ -#include +#include #include diff --git a/nano/secure/utility.cpp b/nano/secure/utility.cpp index 4e2a57df..18de99e9 100644 --- a/nano/secure/utility.cpp +++ b/nano/secure/utility.cpp @@ -1,8 +1,7 @@ #include #include -#include -#include #include +#include static std::vector all_unique_paths; diff --git a/nano/secure/versioning.cpp b/nano/secure/versioning.cpp index 5c2a3059..dca7dde9 100644 --- a/nano/secure/versioning.cpp +++ b/nano/secure/versioning.cpp @@ -1,5 +1,7 @@ #include +#include + nano::account_info_v1::account_info_v1 (MDB_val const & val_a) { assert (val_a.mv_size == sizeof (*this)); @@ -15,11 +17,6 @@ modified (modified_a) { } -nano::mdb_val nano::account_info_v1::val () const -{ - return nano::mdb_val (sizeof (*this), const_cast (this)); -} - nano::pending_info_v3::pending_info_v3 (MDB_val const & val_a) { assert (val_a.mv_size == sizeof (*this)); @@ -34,11 +31,6 @@ destination (destination_a) { } -nano::mdb_val nano::pending_info_v3::val () const -{ - return nano::mdb_val (sizeof (*this), const_cast (this)); -} - nano::account_info_v5::account_info_v5 (MDB_val const & val_a) { assert (val_a.mv_size == sizeof (*this)); @@ -55,11 +47,6 @@ modified (modified_a) { } -nano::mdb_val nano::account_info_v5::val () const -{ - return nano::mdb_val (sizeof (*this), const_cast (this)); -} - nano::account_info_v13::account_info_v13 (nano::block_hash const & head_a, nano::block_hash const & rep_block_a, nano::block_hash const & open_block_a, nano::amount const & balance_a, uint64_t modified_a, uint64_t block_count_a, nano::epoch epoch_a) : head (head_a), rep_block (rep_block_a), diff --git a/nano/secure/versioning.hpp b/nano/secure/versioning.hpp index 782115b7..6616b279 100644 --- a/nano/secure/versioning.hpp +++ b/nano/secure/versioning.hpp @@ -1,9 +1,11 @@ #pragma once #include -#include +#include #include +struct MDB_val; + namespace nano { class account_info_v1 final @@ -12,7 +14,6 @@ public: account_info_v1 () = default; explicit account_info_v1 (MDB_val const &); account_info_v1 (nano::block_hash const &, nano::block_hash const &, nano::amount const &, uint64_t); - nano::mdb_val val () const; nano::block_hash head{ 0 }; nano::block_hash rep_block{ 0 }; nano::amount balance{ 0 }; @@ -24,7 +25,6 @@ public: pending_info_v3 () = default; explicit pending_info_v3 (MDB_val const &); pending_info_v3 (nano::account const &, nano::amount const &, nano::account const &); - nano::mdb_val val () const; nano::account source{ 0 }; nano::amount amount{ 0 }; nano::account destination{ 0 }; @@ -35,7 +35,6 @@ public: account_info_v5 () = default; explicit account_info_v5 (MDB_val const &); account_info_v5 (nano::block_hash const &, nano::block_hash const &, nano::block_hash const &, nano::amount const &, uint64_t); - nano::mdb_val val () const; nano::block_hash head{ 0 }; nano::block_hash rep_block{ 0 }; nano::block_hash open_block{ 0 }; diff --git a/nano/node/working.hpp b/nano/secure/working.hpp similarity index 100% rename from nano/node/working.hpp rename to nano/secure/working.hpp