Backports:
[30.x] Backports #33609
pull fanquake wants to merge 21 commits into bitcoin:30.x from fanquake:30_1_backports changing 38 files +519 −422-
fanquake commented at 2:53 pm on October 13, 2025: member
-
fanquake added this to the milestone 30.1 on Oct 13, 2025
-
DrahtBot added the label Backport on Oct 13, 2025
-
DrahtBot commented at 2:53 pm on October 13, 2025: contributor
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Code Coverage & Benchmarks
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33609.
Reviews
See the guideline for information on the review process.
Type Reviewers ACK willcl-ark, marcofleon If your review is incorrectly listed, please copy-paste <!–meta-tag:bot-skip–> into the comment that the bot should ignore.
LLM Linter (✨ experimental)
Possible typos and grammar issues:
+Use the calculation from Commonstyle and add the increased padding and +horizontally layouted buttons to the horizontal size hint.
- Commonstyle -> CommonStyle [proper name/camel-case; “Commonstyle” is likely a typo and may confuse readers]
- layouted -> laid-out [incorrect past participle; “laid-out” (or “laid out”) is the correct phrasing]
Possible places where named args may be used (e.g.
func(x, /*named_arg=*/0)in C++, andfunc(x, named_arg=0)in Python):- std::accumulate(…, CAmount{0}) in src/node/miner.cpp
- std::accumulate(…, CAmount{0}) in src/node/miner.cpp
2025-12-01
-
fanquake force-pushed on Oct 13, 2025
-
fanquake force-pushed on Oct 13, 2025
-
fanquake force-pushed on Oct 14, 2025
-
fanquake force-pushed on Oct 14, 2025
-
c9fa661131
ci: Properly include $FILE_ENV in DEPENDS_HASH
$FILE_ENV has a full relative path already, prepending with ci/test/ results in a non-existent path which means that DEPENDS_HASH was not actually committing to the test's environment file. Github-Pull: #33581 Rebased-From: ceeb53adcd0a6a87a65c8ebbb20472c15c502dfd
-
72d1141bd8
ci: Use native platform for win-cross task
Github-Pull: #33558 Rebased-From: fa6fd16f36e1240cda58a46e1717b02e8d3172a3
-
73ed57a35e
depends: Use $(package)_file_name when downloading from the fallback
Github-Pull: #33580 Rebased-From: 671b774d1b58c491b53f2b2f6ee42fb6b65a0e71
-
c48d3a6ad8
ci: expose all ACTIONS_* vars
When using `docker buildx build` in conjunction with the `gha` backend cache type, it's important to specify the URL and TOKEN needed to authenticate. On Cirrus runners this is working with only `ACTIONS_CACHE_URL` and `ACTIONS_RUNTIME_TOKEN`, but this is not enough for the GitHub backend. Fix this by exporting all `ACTIONS_*` variables. This fixes cache restore/save on forks or where GH-hosted runners are being used. Github-Pull: #33508 Rebased-From: bc706955d740f8a59bec78e44d33e80d1cca373b
-
5e389959b9
test: change log rate limit version gate from 299900 to 290100
Github-Pull: #33612 Rebased-From: 7b544341c0021dd713f05bc439ee190de911930c
-
f8db6f6ce7
multiprocess: update multiprocess EventLoop construction to use options
This uses the constructors recently added upstream. Github-Pull: #33517 Rebased-From: 9d068225ee2b79da43e264994cd84279655a2210
-
729e4c2abd
multiprocess: align our logging with libmultiprocess's
Without this change, logging (even if unused) may account for a substantial portion of bitcoin-node's and/or client's runtime cpu usage, due to libmultiprocess's expensive message serialization. This (along with some recent upstream changes) avoids the overhead by opting out of log handling for messages that we're not interested in. Info, Warning, and Error are logged unconditionally to match our behavior elsewhere. See BCLog::Logger::GetCategoryLogLevel . Github-Pull: #33517 Rebased-From: 0626b90f507db68610a69feec86deb712dd095a1
-
fanquake force-pushed on Oct 16, 2025
-
ryanofsky commented at 9:28 am on October 16, 2025: contributorIt could make sense to backport #33229 too, I think. It does have the Needs backport (30.x) label, but doesn’t appear by default because it is closed. (Sorry if this is the wrong place to discuss)
-
96110f8846
[doc] correct topology requirements in submitpackage helptext
Github-Pull: #33630 Rebased-From: 3d222825642bfb052ce40cbc1c69318a0d8835bf
-
fanquake force-pushed on Oct 17, 2025
-
42d4847fdf
init: add exe name to bitcoind, bitcoin-node -version output to be able to distinguish these in tests
Github-Pull: #33229 Rebased-From: 0972f5504021b482b27523fd3bcb8036cf6b439c
-
cd7937ce2d
test: add tool_bitcoin to test bitcoin wrapper behavior
Github-Pull: #33229 Rebased-From: 29e836fae660d9a89c54a094ae1a032e6a88c334
-
23ac752d09
bitcoin: Make wrapper not require -m
Choose the right binary by default if an IPC option is specified Github-Pull: #33229 Rebased-From: 453b0fa286e5dce0af682b7b73684dd6415a50de
-
fanquake force-pushed on Oct 17, 2025
-
3afd5a9729
miner: fix empty mempool case for waitNext()
Block template fees are calculated by looping over new_tmpl->vTxFees and return (early) once the fee_threshold is exceeded. This left an edge case when the mempool is empty, which this commit fixes and adds a test for. It does so by using std::accumulate instead of manual loops. Also update interface_ipc.py to account for the new behavior. Co-authored-by: Raimo33 <claudio.raimondi@protonmail.com> Github-Pull: #33566 Rebased-From: 8f7673257a1a86717c1d83770dc857fc254df107
-
fanquake force-pushed on Oct 23, 2025
-
hebasto commented at 4:39 pm on November 3, 2025: member
-
049bf100f1
qt: add createwallet, createwalletdescriptor, and migratewallet to history filter
Github-Pull: #gui901 Rebased-From: 4e352efa2ce756c668664486c99d003eef530e0c
-
8f8c7cf7fa
ci: fix lint docker caching
Fixes: 33735 Correct runner type selection for the lint job. This was erroneously left-out during refactor of the runner selection mechanism in #33302 causing the lint job to run on GH hosts (and therefore not be able to acces local cirrus caches). Github-Pull: #33744 Rebased-From: 0b3b8a3be1a0db0dfc634acca1d9305dc0fbfae6
-
34576c4574
ci: fix configure docker action inputs
The options used were wrong in two ways: firstly they were not enforced as a "choice" (i.e. invalid input valudes could be provided without error) and one of the options was listed as `gh` when we passed it as `gha` from ci.yml. "Fix" this by removing the choice altogether but sanity-testing the input value against an expected list using a GHA "warning" to notify of unknown inputs. Github-Pull: #33744 Rebased-From: 7632e0ba312a372259897c68fd7c7eb723df3738
-
fanquake force-pushed on Nov 4, 2025
-
c0d851e6c6
qt: Modernize custom filtering
In `QSortFilterProxyModel`, `invalidateFilter()` is scheduled for deprecation in Qt 6.13. `beginFilterChange()` was introduced in Qt 6.9. `endFilterChange()` was introduced in Qt 6.10. Github-Pull: gui#899 Rebased-From: e15e8cbadad5ce1de41ebb817b87054f8b5192f2
-
fanquake force-pushed on Nov 5, 2025
-
e2c71c4fca
doc: Correct `pkgin` command usage on NetBSD
Github-Pull: #33827 Rebased-From: 0698c6b494de0e28c9b909585905aab5b187286e
-
fanquake force-pushed on Nov 10, 2025
-
a0a2b07701
scripted-diff: Remove obsolete comment
The removed comment become obsolete after bitcoin/bitcoin#32697 and bitcoin/bitcoin#32881. -BEGIN VERIFY SCRIPT- sed -i "s/ Some tests are disabled if Python 3 is not available.//g" \ $( git grep -l " Some tests are disabled if Python 3 is not available." ./doc/ ) -END VERIFY SCRIPT- Github-Pull: #33826 Rebased-From: 36724205fc1f226d7b5493ed0212c336e7f2ae84
-
fanquake force-pushed on Nov 10, 2025
-
waketraindev commented at 4:28 am on November 19, 2025: contributorPlease add https://github.com/bitcoin-core/gui/pull/910 , it’s test coverage for https://github.com/bitcoin-core/gui/pull/901
-
plebhash commented at 0:03 am on November 25, 2025: noneplease add #33676, it would be highly appreciated as a way to expedite https://github.com/stratum-mining/sv2-apps/issues/81
-
577ddf6f5d
depends: Add patch for Windows11Style plugin
Github-Pull: #33906 Rebased-From: 8558902e576e2c2d66f6083b66953dd6cc464de4
-
fanquake force-pushed on Nov 25, 2025
-
39d53dd8bf
interfaces: add interruptWait method
- This method can be used to cancel a running waitNext(). - This commit also adds a test case for interruptWait method Github-Pull: #33676 Rebased-From: dcb56fd4cb59e6857c110dd87019459989dc1ec3
-
fanquake force-pushed on Nov 26, 2025
-
fanquake requested review from willcl-ark on Nov 28, 2025
-
fanquake marked this as ready for review on Nov 28, 2025
-
plebhash commented at 4:37 pm on November 29, 2025: none
reporting here some testing methodology and results
originally I reported #33554, which I can still reliably reproduce with branch
2025-10-06-abort-proxy-ioof https://github.com/plebhash/sv2-bitcoin-core against Bitcoin Core:v30.0rc3v30.0
basically, the rust code runs for a little bit, and then Bitcoin Core crashes with:
0Assertion failed: (m_loop), function operator->, file proxy.h, line 60. 1[1] 8022 abort ./build/bin/bitcoin-node -signet -ipcbind=unix -debug=ipc(plus all the backtraces reported on #33554)
on the same issue #33554 @ryanofsky said:
Just to be clear about next steps, the node aborts should be prevented by https://github.com/bitcoin-core/libmultiprocess/pull/214 which is set to be backported in #33519.
this backporting was already merged… so running the same rust client from
2025-10-06-abort-proxy-ioagainst30.xnow triggers some new behavior, where Bitcoin Core does NOT crash, and instead I see this on the rust client logs:02025-11-29T16:09:03.869139Z INFO logger: Sent new CoinbaseOutputConstraints 12025-11-29T16:09:03.872778Z ERROR bitcoin_core_sv2: Failed to get response: Failed: remote exception: std::exception: thread busy(cc @ismaelsadeeq this confirms what we discussed over lunch today: if a client naively “forgets” to call
interruptWaitwhen it’s supposed to, Bitcoin Core no longer crashes)
on #33554 @ryanofsky also said:
Regardless of this, the rust client code needs to be changed to either not make other IPC calls at the same time as there is an active
waitNext()IPC call, or to just create more server threads and request the waitNext call to run on a different thread than the other IPC calls.which is my segway to #33676, which is being backported here
the rust client of
2025-11-29-abort-proxy-io-interrupt-waitbranch is essentially the same code of2025-10-06-abort-proxy-io, but adapted to callinterruptWaitat the appropriate time, thus avoiding two concurrentwaitNextrequests against the same server threadrunning this rust client against
fanquake:30_1_backports, Bitcoin Core does NOT crash, and also we do NOT get thethread busyerror on the rust client side
TLDR: #33676 successfully tested on the branch of this PR, and I’m confident we have a way forward on https://github.com/stratum-mining/sv2-apps/issues/81
🙏 thanks a lot @ryanofsky @ismaelsadeeq @fanquake @Sjors
-
willcl-ark commented at 2:50 pm on December 1, 2025: member
Backports all look good to me.
We are missing a release note for #33229 currently, I think it’s one worth adding too.
-
doc: update release notes for 30.x b2cb203af0
-
fanquake force-pushed on Dec 1, 2025
-
willcl-ark approved
-
willcl-ark commented at 3:43 pm on December 1, 2025: memberACK b2cb203af05743ea5c130913afa7549c02d1bae5
-
fanquake requested review from marcofleon on Dec 1, 2025
-
marcofleon approved
-
marcofleon commented at 5:09 pm on December 1, 2025: contributorLgtm, ACK b2cb203af05743ea5c130913afa7549c02d1bae5
-
fanquake merged this on Dec 2, 2025
-
fanquake closed this on Dec 2, 2025
-
fanquake deleted the branch on Dec 2, 2025
fanquake
DrahtBot
ryanofsky
hebasto
l0rinc
waketraindev
plebhash
willcl-ark
marcofleon
Labels
Backport
Milestone
30.1
This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-12-19 06:13 UTC
More mirrored repositories can be found on mirror.b10c.me