build: Drop ZeroMQ patch for glibc < 2.12 (Hennadii Stepanov) 079df96 build: Drop ZeroMQ patch for Mingw-w64 < 4.0 (Hennadii Stepanov)#3
Open
ryihan wants to merge 10000 commits intoNetboxGlobal:masterfrom
Open
Conversation
The sentinel pattern was necessary to collect conflicted transactions before their associated block was recorded, but that tracking was removed in 5613f98.
…ust IPC client 8fe91f3 test: Updates needed after bitcoin-core/libmultiprocess#240 (Ryan Ofsky) b7ca3bf Squashed 'src/ipc/libmultiprocess/' changes from 1fc65008f7d..1868a84451f (Ryan Ofsky) 1fea3ba ipc, test: Add tests for unclean disconnect and thread busy behavior (Ryan Ofsky) Pull request description: Includes: - bitcoin-core/libmultiprocess#241 - bitcoin-core/libmultiprocess#240 - bitcoin-core/libmultiprocess#244 - bitcoin-core/libmultiprocess#245 The main change is bitcoin-core/libmultiprocess#240 which fixes issues with asynchronous requests (#33923) and unclean disconnects (#34250) that happen with the rust mining client. It also adds tests for these fixes which had some previous review in #34284 (that PR was closed to simplify dependencies between PRs). The changes can be verified by running `test/lint/git-subtree-check.sh src/ipc/libmultiprocess` as described in [developer notes](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#subtrees) and [lint instructions](https://github.com/bitcoin/bitcoin/tree/master/test/lint#git-subtree-checksh) Resolves #33923 and #34250 ACKs for top commit: Sjors: re-ACK 8fe91f3 janb84: reACK 8fe91f3 Eunovo: ACK 8fe91f3 Tree-SHA512: 7e8923610502ebd8603bbea703f82178ab9e956874d394da3451f5268afda2b964d0eeb399a74d49c4123e728a14c27c0296118577a6063ff03b2b8203a257ce
Otherwise this check will "pass", like: ```bash -- Detecting CXX compile features - done -- Found LLVM 21.1.8 -- Found clang-tidy: CLANG_TIDY_EXE-NOTFOUND -- Configuring done (0.5s) ```
```bash
15 | #warning The ClangTidyModuleRegistry.h header is deprecated and will be removed in LLVM 24. All of the symbols it used to define have been moved into ClangTidyModule.h.
| ^~~~~~~
[100%] Linking CXX shared module libbitcoin-tidy.so
```
Added -config-file as otherwise run-clang-tidy no-longer seemed able to find the config file.
5e35a90 interpreter: remove clang-tidy suppression (fanquake) 4089682 ci: use Clang 22 in tidy task (fanquake) 7ea076f tidy: remove deprecated header (fanquake) eb17f29 tidy: clang-tidy is required (fanquake) Pull request description: Changes needed for moving to Clang 22 in the tidy job. ACKs for top commit: maflcko: lgtm ACK 5e35a90 hebasto: ACK 5e35a90, I have reviewed the code and it looks OK. Tree-SHA512: 9ca6e841f7480b8abd78d5621d08a5bf80c2ff4facd7a0d76038ac1771bbf3d37dc2df19fa27583679177e4618db6294e2f2bb2129d9c25a53338b49ed71aac2
fa7612f ci: Download script_assets_test.json for Windows CI (MarcoFalke) 7777a13 test: Move Fetching-print to download_from_url util (MarcoFalke) faf9628 test: move-only download_from_url to stand-alone util file (MarcoFalke) fa0cc1c test: [doc] Remove outdated comment (MarcoFalke) Pull request description: Fixes #34670 by adding a new `download_script_assets` Python helper and calling it. ACKs for top commit: hebasto: re-ACK fa7612f. janb84: re ACK fa7612f hodlinator: utACK fa7612f Tree-SHA512: 73c2cb3a31f231174566fb880b82de92734b1679ef000f8d793d774b7e5f5a7b8c7994a3998ca78821115bdc80c16aada69cf596e92c083cf9b9a95c7cee16ea
The `find_package(Qt .. MODULE REQUIRED COMPONENTS ...)` call must treat any missing component as a fatal error.
Backported from: qt/qtbase@7fccc79
Meta-Issue: https://qt-project.atlassian.net/browse/QTBUG-143470 Backports: qt/qtbase@679e8bd qt/qtbase@3312e89 qt/qtbase@05f201a An additional includes fix is needed after the others: qt/qtbase@d68fc6e
Cross-compiling Qt 6.8 for Windows requires GCC 13.1 or newer, which exceeds the currently documented minimum. See https://doc.qt.io/qt-6.8/windows.html.
b87a1c2 doc: Improve dependencies.md IPC documentation (Ryan Ofsky) Pull request description: Improve dependencies.md to document IPC dependencies better ([preview](https://github.com/ryanofsky/bitcoin/blob/pr/ipc-depdoc/doc/dependencies.md#build-1)). Specific changes are listed in the commit message. This PR is based on #33623 by willcl-ark which made similar changes in the 29.x branch. This PR could also be backported to 30.x (it merges cleanly, and master and 30.x both have the same version requirements). ACKs for top commit: l0rinc: ACK b87a1c2 sedited: ACK b87a1c2 Tree-SHA512: 566b5372d189f0ad04f978ddefbd8c200dcc19b25af02c73275c5faf7529943680ec59703bda11640cf7920466b4cdd46305cac4d3770e2303de37694ae78909
…ference 1c1de33 test: avoid interface_ipc.py race and null pointer dereference (Ryan Ofsky) Pull request description: Avoid race condition in `run_deprecated_mining_test` caused by creating and immediately destroying an unused worker thread. This is leading to test failures reported by maflcko in #34711 ACKs for top commit: optout21: utACK 1c1de33 l0rinc: Tested ACK 1c1de33 w0xlt: ACK 1c1de33 enirox001: ACK 1c1de33 Tree-SHA512: d0af9676a46e991a3f4fda3795c02d1998d30de24991436b8ada425585c6699ff32a7057ca7a0ef2925f782fd3bf73e0381f5d4325e4f1c09f487fce1de49e45
Add support for unicode characters in paths to the kernel tests by using our fs:: wrappers for std::filesystem calls and adding the windows application manifest to the binary. This exercises their handling through the kernel API.
…eserialization f51665b psbt: validate pubkeys in MuSig2 pubnonce/partial sig deserialization (tboy1337) Pull request description: The previous fix for invalid MuSig2 pubkeys (#34010) only addressed the PSBT_IN_MUSIG2_PARTICIPANT_PUBKEYS field. However, the PSBT_IN_MUSIG2_PUB_NONCE and PSBT_IN_MUSIG2_PARTIAL_SIG fields also deserialize pubkeys without validation, which could lead to crashes when invalid pubkeys are processed. This commit adds validation to the DeserializeMuSig2ParticipantDataIdentifier function to ensure all pubkeys in MuSig2 pubnonce and partial signature fields are fully valid elliptic curve points. The fix: - Validates both aggregate and participant pubkeys in MuSig2 pubnonce and partial signature deserialization - Throws std::ios_base::failure with descriptive error messages for invalid pubkeys - Prevents potential crashes from invalid elliptic curve points - Maintains backward compatibility for valid PSBTs This completes the fix for issues [#33999](#33999) and [#34201](#34201). ACKs for top commit: rkrux: lgtm ACK f51665b w0xlt: ACK f51665b darosior: utACK f51665b Tree-SHA512: 8454d77a05aa003a3121b0a5975e8a000125ee0d62343bfa625a75db113358ba7a210ae0376ca1666957b7de7005e06e5a54c95170430ee5e9e1416719b8af53
This will prevent us from creating a serialization we do not accept going forward.
This call is a no-op. PopulateAndValidateSnapshot already sets both the chain tip and the coins cache best block to the snapshot block, so LoadChainTip always hits the early return when it finds that the two match (tip->GetBlockHash() == coins_cache.GetBestBlock()).
The removal of the chain tip from setBlockIndexCandidates was happening after nSequenceId was modified. Since the set uses nSequenceId as a sort key, modifying it while the element is in the set is undefined behavior, which can cause the erase to fail. With assumeutxo, a second form of UB exists: two chainstates each have their own candidate set, but share the same CBlockIndex objects. Calling LoadChainTip on one chainstate mutates nSequenceIds that are also in the other chainstate's set. Fix by populating setBlockIndexCandidates after all changes to nSequenceId.
faa68ed test: Fix intermittent issue in wallet_assumeutxo.py (MarcoFalke) Pull request description: The test has many issues: * It fails intermittently, due to the use of `-stopatheight` (#34710) * Using `-stopatheight` is expensive, because it requires two restarts, making the test slow * The overwritten `def setup_network` does not store the extra args via the `add_nodes` call, so if code is added in the future to restart a node, it may not pick up its global extra args. Fix all issues by: * Adding and using a fast `dumb_sync_blocks` util helper to achieve what `-stopatheight` doesn't achieve * Calling `self.add_nodes(self.num_nodes, self.extra_args)` in the overridden `setup_network` Can be tested via this diff: ```diff diff --git a/src/node/kernel_notifications.cpp b/src/node/kernel_notifications.cpp index ab0e5cc..49384c10b8 100644 --- a/src/node/kernel_notifications.cpp +++ b/src/node/kernel_notifications.cpp @@ -61,2 +61,3 @@ kernel::InterruptResult KernelNotifications::blockTip(SynchronizationState state if (m_stop_at_height && index.nHeight >= m_stop_at_height) { + LogInfo("Send shutdown signal after reaching stop height"); if (!m_shutdown_request()) { diff --git a/src/util/tokenpipe.cpp b/src/util/tokenpipe.cpp index c982fa6..a5565ebd36 100644 --- a/src/util/tokenpipe.cpp +++ b/src/util/tokenpipe.cpp @@ -4,2 +4,3 @@ #include <util/tokenpipe.h> +#include <util/time.h> @@ -60,2 +61,3 @@ int TokenPipeEnd::TokenRead() ssize_t result = read(m_fd, &token, 1); + UninterruptibleSleep(500ms); if (result < 0) { ``` On master: The test fails On this pull: The test passes Fixes #34710 ACKs for top commit: kevkevinpal: ACK [faa68ed](faa68ed) achow101: ACK faa68ed w0xlt: ACK faa68ed Tree-SHA512: 6fcd52b6f6a5fa5a5e41e7b3cf5c733af62af9c60271e7d22c266aca90f2af67f91ffe80a3ed8b8d1a91d001700870f493207998bac988c4e3671a3a0dba7ba7
Fix the from-disk subtest to use a separate node so it builds on a clean genesis block, rather than the leftover chain from the in-memory subtest. Change from a two-way to a three-way block race. The UB in the old LoadChainTip (mutating nSequenceId, a sort key, while the block is in setBlockIndexCandidates) corrupts the internal tree structure, resulting in a failed erase that leaves stale blocks in the set alongside the tip. With only two competing blocks, this is caught by libstdc++ but not by libc++. A three-way split triggers the bug on both implementations. To trigger CheckBlockIndex (where the crashing assertion is), replace the restart loop with sending a new block after a single restart.
d76ec4d fuzz: make sure PSBT serialization roundtrips (Antoine Poinsot) Pull request description: ~~Invalid public keys were accepted in Musig2 partial signatures. Because we serialize invalid keys as the empty byte string, this would lead us to creating an invalid PSBT serializations.~~ ~~This can be checked by reverting the first commit with the fix and simply running the target against the existing qa-assets corpus for the `psbt` harness.~~ This patch found the issue fixed in #34219 with a single run against the existing qa-assets corpus. It is useful to make sure there are no similar bugs, and we don't introduce roundtrip regressions outside of the specifc instance of accepting invalid public keys in Musig2 fields. *(Edited on March 4 to only contain the fuzz harness patch)* ACKs for top commit: davidgumberg: crACK d76ec4d achow101: ACK d76ec4d dergoegge: utACK d76ec4d brunoerg: code review ACK d76ec4d Tree-SHA512: ab5f8d4e6a1781ecdef825e1a0e2793a6b553f36c923a4a35cb1af4070eead9d9780f6cc9a76235aa03462e52a129d15e61f631490b43651dc4395f3f1c005f3
Replace ConnectTrace with a plain std::vector<ConnectedBlock>, and rename PerBlockConnectTrace to ConnectedBlock and connectTrace to connected_blocks.
d6f680b validation: Move block into BlockDisconnected signal (sedited) 4d02d2b validation: Move block into BlockConnected signal (sedited) 8b0fb64 validation: Move validation signal events to task runner (sedited) Pull request description: This enforces behaviour that is currently already implicit: The destructor for blocks runs mostly in the [scheduler thread](https://bitcoin-dev-tools.github.io/benchcoin/results/pr-176/20472174834/mainnet-default-instrumented-head-flamegraph.svg?x=2762391536960&y=684). The change should make it a bit clearer what the ownership semantics for these validation signals are. `BlockConnected` already takes a reference to a block that is emplaced in `connected_blocks`. Once `connected_blocks` is iterated through, it is not reused. Similarly `BlockDisconnected` currently takes a reference to a block that is discarded after the call to it. Note that this does not give the guarantee that blocks' lifetimes are extended by other means once they are connected. For example after IBD, the block's lifetime is extended in net_processing's `m_most_recent_block` and `ActivateBestChain` itself takes a copy of the block's shared pointer, meaning its caller may delay de-allocation. ACKs for top commit: maflcko: re-review ACK d6f680b 🔌 stickies-v: re-ACK d6f680b frankomosh: Re-ACK d6f680b Tree-SHA512: 9209a7d23e7af0d76fa70dff958b1329f38ef29ccc49b5a32bcf9f349d59cc2bf70464ebdb130d26077c0ff9362ce9211472231d375ff1c9c89c0ec3020eac80
On Windows, the `winerror.h` header defines `WAIT_TIMEOUT` as a macro. This introduces a fragile dependency on header inclusion order: if Windows headers happen to be included before using `WAIT_TIMEOUT`, the preprocessor expands it into a numeric literal, causing syntax errors. Rename the variable to `TEST_WAIT_TIMEOUT` to remove this fragility and avoid the collision entirely. -BEGIN VERIFY SCRIPT- sed -i 's/\<WAIT_TIMEOUT\>/TEST_WAIT_TIMEOUT/g' $(git grep -l 'WAIT_TIMEOUT' ./src/) -END VERIFY SCRIPT-
…nLockTime`, `nSequence`) 9f28120 kernel: Add API function for getting a tx input's nSequence (Sebastian Falbesoner) 6b64b18 kernel: Add API function for getting a tx's nLockTime (Sebastian Falbesoner) Pull request description: This PR introduces two new C API functions to libbitcoinkernel: * `btck_transaction_get_locktime` to access a transaction's `nLockTime` value * `btck_transaction_input_get_sequence` to access a transaction input's `nSequence` value Inspired by https://bnoc.xyz/t/forward-compatible-coinbase-locktimes-for-bip-54. After reading this I thought it would be a nice/useful showcase to check BIP54 compliance of (historical) blocks using bitcoinkernel, without having to manually deserialize the transaction (this is just about one of the four BIP54 rules though, especially the sigops limit is much more involved). ACKs for top commit: sedited: ACK 9f28120 yuvicc: ACK 9f28120 stickies-v: ACK 9f28120 Tree-SHA512: 9eae795d6e4b9b367bbfe2665b916121ef64031e8d10667c71741344b5eea4c2562862a937bdf1363cc66b67bb5d48392c9f44e52f0d92d2a5a65e10d061b703
…w-ups) 39e3295 test(miniscript): Check for depth rather than script size (Hodlinator) 5af5e87 test(miniscript): Make tested script valid (Hodlinator) fd7c494 doc(miniscript): Explain why we operate on vectors (Hodlinator) da51b5e refactor(miniscript): Move keys to avoid copy (Hodlinator) Pull request description: * Add missing move #31713 (comment) * Document reason behind moving entire `vector`s #31713 (comment) * Make miniscript valid and improve test name #31713 (comment) * Check for miniscript node depth rather than script size #31713 (comment) ACKs for top commit: l0rinc: ACK 39e3295 sedited: ACK 39e3295 darosior: Github light ACK 39e3295. Code looks correct to me. I don't understand why i'm co-author of the last commit, since i did not author any code in there. 🤷 Tree-SHA512: 88c240183d7ebe93e3a1d3d65969b435775190f15d2845b58dbd16938553bb6490ab57400544f90a5a3f9a73245dce769ffc4868ae6fb7513f7db46743bfb9e1
Including the missing `<span>` header in `serialize.h` allows IWYU to correctly evaluate its redundancy elsewhere.
…le -Wcovered-switch-default fa4ec13 build: Enable -Wcovered-switch-default (MarcoFalke) fa2670b refactor: Enable -Wswitch in exhaustive switch (MarcoFalke) Pull request description: The compiler flag `-Wswitch` is enabled. However, it can not fire when a `default:` case exists. Fix that by removing the default case where a switch is already handling all cases exhaustively. Also, enable `-Wcovered-switch-default` to catch those cases at compile time in the future. Also, apply the comment according to the dev notes. Can be reviewed via `--ignore-all-space` ACKs for top commit: stickies-v: re-ACK fa4ec13, no changes except for addressing silent merge conflict from d339884 l0rinc: ACK fa4ec13 achow101: ACK fa4ec13 sedited: ACK fa4ec13 Tree-SHA512: 8dd9e71a8cd338255f43448a59a1a4d40a9fc16e19a707cc10fb71442d4df9f82a0e5fae77868ef49cd0ea27fdd972687572c1a50b6aba7e08c6ce87576afc6a
d8f4e7c doc: add release notes (ismaelsadeeq) 248c175 test: ensure `ValidateInputsStandardness` optionally returns debug string (ismaelsadeeq) d2716e9 policy: update `AreInputsStandard` to return error string (ismaelsadeeq) Pull request description: This PR is another attempt at #13525. Transactions that fail `PreChecks` Validation due to non-standard inputs now returns invalid validation state`TxValidationResult::TX_INPUTS_NOT_STANDARD` along with a debug error message. Previously, the debug error message for non-standard inputs do not specify why the inputs were considered non-standard. Instead, the same error string, `bad-txns-nonstandard-inputs`, used for all types of non-standard input scriptSigs. This PR updates the `AreInputsStandard` to include the reason why inputs are non-standard in the debug message. This improves the `Precheck` debug message to be more descriptive. Furthermore, I have addressed all remaining comments from #13525 in this PR. ACKs for top commit: instagibbs: ACK d8f4e7c achow101: ACK d8f4e7c sedited: Re-ACK d8f4e7c Tree-SHA512: 19b1a73c68584522f863b9ee2c8d3a735348667f3628dc51e36be3ba59158509509fcc1ffc5683555112c09c8b14da3ad140bb879eac629b6f60b8313cfd8b91
…2809c3451624d3 3293e9a guix: document when GCC SSA gen patch can be removed (fanquake) 978023f guix: use latest glibc 2.31 (fanquake) ab9a98b guix: combine gcc-libgcc-patches with base-gcc (fanquake) 2276426 guix: switch to upstream python-oscrypto package (fanquake) feea2a8 ci: use LIEF 0.17.5 in lint job (fanquake) a7524f5 guix: switch to upstream python-lief package (fanquake) 2bf97e8 guix: switch to upstream osslsigncode package (fanquake) dc0ddab guix: drop CMake workaround (fanquake) 31eb46f guix: update to c5eee3336cc1d10a3cc1c97fde2809c3451624d3 (fanquake) 0f323e1 guix: add --no-same-owner to TAR_OPTIONS (fanquake) Pull request description: Update the Guix time-machine to [c5eee3336cc1d10a3cc1c97fde2809c3451624d3](https://codeberg.org/guix/guix/commit/c5eee3336cc1d10a3cc1c97fde2809c3451624d3). Package updates: binutils 2.41 -> 2.44 cmake-minimal 3.24.2 -> 3.31.10 diffutils 3.10 -> 3.12 file 5.45 -> 5.46 git-minimal 2.46.0 -> 2.52.0 (base) glibc 2.39 -> 2.41 gzip 1.13 -> 1.14 linux-headers 6.1.119 -> 6.1.166 LLVM/Clang 19.1.4 -> 19.1.7 mingw-w64 12.0.0 -> 13.0.0 nsis 3.10 -> 3.11 python-minimal 3.10 -> 3.11 CMake 4.x becomes available. Clang/LLVM 20 & 21 become available. Switch to upstream `osslsigncode` (2.13, `python-lief` (0.17.5) and `python-oscrypto` (1.3.0) packages. Update glibc to the latest commit on the `2.31` branch. Could be used for #32764. ACKs for top commit: pinheadmz: ACK 3293e9a achow101: ACK 3293e9a sedited: ACK 3293e9a willcl-ark: ACK 3293e9a Tree-SHA512: 46fe11281911be44ef34d9f19b4c2678f2e4628b4badc12ea4cc17cf3e1d693060cc70f0030b0ac53efae1172ceb61af447368dc4d69f5b2707c06e99206d6cf
e76e886 guix: doc: zdiff3 doesn't work (David Gumberg) ea1be38 guix: doc: Suggest guix-install.sh --uninstall (David Gumberg) Pull request description: Add a note about guix issues with git `merge.conflictstyle` being set to `zdiff3`, and add information about how to uninstall for users of `guix-install.sh` ACKs for top commit: achow101: ACK e76e886 hebasto: ACK e76e886. sedited: utACK e76e886 Tree-SHA512: e9edc49851579c52e7ac762221d0bb51c928da4dff5566ece766af7f7eb75466831a76f885ccc5a26207c84b846e3f42bae26e80ddece3df1611de2c2320c28a
ddf2a06 Fix compatibility with `-debuglogfile` command-line option (Hennadii Stepanov) Pull request description: This PR avoids hardcoding the "debug.log" filename, ensuring compatibility with custom filenames provided via the `-debuglogfile` command-line option. ACKs for top commit: maflcko: review ACK ddf2a06 🐪 achow101: ACK ddf2a06 sedited: ACK ddf2a06 Tree-SHA512: bcf8f4e9407ed6108dbb7bfee673a6a486cd0afaaf1dcfb7aaa2d2c6a85488f9c57557b53033efa5eed723ec842c87c4616b6c078f049787e634cc02cbb740ea
…lures fa71c6e ci: Avoid intermittent Windows generate download failures (MarcoFalke) Pull request description: The CI Windows step to generate the build system is problematic, because with a clean cache, it will download artifacts over the network. This may intermittently fail due to intermittent network issues. Fix this issue, like all other network issues in CI, by retrying once. ACKs for top commit: hodlinator: ACK fa71c6e hebasto: ACK fa71c6e, I have reviewed the code and it looks OK. Tree-SHA512: 9915e84b6015116cce86a25b4f77e545baef1f26fabe767c8bb07a009b075f76c27f9172dd23f78aa8017fd611cea850b1e985a357bd0b24543e63e1fd85cb6d
…OUT` 658e68f scripted-diff: Rename `WAIT_TIMEOUT` to `TEST_WAIT_TIMEOUT` (Hennadii Stepanov) Pull request description: On Windows, the `winerror.h` header defines `WAIT_TIMEOUT` as a macro. This introduces a fragile dependency on header inclusion order: if Windows headers happen to be included before using `WAIT_TIMEOUT`, the preprocessor expands it into a numeric literal, causing syntax errors. Rename the variable to `TEST_WAIT_TIMEOUT` to remove this fragility and avoid the collision entirely. Split from #34448. Similar to #34454. ACKs for top commit: w0xlt: ACK 658e68f Tree-SHA512: 90cf8927e4e41dee24d51fb2ea3335526ff5da4180c24d776d59b642794715b3c6558628088fbc28236d6ac4fffb9a27167fe309cb94ebf04f04c6e5cf957ad5
b14f2c7 tests: applied PYTHON_GIL to the env for every test (kevkevinpal) Pull request description: ## Summay If a user is running python3.14.0t they would see a warning log that would fail the integration test suite. This change adds `PYTHON_GIL=1` to the env when running our functional test suite to ensure that the tests pass for users running python3.14.0t and are not manually setting `PYTHON_GIL=1`. This resolves #33582 ### Tests before and after #### Before ``` ./build/test/functional/test_runner.py interface_ipc.py Temporary test directory at /tmp/test_runner_₿_🏃_20260319_142327 Remaining jobs: [interface_ipc.py] 1/1 - interface_ipc.py failed, Duration: 2 s stdout: 2026-03-19T18:23:27.330123Z TestFramework (INFO): PRNG seed is: 4933091336597497631 2026-03-19T18:23:27.380917Z TestFramework (INFO): Initializing test directory /tmp/test_runner_₿_🏃_20260319_142327/interface_ipc_0 2026-03-19T18:23:28.625944Z TestFramework (INFO): Running echo test 2026-03-19T18:23:28.635856Z TestFramework (INFO): Running mining test 2026-03-19T18:23:28.648965Z TestFramework (INFO): Running deprecated mining interface test 2026-03-19T18:23:28.653589Z TestFramework (INFO): Running disconnect during BlockTemplate.waitNext 2026-03-19T18:23:28.821124Z TestFramework (INFO): Running thread busy test 2026-03-19T18:23:29.195589Z TestFramework (INFO): Stopping nodes 2026-03-19T18:23:29.299135Z TestFramework (INFO): Cleaning up /tmp/test_runner_₿_🏃_20260319_142327/interface_ipc_0 on exit 2026-03-19T18:23:29.299329Z TestFramework (INFO): Tests successful stderr: <frozen importlib._bootstrap>:491: RuntimeWarning: The global interpreter lock (GIL) has been enabled to load module 'capnp.lib.capnp', which has not declared that it can run safely without the GIL. To override this behavior and keep the GIL disabled (at your own risk), run with PYTHON_GIL=0 or -Xgil=0. TEST | STATUS | DURATION interface_ipc.py | ✖ Failed | 2 s ALL | ✖ Failed | 2 s (accumulated) Runtime: 2 s ``` #### After ``` ./build/test/functional/test_runner.py interface_ipc.py Temporary test directory at /tmp/test_runner_₿_🏃_20260319_142221 Remaining jobs: [interface_ipc.py] 1/1 - interface_ipc.py passed, Duration: 2 s TEST | STATUS | DURATION interface_ipc.py | ✓ Passed | 2 s ALL | ✓ Passed | 2 s (accumulated) Runtime: 2 s ``` ACKs for top commit: maflcko: review ACK b14f2c7 fanquake: ACK b14f2c7 Tree-SHA512: e5862d2e9211154d4834c88864e8c4e35de195986511ba151871d39266d177e0718960b28020e815ef6b353a0d82800b7cb68e9a6dee82fc85f12d8705e787a8
This refactor makes the field a bit more type-safe.
This also better reflects the meaning and use.
…mestamp faaea78 refactor: Use current_time over redundant call to Now() (MarcoFalke) 3333c50 refactor: Use NodeClock::time_point for m_addr_token_timestamp (MarcoFalke) fa55723 move-only: Extract ProcessAddrs() helper (MarcoFalke) Pull request description: It is a bit confusing to have some code use the deprecated `GetTime`, which returns a duration and not a time point, and other code to use `NodeClock` time points. Fix one place `m_addr_token_timestamp` to use `NodeClock::time_point`. Also: * Extract a `ProcessAddrs` helper, similar to the other `Process*()` helpers, to cut down the `ProcessMessage` with a massive scope. * Rename the confusing `current_a_time` to `now_seconds`. (The `a` in this context refers to the removed "adjusted" time, see commit fadd8b2, which removed adjusted time here) ACKs for top commit: l0rinc: ACK faaea78 ajtowns: reACK faaea78 sedited: Re-ACK faaea78 Tree-SHA512: 67ad13e9d7b88e08e3d723e6b7cd598b38df2a004f5c2338b24f2992e25ae9d8fb8e5325c9c94171e551fe86d87e3e3ec1fe6baae64edbf6b5c125f408ee64e4
1. Use `build_os` instead of `host_os` for native packages. 2. `XCODE_VERSION` is available only for `darwin` hosts. Therefore, simply disable the Xcode version check for `native_qt`.
a1f22a0 test: Suppress another unsolicited `mock_process/*` output (Hennadii Stepanov) Pull request description: This is a follow-up to #33929. The[ `mock_process/*`](https://github.com/bitcoin/bitcoin/blob/390e7d61bd531505bb3d13f38316c282b85ed1dd/src/test/mock_process.cpp#L10) test cases, which serve as helpers for [`system_tests`](https://github.com/bitcoin/bitcoin/blob/390e7d61bd531505bb3d13f38316c282b85ed1dd/src/test/system_tests.cpp#L23) rather than actual tests, are invoked in a way that suppresses unsolicited output to stdout or stderr to keep the test results reproducible. However, in debug builds, the Windows CRT still prints false-positive memory leak dumps to stderr. This PR handles this specific case and documents the other suppressions. ACKs for top commit: maflcko: lgtm ACK a1f22a0 sedited: ACK a1f22a0 Tree-SHA512: 480f0f74ce50b6fb315bfeb6f6d3a4a4791557a6177aa995197c002bf871f878573df0f313344206f82e4d54c7a62d7cea2fdcb8cd96475b4b6cc7d4ffaf0538
This makes `threadsafety.h` agnostic to the actual implementation.
74f71c5 Remove Taproot activation height (Sjors Provoost) Pull request description: Drop `DEPLOYMENT_TAPROOT` from `consensus.vDeployments`. Now that the commit (7c08d81) which changes taproot to be enforced for all blocks is included in v24.0, it seems a good time to remove no longer needed non-consensus code. Clarify what is considered a `BuriedDeployment`. We drop taproot from `getdeploymentinfo` RPC, rather than mark it as `buried`, because this is not a buried deployment in the sense of [BIP 90](https://github.com/bitcoin/bips/blob/master/bip-0090.mediawiki). This is because the activation height has been completely removed from the code, unlike the hardcoded `DEPLOYMENT_SEGWIT` height which is still relied on.[^1] See discussion in #24737 and #26162. [^1]: `DEPLOYMENT_SEGWIT` is used in `IsBlockMutated` to determine if witness data is allowed, it's used for [BIP147](https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki), to trigger `NeedsRedownload()` for users who upgraded after a decade, and for a few other things. ACKs for top commit: ajtowns: reACK 74f71c5 achow101: ACK 74f71c5 sedited: Re-ACK 74f71c5 darosior: utACK 74f71c5 Tree-SHA512: 217e0ee2e144ccfb04cf012f45b75d08f8541287a5531bd18aa81e38bad2f38d28b772137f471c46b63875840ec044cb61a2a832e3a9e89a6183e8ab36b1b9c9
…rivacy mode is set during wallet selection 0dc337f gui: Fix TransactionsView on setCurrentWallet (pablomartin4btc) Pull request description: <details> <summary>Currenlty on <code>master</code>, when the "mask values" checkbox is ticked if the user selects a different wallet, the history action is enable and if the user clicks on it can see all the transactions in the transaction view.</summary>  </details> <details> <summary>This PR fixes it.</summary>  </details> Note for maintainers: this needs to be backported to 25.x and 26.x. ACKs for top commit: hebasto: ACK 0dc337f, tested on Fedora 43. Tree-SHA512: 54581546917f87b4c1db0ff1eaa1962ee6eb078285dbb205b4c8d027c3e350f3dc46409b376948c10e668f9487b7a5a70bab0dff5faf510deab1a54452f7f0e5
7a9304f depends: Fix cross-compiling on macOS for Windows (Hennadii Stepanov) Pull request description: 1. Use `build_os` instead of `host_os` for native packages. 2. `XCODE_VERSION` is available only for `darwin` hosts. Therefore, simply disable the Xcode version check for `native_qt`. Fixes #34874. ACKs for top commit: fanquake: ACK 7a9304f Tree-SHA512: ef3349de19f3cdb6f445d44f8650815ded5dbe359faafc02941b2f2f0296905aaaac67a4916372b17de58bebabcbcdcbc21af6fe255ebb8f4cdfab00ff257602
…r improvements 0fe6fcc doc: Document rationale for using `IWYU pragma: export` (Hennadii Stepanov) cfa3b10 iwyu, doc: Document `IWYU pragma: export` for `<logging/categories.h>` (Hennadii Stepanov) 015bea0 iwyu, doc: Document `IWYU pragma: export` for `<chrono>` (Hennadii Stepanov) 48bfcfe iwyu, doc: Document `IWYU pragma: export` for `<threadsafety.h>` (Hennadii Stepanov) 179abb3 refactor: Move `StdMutex` to its own header (Hennadii Stepanov) 6d2952c serialize: Add missing `<span>` header (Hennadii Stepanov) Pull request description: This PR is a prerequisite for #34448. It was split into a separate PR to limit the scope and minimize potential merge conflicts. The first commit improves the accuracy of IWYU suggestions within our heavily templated code. Note that, for now, the `serialize.h` header itself is excluded from IWYU inspection because it lacks a corresponding source file. The remaining commits follow the Developer Notes [guidance](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#using-iwyu): > Use `IWYU pragma: export` very sparingly, as this enforces transitive inclusion of headers and undermines the specific purpose of IWYU. ACKs for top commit: maflcko: review ACK 0fe6fcc 👤 ajtowns: utACK 0fe6fcc Tree-SHA512: dc2d4e3ff78b9707a1a26cb9b1c0a456de0d33c59e773bbf692344c2fceaff8936317479c5e898038f29134bc0e5d9d1ef7350e53512dd8e262f46ede578c4f9
578525d depends: Remove no longer necessary `dsymutil` (Hennadii Stepanov) Pull request description: I can't see where `dsymutil` is used. For example, a shared library under LTO builds fine: ``` cmake -B build --toolchain depends/arm64-apple-darwin/toolchain.cmake -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DBUILD_KERNEL_LIB=ON -DBUILD_SHARED_LIBS=ON cmake --build build -t libbitcoinkernel ``` ACKs for top commit: fanquake: ACK 578525d Tree-SHA512: 41e7601e26f639383bfa78ceb97e45d03e6cf098cf636bc4f3274360516bb78753aacfd89c8541b38ee4f39cbbf7c7b7a6eb8dc9a653f4438392cd61678e80ce
fa70b9e ci: Temporarily use clang in valgrind tasks (MarcoFalke) faf3ef4 ci: Clarify why valgrind task has gui disabled (MarcoFalke) fadb771 test: Scale feature_dbcrash.py timeout with factor (MarcoFalke) Pull request description: valgrind currently does not work on GCC compiled executables, due to an upstream bug. https://bugs.kde.org/show_bug.cgi?id=472329 So temporarily switch to clang, so that a long term solution can be figured out in the meantime. ACKs for top commit: l0rinc: ACK fa70b9e fanquake: ACK fa70b9e - also checked that it doesn't currently work under aarch64. Tree-SHA512: 2e7c7a709311efa7bf29c3f9b1db60886b189b2d2bfebb516062163d65f0d7e8de3b6fc21c94cd62f6bd7e786e9c36fba55c4bae956b849851eb8b08e772c03e
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
build: Drop ZeroMQ patch for glibc < 2.12 (Hennadii Stepanov)
079df96 build: Drop ZeroMQ patch for Mingw-w64 < 4.0 (Hennadii Stepanov)