From 27c4afe5e0309fc1b5e9a45a01baa72a48b67db5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=BE=D0=BB=D0=BB=D0=B8?= Date: Wed, 11 Feb 2026 22:29:08 +0200 Subject: [PATCH 1/2] Remove interruptWait() exception handling interruptWait() was added to Bitcoin Core v30.1 in bitcoin/bitcoin#33609. Since v30.2 is the minimum required version, the fallback for missing interruptWait() is no longer needed. --- src/sv2/template_provider.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/sv2/template_provider.cpp b/src/sv2/template_provider.cpp index af33dde8..13e135d9 100644 --- a/src/sv2/template_provider.cpp +++ b/src/sv2/template_provider.cpp @@ -131,16 +131,8 @@ void Sv2TemplateProvider::Interrupt() LogPrintLevel(BCLog::SV2, BCLog::Level::Trace, "Interrupt pending waitNext() calls..."); { LOCK(m_tp_mutex); - try { - for (auto& t : GetBlockTemplates()) { - t.second.second->interruptWait(); - } - } catch (const ipc::Exception& e) { - // Bitcoin Core v30 does not yet implement interruptWait(), fall back - // to just waiting until waitNext() returns. - LogPrintLevel(BCLog::SV2, BCLog::Level::Info, - "Interrupt received, waiting up to %d seconds before shutting down (-sv2interval)", - m_options.fee_check_interval.count()); + for (auto& t : GetBlockTemplates()) { + t.second.second->interruptWait(); } } From 1bed3b0cfe15cb4102fedc6b8cb24cde6aed661f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=BE=D0=BB=D0=BB=D0=B8?= Date: Wed, 11 Feb 2026 22:29:41 +0200 Subject: [PATCH 2/2] doc: update minimum Bitcoin Core version to v30.2 Update README.md and doc/stratum-v2.md to reflect that Bitcoin Core v30.2 is the minimum required version. --- README.md | 2 +- doc/stratum-v2.md | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 039c9264..3e098b82 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ dependencies. Usage ------------------------ -Download or compile Bitcoin Core v30.0 or later. Start it with: +Download or compile Bitcoin Core v30.2 or later. Start it with: ```sh bitcoin -m node -ipcbind=unix diff --git a/doc/stratum-v2.md b/doc/stratum-v2.md index 933a6f92..7ce17fef 100644 --- a/doc/stratum-v2.md +++ b/doc/stratum-v2.md @@ -1,5 +1,21 @@ # Stratum v2 +## Requirements + +### Bitcoin Core Version + +sv2-tp requires **Bitcoin Core v30.2 or later** compiled with IPC support +(`bitcoin-node` binary, not `bitcoind`). + +**Why v30.2?** +- v30.2 implements `interruptWait()` for clean shutdown of template waiting +- v30.2 properly enforces minimum block reserved weight + +To check your Bitcoin Core version: +```sh +bitcoin-node --version +``` + ## Design The Stratum v2 protocol specification can be found here: https://stratumprotocol.org/specification