From 88267e089904379e3118c75b93702f0a1cbe48ef Mon Sep 17 00:00:00 2001 From: evoskuil Date: Mon, 15 Jun 2026 17:34:31 -0400 Subject: [PATCH 1/2] Incorporate mark_unconfirmable setting. --- .../database/impl/query/consensus/consensus_states.ipp | 3 ++- include/bitcoin/database/impl/store/store.ipp | 6 ++++++ include/bitcoin/database/settings.hpp | 3 +++ include/bitcoin/database/store.hpp | 3 +++ test/settings.cpp | 1 + 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/include/bitcoin/database/impl/query/consensus/consensus_states.ipp b/include/bitcoin/database/impl/query/consensus/consensus_states.ipp index 48df52c3e..867b95ac5 100644 --- a/include/bitcoin/database/impl/query/consensus/consensus_states.ipp +++ b/include/bitcoin/database/impl/query/consensus/consensus_states.ipp @@ -236,7 +236,8 @@ bool CLASS::set_block_confirmable(const header_link& link) NOEXCEPT TEMPLATE bool CLASS::set_block_unconfirmable(const header_link& link) NOEXCEPT { - return set_block_state(link, block_state::unconfirmable); + return !store_.mark_unconfirmable() || + set_block_state(link, block_state::unconfirmable); } TEMPLATE diff --git a/include/bitcoin/database/impl/store/store.ipp b/include/bitcoin/database/impl/store/store.ipp index 12b83e41a..740b1d555 100644 --- a/include/bitcoin/database/impl/store/store.ipp +++ b/include/bitcoin/database/impl/store/store.ipp @@ -238,6 +238,12 @@ bool CLASS::turbo() const NOEXCEPT return configuration_.turbo; } +TEMPLATE +bool CLASS::mark_unconfirmable() const NOEXCEPT +{ + return configuration_.mark_unconfirmable; +} + TEMPLATE uint8_t CLASS::interval_depth() const NOEXCEPT { diff --git a/include/bitcoin/database/settings.hpp b/include/bitcoin/database/settings.hpp index 5a7371db1..6909744a9 100644 --- a/include/bitcoin/database/settings.hpp +++ b/include/bitcoin/database/settings.hpp @@ -42,6 +42,9 @@ struct BCD_API settings /// Enable concurrency in individual client-server queries. bool turbo{ false }; + /// Mark blocks as unconfirmable (disorganize vs. stall). + bool mark_unconfirmable{ true }; + /// Depth of electrum merkle tree interval caching. uint16_t interval_depth{ max_uint8 }; diff --git a/include/bitcoin/database/store.hpp b/include/bitcoin/database/store.hpp index b2a9187ab..73e4a3be8 100644 --- a/include/bitcoin/database/store.hpp +++ b/include/bitcoin/database/store.hpp @@ -86,6 +86,9 @@ class store /// Allows full throttle concurrent query execution (may use 100% CPU). bool turbo() const NOEXCEPT; + /// Mark blocks as unconfirmable (disorganize vs. stall), configuration. + bool mark_unconfirmable() const NOEXCEPT; + /// Depth of electrum merkle tree interval caching. uint8_t interval_depth() const NOEXCEPT; diff --git a/test/settings.cpp b/test/settings.cpp index aa0cffc79..390640b13 100644 --- a/test/settings.cpp +++ b/test/settings.cpp @@ -24,6 +24,7 @@ BOOST_AUTO_TEST_CASE(settings__construct__default__expected) { database::settings configuration; BOOST_REQUIRE_EQUAL(configuration.turbo, false); + BOOST_REQUIRE_EQUAL(configuration.mark_unconfirmable, true); BOOST_REQUIRE_EQUAL(configuration.interval_depth, 255u); BOOST_REQUIRE_EQUAL(configuration.path, "bitcoin"); From 2e694f1ec97d9ce4a5fa8be9264d1f8571443ead Mon Sep 17 00:00:00 2001 From: evoskuil Date: Tue, 16 Jun 2026 00:07:50 -0400 Subject: [PATCH 2/2] Stub in signature batching queries. --- include/bitcoin/database/query.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/bitcoin/database/query.hpp b/include/bitcoin/database/query.hpp index 3ece0caaa..df946ce3f 100644 --- a/include/bitcoin/database/query.hpp +++ b/include/bitcoin/database/query.hpp @@ -582,6 +582,10 @@ class query bool set_signatures(const threshold& group, size_t set, const header_link& link) NOEXCEPT; + // TODO: + bool purge_signatures() NOEXCEPT { return {}; }; + bool verify_signatures(header_links& ) NOEXCEPT { return {}; }; + /// Confirmation. /// ----------------------------------------------------------------------- /// These are not used in consensus confirmation.