From 81a2ab4f267066333cbd20e35d76d044031def03 Mon Sep 17 00:00:00 2001 From: clemahieu Date: Tue, 28 Feb 2023 23:17:52 +0000 Subject: [PATCH] Internally check if the block processor needs to drop blocks, rather than making it a requirement of the caller. (#4161) Adds a stat counter when the block_processor drops a block as this is new behavior. --- nano/node/blockprocessor.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nano/node/blockprocessor.cpp b/nano/node/blockprocessor.cpp index 0f73e7c58..2aec7b7e5 100644 --- a/nano/node/blockprocessor.cpp +++ b/nano/node/blockprocessor.cpp @@ -97,6 +97,11 @@ void nano::block_processor::add (std::shared_ptr const & block_a) void nano::block_processor::add (nano::unchecked_info const & info_a) { + if (full ()) + { + node.stats.inc (nano::stat::type::blockprocessor, nano::stat::detail::drop); + return; + } auto const & block = info_a.block; debug_assert (!node.network_params.work.validate_entry (*block)); if (block->type () == nano::block_type::state || block->type () == nano::block_type::open) @@ -115,6 +120,11 @@ void nano::block_processor::add (nano::unchecked_info const & info_a) void nano::block_processor::add_local (nano::unchecked_info const & info_a) { + if (full ()) + { + node.stats.inc (nano::stat::type::blockprocessor, nano::stat::detail::drop); + return; + } debug_assert (!node.network_params.work.validate_entry (*info_a.block)); state_block_signature_verification.add ({ info_a.block }); }