diff --git a/include/bitcoin/node/chasers/chaser_validate.hpp b/include/bitcoin/node/chasers/chaser_validate.hpp index 6968f362..bb18f05b 100644 --- a/include/bitcoin/node/chasers/chaser_validate.hpp +++ b/include/bitcoin/node/chasers/chaser_validate.hpp @@ -88,6 +88,8 @@ class BCN_API chaser_validate std::atomic unbatched_schnorr_{}; std::atomic batched_multisig_{}; std::atomic unbatched_multisig_{}; + std::atomic batched_threshold_{}; + std::atomic unbatched_threshold_{}; std::atomic backlog_{}; network::asio::strand validation_strand_; const uint32_t subsidy_interval_; diff --git a/src/chasers/chaser_validate.cpp b/src/chasers/chaser_validate.cpp index e1f781ce..8c674e18 100644 --- a/src/chasers/chaser_validate.cpp +++ b/src/chasers/chaser_validate.cpp @@ -300,22 +300,29 @@ code chaser_validate::validate(bool bypass, const chain::block& block, { const chain::signatures capture { + // Enable/disable capture. .enabled = batch_signatures_, - .ecdsa = [&](const hash_digest& digest, - const ec_compressed& point, const ec_signature& sign) NOEXCEPT + + .ecdsa = [&](const hash_digest& , + const ec_compressed& , const ec_signature& ) NOEXCEPT + { + ////query.set_signature(digest, point, sign, link); + }, + .schnorr = [&](const hash_digest& , + const ec_xonly& , const ec_signature& ) NOEXCEPT { - query.set_signature(digest, point, sign, link); + ////query.set_signature(digest, point, sign, link); }, - .schnorr = [&](const hash_digest& digest, - const ec_xonly& point, const ec_signature& sign) NOEXCEPT + .multisig = [&](const hash_digest& , + const ec_compresseds& , const ec_signatures& , + uint16_t ) NOEXCEPT { - query.set_signature(digest, point, sign, link); + ////query.set_signatures(digest, points, signs, group, link); }, - .multisig = [&](const hash_digest& digest, - const ec_compresseds& points, const ec_signatures& signs, - uint16_t group) NOEXCEPT + .threshold = [&](const chain::signatures::threshold_group& , + uint16_t ) NOEXCEPT { - query.set_signatures(digest, points, signs, group, link); + ////query.set_signatures(digest, points, signs, group, link); } }; @@ -328,28 +335,40 @@ code chaser_validate::validate(bool bypass, const chain::block& block, << capture.group << ")."); } - // Diagnostics. + // Diagnostics (ecdsa). batched_ecdsa_ += capture.batched_ecdsa; unbatched_ecdsa_ += capture.unbatched_ecdsa; - batched_schnorr_ += capture.batched_schnorr; - unbatched_schnorr_ += capture.unbatched_schnorr; batched_multisig_ += capture.batched_multisig; unbatched_multisig_ += capture.unbatched_multisig; + + if (to_bool(batched_ecdsa_.load()) || to_bool(unbatched_ecdsa_.load())) { - LOGV("Efficiency ecdsa " << batched_ecdsa_ << " / (" + LOGV("Efficiency ecdsa " << batched_ecdsa_ << " / (" << batched_ecdsa_ << " + " << unbatched_ecdsa_ << ")"); } + if (to_bool(batched_multisig_.load()) || to_bool(unbatched_multisig_.load())) + { + LOGV("Efficiency multisig " << batched_multisig_ << " / (" + << batched_multisig_ << " + " << unbatched_multisig_ << ")"); + } + + // Diagnostics (schnorr). + batched_schnorr_ += capture.batched_schnorr; + unbatched_schnorr_ += capture.unbatched_schnorr; + batched_threshold_ += capture.batched_threshold; + unbatched_threshold_ += capture.unbatched_threshold; + if (to_bool(batched_schnorr_.load()) || to_bool(unbatched_schnorr_.load())) { - LOGV("Efficiency schnorr " << batched_schnorr_ << " / (" + LOGV("Efficiency schnorr " << batched_schnorr_ << " / (" << batched_schnorr_ << " + " << unbatched_schnorr_ << ")"); } - if (to_bool(batched_multisig_.load()) || to_bool(unbatched_multisig_.load())) + if (to_bool(batched_threshold_.load()) || to_bool(unbatched_threshold_.load())) { - LOGV("Efficiency multisig " << batched_multisig_ << " / (" - << batched_multisig_ << " + " << unbatched_multisig_ << ")"); + LOGV("Efficiency threshold " << batched_threshold_ << " / (" + << batched_threshold_ << " + " << unbatched_threshold_ << ")"); } } else