From b3c7124be796eac69d03e5b490378c79da3e506b Mon Sep 17 00:00:00 2001 From: SergiySW Date: Sun, 7 Oct 2018 19:26:10 +0300 Subject: [PATCH] Periodic pending search (#1268) --- rai/node/node.cpp | 11 +++++++++++ rai/node/node.hpp | 2 ++ 2 files changed, 13 insertions(+) diff --git a/rai/node/node.cpp b/rai/node/node.cpp index 1de45d8f..c7e363ff 100644 --- a/rai/node/node.cpp +++ b/rai/node/node.cpp @@ -19,6 +19,7 @@ std::chrono::seconds constexpr rai::node::period; std::chrono::seconds constexpr rai::node::cutoff; std::chrono::seconds constexpr rai::node::syn_cookie_cutoff; std::chrono::minutes constexpr rai::node::backup_interval; +std::chrono::seconds constexpr rai::node::search_pending_interval; int constexpr rai::port_mapping::mapping_timeout; int constexpr rai::port_mapping::check_timeout; unsigned constexpr rai::active_transactions::announce_interval_ms; @@ -2193,6 +2194,7 @@ void rai::node::start () ongoing_rep_crawl (); bootstrap.start (); backup_wallet (); + search_pending (); online_reps.recalculate_stake (); port_mapping.start (); add_initial_peers (); @@ -2370,6 +2372,15 @@ void rai::node::backup_wallet () }); } +void rai::node::search_pending () +{ + wallets.search_pending_all (); + auto this_l (shared ()); + alarm.add (std::chrono::steady_clock::now () + search_pending_interval, [this_l]() { + this_l->search_pending (); + }); +} + int rai::node::price (rai::uint128_t const & balance_a, int amount_a) { assert (balance_a >= amount_a * rai::Gxrb_ratio); diff --git a/rai/node/node.hpp b/rai/node/node.hpp index 530d0785..e6124059 100644 --- a/rai/node/node.hpp +++ b/rai/node/node.hpp @@ -588,6 +588,7 @@ public: void ongoing_bootstrap (); void ongoing_store_flush (); void backup_wallet (); + void search_pending (); int price (rai::uint128_t const &, int); void work_generate_blocking (rai::block &); uint64_t work_generate_blocking (rai::uint256_union const &); @@ -630,6 +631,7 @@ public: static std::chrono::seconds constexpr cutoff = period * 5; static std::chrono::seconds constexpr syn_cookie_cutoff = std::chrono::seconds (5); static std::chrono::minutes constexpr backup_interval = std::chrono::minutes (5); + static std::chrono::seconds constexpr search_pending_interval = (rai::rai_network == rai::rai_networks::rai_test_network) ? std::chrono::seconds (1) : std::chrono::seconds (5 * 60); }; class thread_runner {