diff --git a/nano/lib/logging_enums.hpp b/nano/lib/logging_enums.hpp index 64f520bc6..59d4cea5a 100644 --- a/nano/lib/logging_enums.hpp +++ b/nano/lib/logging_enums.hpp @@ -86,6 +86,7 @@ enum class type monitor, confirming_set, bounded_backlog, + request_aggregator, // bootstrap bulk_pull_client, diff --git a/nano/node/node.cpp b/nano/node/node.cpp index b6838515f..50d0ce297 100644 --- a/nano/node/node.cpp +++ b/nano/node/node.cpp @@ -171,7 +171,7 @@ nano::node::node (std::shared_ptr io_ctx_a, std::filesy final_generator{ *final_generator_impl }, scheduler_impl{ std::make_unique (config, *this, ledger, bucketing, block_processor, active, online_reps, vote_cache, confirming_set, stats, logger) }, scheduler{ *scheduler_impl }, - aggregator_impl{ std::make_unique (config.request_aggregator, *this, stats, generator, final_generator, history, ledger, wallets, vote_router) }, + aggregator_impl{ std::make_unique (config.request_aggregator, *this, generator, final_generator, history, ledger, wallets, vote_router) }, aggregator{ *aggregator_impl }, backlog_scan_impl{ std::make_unique (config.backlog_scan, ledger, stats) }, backlog_scan{ *backlog_scan_impl }, diff --git a/nano/node/request_aggregator.cpp b/nano/node/request_aggregator.cpp index 8a0c9224f..d06a9b26c 100644 --- a/nano/node/request_aggregator.cpp +++ b/nano/node/request_aggregator.cpp @@ -15,16 +15,17 @@ #include #include -nano::request_aggregator::request_aggregator (request_aggregator_config const & config_a, nano::node & node_a, nano::stats & stats_a, nano::vote_generator & generator_a, nano::vote_generator & final_generator_a, nano::local_vote_history & history_a, nano::ledger & ledger_a, nano::wallets & wallets_a, nano::vote_router & vote_router_a) : +nano::request_aggregator::request_aggregator (request_aggregator_config const & config_a, nano::node & node_a, nano::vote_generator & generator_a, nano::vote_generator & final_generator_a, nano::local_vote_history & history_a, nano::ledger & ledger_a, nano::wallets & wallets_a, nano::vote_router & vote_router_a) : config{ config_a }, network_constants{ node_a.network_params.network }, - stats (stats_a), local_votes (history_a), ledger (ledger_a), wallets (wallets_a), vote_router{ vote_router_a }, generator (generator_a), - final_generator (final_generator_a) + final_generator (final_generator_a), + stats (node_a.stats), + logger (node_a.logger) { queue.max_size_query = [this] (auto const & origin) { return config.max_queue; @@ -238,15 +239,28 @@ auto nano::request_aggregator::aggregate (nano::secure::transaction const & tran { to_generate_final.push_back (block); stats.inc (nano::stat::type::requests, nano::stat::detail::requests_final); + + logger.debug (nano::log::type::request_aggregator, "Replying with final vote for: {} to: {}", + block->hash ().to_string (), // TODO: Lazy eval + channel_a->to_string ()); // TODO: Lazy eval } else { stats.inc (nano::stat::type::requests, nano::stat::detail::requests_non_final); + + logger.debug (nano::log::type::request_aggregator, "Skipping reply with normal vote for: {} (requested by: {})", + block->hash ().to_string (), // TODO: Lazy eval + channel_a->to_string ()); // TODO: Lazy eval } } else { stats.inc (nano::stat::type::requests, nano::stat::detail::requests_unknown); + + logger.debug (nano::log::type::request_aggregator, "Cannot reply, block not found: {} with root: {} (requested by: {})", + hash.to_string (), // TODO: Lazy eval + root.to_string (), // TODO: Lazy eval + channel_a->to_string ()); // TODO: Lazy eval } } diff --git a/nano/node/request_aggregator.hpp b/nano/node/request_aggregator.hpp index c910720e1..1332875c2 100644 --- a/nano/node/request_aggregator.hpp +++ b/nano/node/request_aggregator.hpp @@ -45,7 +45,7 @@ public: class request_aggregator final { public: - request_aggregator (request_aggregator_config const &, nano::node &, nano::stats &, nano::vote_generator &, nano::vote_generator &, nano::local_vote_history &, nano::ledger &, nano::wallets &, nano::vote_router &); + request_aggregator (request_aggregator_config const &, nano::node &, nano::vote_generator &, nano::vote_generator &, nano::local_vote_history &, nano::ledger &, nano::wallets &, nano::vote_router &); ~request_aggregator (); void start (); @@ -84,13 +84,14 @@ private: private: // Dependencies request_aggregator_config const & config; nano::network_constants const & network_constants; - nano::stats & stats; nano::local_vote_history & local_votes; nano::ledger & ledger; nano::wallets & wallets; nano::vote_router & vote_router; nano::vote_generator & generator; nano::vote_generator & final_generator; + nano::stats & stats; + nano::logger & logger; private: using value_type = std::pair>;