. #33708
pull mccoyadd wants to merge 243 commits into bitcoin:master from mccoyadd:29.x changing 213 files +8677 −11789-
mccoyadd commented at 4:30 am on October 26, 2025: none
-
153bd443ec
[build] bump CLIENT_VERSION_MAJOR to 29
Github-Pull: #32041 Rebased-From: a3f0e9a
-
[build] bump version to 29.0rc1 95c21b1fdd
-
[doc] update man pages for 29.0rc1 86a3ce6209
-
[examples] generate example bitcoin.conf 21f423939e
-
[doc] release notes link for 29.0 47e2fa86dc
-
e9e6825b8c
Merge bitcoin/bitcoin#32046: [29.x] bump to v29.0rc1
47e2fa86dc5433852fd9e5050a23de2accfdca8d [doc] release notes link for 29.0 (glozow) 21f423939e521aa61b96689b9f8ee61c59abf5eb [examples] generate example bitcoin.conf (glozow) 86a3ce62096b2faefd01366a6f300fff6f8b9c0b [doc] update man pages for 29.0rc1 (glozow) 95c21b1fdd14f89d762b46b0162bd2fcca1e5a93 [build] bump version to 29.0rc1 (glozow) 153bd443ecf1bfabf3a78eb82fbbc901137c4ba0 [build] bump CLIENT_VERSION_MAJOR to 29 (glozow) Pull request description: - "backport" #32041 - bump version to v29.0rc1 - generate manpages - add example bitcoin.conf - add release-notes.md pointing to wiki ACKs for top commit: achow101: ACK 47e2fa86dc5433852fd9e5050a23de2accfdca8 davidgumberg: ACK https://github.com/bitcoin/bitcoin/commit/47e2fa86dc5433852fd9e5050a23de2accfdca8d hebasto: ACK 47e2fa86dc5433852fd9e5050a23de2accfdca8d. Tree-SHA512: 4e4eec31ab12990d933b6313950e779b7b58fc349f294f59d2504a8db3c28d5dea64b79e588e2c0fe62836db306fb4c3fb3fcd7bd1f51350e880370cec3437d6 -
80c5d57bd1
contrib: Fix `gen-bitcoin-conf.sh`.
In #31118, the format of bitcoind's `--help` output changed slightly in a way that breaks `gen-bitcoin-conf.sh`, modify the script to accomodate the new format, by starting after the line that says "Options:" and strip the `-help` option and its description from the output. Github-Pull: #32049 Rebased-From: a24419f8bed5e1145ce171dbbdad957750585471
-
15ecae31a8
fuzz: Always restrict base conversion input lengths
They seem to cause timeouts: > Issue 397734700: bitcoin-core:base58check_encode_decode: Timeout in base58check_encode_decode The `encoded_string.empty()` check was corrected here to `decoded.empty()` to make sure the `(0, decoded.size() - 1)` range is always valid. Github-Pull: #31917 Rebased-From: bad1433ef2b5b02ac4b1c6c1d9482c513e5b2192 Co-authored-by: maflcko <6399679+maflcko@users.noreply.github.com> Co-authored-by: marcofleon <marleo23@proton.me> Co-authored-by: Martin Zumsande <mzumsande@gmail.com>
-
458655bca8
fuzz: make sure DecodeBase58(Check) is called with valid values more often
In Base58 fuzz the two roundtrips are merged now, the new `decode_input` switches between a completely random input and a valid encoded one, to make sure the decoding passes more often. The `max_ret_len` can also exceed the original length now and is being validated more thoroughly. Github-Pull: #31917 Rebased-From: d5537c18a9034647ba4c9ed4008abd7fee33989e Co-authored-by: maflcko <6399679+maflcko@users.noreply.github.com> Co-authored-by: marcofleon <marleo23@proton.me>
-
5ebcb59fdb
test: fix intermittent failure in p2p_orphan_handling.py
If we bump the mocktime before the node has successfully disconnected the peer, the requests for both parents could be spread over two GETDATAS, which would make the test fail. Github-Pull: #32063 Rebased-From: 02942056fd861581503a8a35a06dcf22d4ba1473
-
7ff0b02161
build: Remove manpages when making MacOS app
Github-Pull: #32064 Rebased-From: 80b5e7f2cb7fbfbd724e1f52b00c0e72b79a200b
-
4e438d326e
build: use make < 3.82 syntax for define directive
From the GNU make 3.82 release announcement: * The 'define' make directive now allows a variable assignment operator after the variable name, to allow for simple, conditional, or appending multi-line variable assignment. macOS ships with 3.81. This caused the multiprocess config options to be ignored. Fixes #32068 Github-Pull: #32070 Rebased-From: 9157d9e449870851ef455e077249ac46fc2df24c Co-authored-by: Ryan Ofsky <ryan@ofsky.org>
-
a4c30bd00a
qt: doc: adapt outdated binary paths to CMake changes
Github-Pull: bitcoin-core/gui#858 Rebased-From: 7ebc458a8cb994bc3c0c129da61353968d955bc2
-
[build] bump to 29.0rc2 472d582bfe
-
[doc] update man pages for 29.0rc2 8082f88d1a
-
[doc] update example bitcoin.conf with missing options 74df31cb0b
-
d6db87165c
Merge bitcoin/bitcoin#32062: [29.x] backports and rc2
74df31cb0bdef9cce31ae62ed71a1e386cba0274 [doc] update example bitcoin.conf with missing options (glozow) 8082f88d1a434b3ba1018c6592affe759d53df48 [doc] update man pages for 29.0rc2 (glozow) 472d582bfec4dcdecb5f4d9bbbe41ea7961ca62b [build] bump to 29.0rc2 (glozow) a4c30bd00a0ec977a1518416cdf7f0a24868a9f2 qt: doc: adapt outdated binary paths to CMake changes (Sebastian Falbesoner) 4e438d326ea55ac0f98f89e41e69b56354e801e7 build: use make < 3.82 syntax for define directive (Sjors Provoost) 7ff0b02161a1687b8bee6af0ff93ec65bbfc6cf2 build: Remove manpages when making MacOS app (Ava Chow) 5ebcb59fdb1270edac6b878d7bd97dd1f077aa06 test: fix intermittent failure in p2p_orphan_handling.py (Martin Zumsande) 458655bca8eddd4d913958c579a46a6fca23cbf6 fuzz: make sure DecodeBase58(Check) is called with valid values more often (Lőrinc) 15ecae31a83ea66985496d2b8f2017cbd7749c26 fuzz: Always restrict base conversion input lengths (Lőrinc) 80c5d57bd118b1812c21604224dd316214af879c contrib: Fix `gen-bitcoin-conf.sh`. (David Gumberg) Pull request description: backports: - #32049 - #32063 - #32064 - #32070 - #31917 ACKs for top commit: Sjors: ACK 74df31cb0bdef9cce31ae62ed71a1e386cba0274 hebasto: ACK 74df31cb0bdef9cce31ae62ed71a1e386cba0274, I have reviewed the code and it looks OK. ismaelsadeeq: Code review ACK 74df31cb0bdef9cce31ae62ed71a1e386cba0274 Tree-SHA512: df4ef832a03c9c3f89d30d3f65d81b7c7e4793d2cad8a269f1ff221454a4b0b05e06109f4556926c1c4f7fcbd2537052b4d58b4b3911dfcfc35726c600b587d9 -
a3060483fa
test: avoid disk space warning for non-regtest
feature_config_args.py incorrectly assumed that its testnet4 node would not log a disk space warning. 0683b8ebf33386d5c05140df89df10b1853d7c7e increased m_assumed_blockchain_size on testnet4 from 1 to 11 GiB which triggers this bug on more systems, e.g. a RAM disk. Prevent the warning by setting -prune for these nodes. Fix the same issue in feature_signet.py Github-Pull: #32057 Rebased-From: 20fe41e9e83d510fd467f5a999d55a614b16ef89
-
288163ea0f
fuzz: Fix off-by-one in package_rbf target
Github-Pull: #32122 Rebased-From: fa5674c264d91eb3a99fa74ace8a1b6be113c0a8
-
7bc7af9951
fuzz: extract unsequenced operations with side-effects
https://github.com/bitcoin/bitcoin/pull/30746#discussion_r1817851827 introduced an unsequenced operations with side-effects - which is undefined behavior, i.e. the right hand side can be evaluated before the left hand side, which happens to mutate it. Tried: ``` clang++ --analyze -std=c++20 -I./src -I./src/test -I./src/test/fuzz src/test/fuzz/base_encode_decode.cpp src/psbt.cpp ``` but it didn't warn about UB. Grepped for similar ones, but could find any other one in the codebase: > grep -rnE --include='*.cpp' --include='*.h' '\b(\w+)\(([^)]*\b(\w+)\b[^)]*)\)\s*==\s*\3\.' . ``` ./src/test/arith_uint256_tests.cpp:373: BOOST_CHECK(R1L.GetHex() == R1L.ToString()); ./src/test/arith_uint256_tests.cpp:374: BOOST_CHECK(R2L.GetHex() == R2L.ToString()); ./src/test/arith_uint256_tests.cpp:375: BOOST_CHECK(OneL.GetHex() == OneL.ToString()); ./src/test/arith_uint256_tests.cpp:376: BOOST_CHECK(MaxL.GetHex() == MaxL.ToString()); ./src/test/fuzz/cluster_linearize.cpp:565: assert(depgraph.FeeRate(best_anc.transactions) == best_anc.feerate); ./src/test/fuzz/cluster_linearize.cpp:646: assert(depgraph.FeeRate(found.transactions) == found.feerate); ./src/test/fuzz/cluster_linearize.cpp:765: assert(depgraph.FeeRate(chunk_info.transactions) == chunk_info.feerate); ./src/test/fuzz/base_encode_decode.cpp:95: assert(DecodeBase64PSBT(psbt, random_string, error) == error.empty()); ./src/test/fuzz/key.cpp:102: assert(pubkey.data() == pubkey.begin()); ./src/test/skiplist_tests.cpp:42: BOOST_CHECK(vIndex[from].GetAncestor(0) == vIndex.data()); ./src/script/signingprovider.cpp:535: ComputeTapbranchHash(node.sub[1]->hash, node.sub[1]->hash) == node.hash) { ./src/pubkey.h:78: return vch.size() > 0 && GetLen(vch[0]) == vch.size(); ./src/cluster_linearize.h:881: Assume(elem.inc.feerate.IsEmpty() == elem.pot_feerate.IsEmpty()); ``` Hodlinator deduced the UB on Windows in https://github.com/bitcoin/bitcoin/issues/32135#issuecomment-2751723855 Github-Pull: #32141 Rebased-From: b1de59e8965354fff5a149bc0fe61ed0704aea7a Co-authored-by: Hodlinator <172445034+hodlinator@users.noreply.github.com> -
477345207b
cmake: Add `NO_CACHE_IF_FAILED` option for checking linker flags
Use it for checking `-fsanitize`. This change improves the user experience when the configuration step fails due to a missing library. Now, there is no need to manually clean the CMake cache after installing the required library. Github-Pull: #32027 Rebased-From: 52ac17757eed5056d03a6861bcc24ee864c17385
-
c0756b758f
depends: set CMAKE_*_COMPILER_TARGET in toolchain
According to the CMake docs, this is the correct way to setup a toolchain file for cross-compilation using Clang. See https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-using-clang Internally it looks like CMake will only take this variable into account if it detects the compiler to be Clang, so this shouldn't effect other builds, but in the case of our Apple cross builds, we'd end up with a duplicated `--target=arm64-apple-darwin` on the compiler line, given we are already setting `--target` for Darwin builds. Would fix #31748. Github-Pull: #31849 Rebased-From: 963355037fe78eb4fbdda8631ac05a7b07fcec8c
-
[build] bump to 29.0rc3 7c05ef5673
-
[doc] update man pages for 29.0rc3 f80ab9a5d8
-
1344d3bd0f
Merge bitcoin/bitcoin#32136: [29.x] backports and 29.0rc3
f80ab9a5d8cd5418655fe1a6f01c77926e2cc2e5 [doc] update man pages for 29.0rc3 (glozow) 7c05ef567328031641b7197b30508d0989bd15a7 [build] bump to 29.0rc3 (glozow) c0756b758fc1a458f18ccfb01127769ed39d744e depends: set CMAKE_*_COMPILER_TARGET in toolchain (fanquake) 477345207b895038a07d8ecb472d3c95b033dcc1 cmake: Add `NO_CACHE_IF_FAILED` option for checking linker flags (Hennadii Stepanov) 7bc7af995102c6b360f61a389060e712de79f4ad fuzz: extract unsequenced operations with side-effects (Lőrinc) 288163ea0fe1a69d8dabbc5b3d2877cc8f9b1c43 fuzz: Fix off-by-one in package_rbf target (MarcoFalke) a3060483fa2ecc4696d1214dfe6030195c572df0 test: avoid disk space warning for non-regtest (Sjors Provoost) Pull request description: Backports + final changes for 29.0rc3. Backports: - #32057 - #32122 - #32141 - #32027 - #31849 ACKs for top commit: hebasto: ACK f80ab9a5d8cd5418655fe1a6f01c77926e2cc2e5, I've verified back-ports locally and reviewed release related changes. fanquake: ACK f80ab9a5d8cd5418655fe1a6f01c77926e2cc2e5 Tree-SHA512: 15c882eac98825c41859859af1621e63a5b9d98f3b492c451c14f2d2232220dfa8d1ef933adae773918e188c6ade085f254f2853ff078bf1f99b8cd77facb182 -
[doc] copy over Release Notes draft from wiki 50108104d7
-
[build] bump to 29.0 final 190e718e83
-
[doc] update man pages for 29.0 977db54233
-
56ed476a29
Merge bitcoin/bitcoin#32241: [29.x] 29.0 final changes
977db54233ef06f70cf9723b46fbcd1936c95be0 [doc] update man pages for 29.0 (glozow) 190e718e8382dda25891e709588111dc54e18be0 [build] bump to 29.0 final (glozow) 50108104d7c5800ce5be7c8accda835aa88c92b9 [doc] copy over Release Notes draft from wiki (glozow) Pull request description: There weren't any reports from rc2 and rc3 binaries have been up since April 2 (1 week ago). ACKs for top commit: hebasto: ACK 977db54233ef06f70cf9723b46fbcd1936c95be0. janb84: ACK [977db54](https://github.com/bitcoin/bitcoin/commit/977db54233ef06f70cf9723b46fbcd1936c95be0) laanwj: ACK 977db54233ef06f70cf9723b46fbcd1936c95be0 Tree-SHA512: f0dee957c56a7b24cc361b0450efeaaad5ead6401ba649f8af6cf5cb464fea4357e1eaedaaa80accdeb18d47321a604979c43be57e14aa3ae5603d083e7df250 -
87e53781f7
doc: minor rel notes changes
Remove two unused headers. Remove the empty-template, as point releases will modify release-notes.md.
-
f490f5562d
Merge bitcoin/bitcoin#32252: [29.x] doc: minor rel notes changes
87e53781f7d54d0582b9d14bc458ee474a5e5c80 doc: minor rel notes changes (fanquake) Pull request description: Remove two unused headers. Remove the empty-template, as point releases will modify `release-notes.md`. ACKs for top commit: jonatack: LGTM ACK 87e53781f7d54d0582b9d14bc458ee474a5e5c80 janb84: ACK [87e5378](https://github.com/bitcoin/bitcoin/pull/32252/commits/87e53781f7d54d0582b9d14bc458ee474a5e5c80) Tree-SHA512: 69ff0d7863c1598ab2b4daf2a7f9ca3edae513a7d5ebb85aa1b468150cfd17da2f503ac0a41dc77fe04c3670cb7d58df46b00837d08aad624f024756f575fca1 -
qt: 29.1 translations update fc60337733
-
3fad438b83
Merge bitcoin/bitcoin#32352: [29.x] qt: 29.1 translations update
fc60337733a9dffaa42e08fcbff0ab24b5f679a4 qt: 29.1 translations update (Hennadii Stepanov) Pull request description: This PR fetches the recent translation updates from Transifex. Closes https://github.com/bitcoin/bitcoin/issues/32295. **Notes for reviewers:** 1. "fr_CM" and "fr_LU" have been dropped as part of [phasing out of territory-specific translations](https://app.transifex.com/bitcoin/communication/d:402657d1-6254-4ce9-8d26-e7827652c627/?q=project%3Abitcoin). 2. The translations for the following languages, which appear to be the result of a mistake or an act of vandalism, have been discarded (also see https://github.com/bitcoin/bitcoin/pull/32004): - Czech (cs) - Danish (da) - Dutch (nl) - Vietnamese (vi) 3. Update for Silesian (szl) has been discarded as malicious. ACKs for top commit: laanwj: ACK fc60337733a9dffaa42e08fcbff0ab24b5f679a4 Tree-SHA512: 0003a3ec67553f046ac8f98f61fd799cdcdac731f417e936af6782f8559270cc4f4fa40ffd8de5b40d7988d674dbac7eab73879aec974433bdf61a7790efd2a4 -
ca70d5cb25
Remove support for RNDR/RNDRRS for aarch64 on Linux
This hardware feature is - rarely supported on SoCs (and broken on like half of the chips that support it in the first place) (#31817) - apparently not compiled into the release binary (https://github.com/bitcoin/bitcoin/issues/31817#issuecomment-2795885962) - hard to test in CI, due to unavailable of hardware Better to remove it. This reverts commit aee5404e02e203a256c1a97b629b9b107cc8bb07. Closes #31817. Github-Pull: #32248 Rebased-From: 7749d929a0d9dfe71541a22e557ea41e01df28ce
-
85f3e1de68
test: Handle empty string returned by CLI as None in RPC tests
Github-Pull: #32286 Rebased-From: a4041c77f0e20d004524868e70ff12508832c9eb
-
64552c83b2
ci: Add workaround for vcpkg's libevent package
This change is necessary for Windows GHA images, which provide CMake >= 4.0. Github-Pull: #32184 Rebased-From: ef00a28414daed2dd026b458082ed03fe9508074
-
3dbd2b3d17
refactor: Remove spurious virtual from final ~CZMQNotificationInterface
Github-Pull: #32187 Rebased-From: fa69c42fdf0aeec0546e951bc6132ab630edb9d4
-
4ed5c34abb
test: Add imports for util bpf_cflags
This is required for the next commit. Github-Pull: #32336 Rebased-From: fa0c1baaf89805182de56d6a2e8eed2265a94b40
-
3665310808
scripted-diff: Use bpf_cflags
-BEGIN VERIFY SCRIPT- ren() { sed --regexp-extended -i "s/$1/$2/g" $( git grep --extended-regexp -l "$1" ) ; } ren 'cflags=\["-Wno-error=implicit-function-declaration"\]' 'cflags=bpf_cflags()' -END VERIFY SCRIPT- Github-Pull: #32336 Rebased-From: facb9b327b9da39ce1e09ed56199be9efb19b5b8 -
5aa4956cd3
gui: crash fix, disconnect numBlocksChanged() signal during shutdown
The crash stems from the order of the shutdown procedure: We first unset the client model, then destroy the wallet controller—but we leave the internal wallet models ('m_wallets') untouched for a brief period. As a result, there’s a point in time where views still have connected signals and access to wallet models that are not connected to any wallet controller. Now.. since the clientModel is only replaced with nullptr locally and not destroyed yet, signals like numBlocksChanged can still emit. Thus, when wallet views receive them, they see a non-null wallet model ptr, and proceed to call backend functions from a model that is being torn down. As the shutdown procedure begins by unsetting clientModel from all views. It’s safe to ignore events when clientModel is nullptr. Github-Pull: gui#864 Rebased-From: 71656bdfaa6bfe08ce9651246a3ef606f923351b -
f4d9546425
qt: Replace stray tfm::format to cerr with qWarning
GUI warnings should go to the log, not to the console (which may not be connected at all). Github-Pull: gui#868 Rebased-From: edd46566bd66cea7d7f4116429fe1c11d2187ba2
-
2f6c802b54
doc: Fix fuzz test_runner.py path
This commit fixes the path listed in the documentation for the fuzz testing test_runner.py. Previously the --help option worked but running fuzz tests from the documented path did not. Github-Pull: #32353 Rebased-From: 61f238e84ac6d24d8f420c2eabcbb2980d7fcb1e
-
6ed087dede
doc: Fix test_bitcoin path
This commit fixes a couple command paths for interacting with the test_bitcoin binary within the Unit Test documentation. Github-Pull: #32389 Rebased-From: 6cbc28b8dd629062950f195facc009fd8ba86310
-
f9d2c67a0c
cmake: Respect user-provided configuration-specific flags
Github-Pull: #32356 Rebased-From: edde96376a2961dec3730331b3d171ddf972589f
-
fabf4ff237
tracing: fix invalid argument in mempool_monitor
The mempool_monitor tracing tool is incorrectly reading the reason as the first argument. Fix this! Github-Pull: #32454 Rebased-From: 31c5ebc4007884b655f2f90ca09e36e0b9ada4da
-
caec3cc41b
crypto: disable ASan for sha256_sse4 with Clang
This can alsofail to compile when optimisations are being used, see: https://github.com/bitcoin/bitcoin/issues/31913. So disable just ASan for this function under any optimisation level. Github-Pull: #32437 Rebased-From: 4e8ab5e00fa72016a7ec0e0505ca025d4e59e4d8
-
cc2fcdfc5e
cmake: Allow `WITH_DBUS` on all Unix-like systems
This change makes the `WITH_DBUS` option available on all Unix-like systems, not just Linux, thereby fixing a regression that was overlooked during the migration from Autotools. Note: Enabling D-Bus support on macOS still makes no sense, since the `Notificator` class uses the User Notification Center regardless. Github-Pull: #32469 Rebased-From: 5b7ed460c7c181f1fd34a927a09aed36284083cb
-
edd4073d70
test: Fix nTimes typo in feature_pruning test
Fix incorrect variable name in comment (nTimes -> nTime) in feature_pruning.py. This typo caused the test to always reset mine_large_blocks.nTime to 0, rather than only on the first run as intended. Github-Pull: #32312 Rebased-From: 772ba7f9ce09e836a51636524a8a96a23946d658
-
6c4e3de2ac
test: Use uninvolved pruned node in feature_pruning undo test
After fixing the nTime variable name, the test_pruneheight_undo_presence test began failing because node 2, which is involved in reorg testing, could be on a different chain than other nodes. This caused failures when trying to fetch blocks from other nodes that didn't recognize node 2's chain. Switch to using node 5 instead, which is also a pruned node but isn't involved in reorg testing, ensuring it stays on the same chain as the other nodes. This allows the block fetching to work as intended in the test. Github-Pull: #32312 Rebased-From: 2aa63d511affdcc9980b58fc4ff18b8ad10b0f8c
-
c966158426
test: Fix intermittent failure in wallet_basic.py
There could be a race with outstanding TxAddedToMempool notifications being applied to the soon-to-be created wallet. Fixes an intermittent timeout reproducable by adding a sleep to AddToWallet. Github-Pull: #32483 Rebased-From: 07350e204dedfba20da461d9cdcd469dc95e01c3
-
cf034172bf
test: fix another intermittent failure in wallet_basic.py
During init, the test framework will start using rpc after the mempool was loaded. It will not wait for postInitProcess or outstanding transactionAddedToMempool notifications, leading to a possible race, in which listunspent is being called while the tx is still in Inactive status. Prevent this by processing outstanding notifications. Github-Pull: #32483 Rebased-From: e7ad86e1ca3b0b2f2795e91c2f9959486c67dd90
-
25aa15ee7f
walletdb: Log the wallet version after it has been read from disk
Logging the wallet version before anything has been read from disk results in the wrong version being logged. Also split the last client version logging as it may not always be present to be logged. Github-Pull: #32553 Rebased-From: 359ecd3704993422eb53e3da2a7d0bea2f575ab0
-
e685b4eca2
test: Check that the correct versions are logged on wallet load
Github-Pull: #32553 Rebased-From: 39a483c8e9dcfe8ec243fa72269e1df9e75059ab
-
6c0f26d3bd
test: check that creating a wallet does not log version info
Github-Pull: #32553 Rebased-From: 4b2cd0b41ff4800c8801f2c44883eaec60a035fa
-
doc: update release notes for 29.x a0d1f69b55
-
589b56192f
Merge bitcoin/bitcoin#32292: [29.x] Backports
a0d1f69b555fa0c76df1a63a0b127c7816596107 doc: update release notes for 29.x (fanquake) 6c0f26d3bd8010391761feada93ae902b6b27221 test: check that creating a wallet does not log version info (Ava Chow) e685b4eca250a47e933c8447a2efe10cd14d2f2b test: Check that the correct versions are logged on wallet load (Ava Chow) 25aa15ee7fc6d8f941fff7be5b3abed09a2ce12a walletdb: Log the wallet version after it has been read from disk (Ava Chow) cf034172bf1fe7cc789c130f35ad470f0509d6d2 test: fix another intermittent failure in wallet_basic.py (Martin Zumsande) c9661584261b89d75d4d0869c69ef84cf51054ff test: Fix intermittent failure in wallet_basic.py (Martin Zumsande) 6c4e3de2acb7e96ce81ca691a4dac3d5d594c4bc test: Use uninvolved pruned node in feature_pruning undo test (enoch) edd4073d70642b42cea9a9e5a2c6d34f413cf7d8 test: Fix nTimes typo in feature_pruning test (enoch) cc2fcdfc5e0649c2e7c16c0ec2df7a40e8a3c454 cmake: Allow `WITH_DBUS` on all Unix-like systems (Hennadii Stepanov) caec3cc41bf3cb265800624efff14241d297f36b crypto: disable ASan for sha256_sse4 with Clang (fanquake) fabf4ff237ff99d5e77163fdfbac6cd425dd7fc7 tracing: fix invalid argument in mempool_monitor (William Casarin) f9d2c67a0c78192ce365e6e4065bb5e9198d771c cmake: Respect user-provided configuration-specific flags (Hennadii Stepanov) 6ed087dede0839cac4e4528a746f573aecd5f5f2 doc: Fix test_bitcoin path (monlovesmango) 2f6c802b549c72393fdaff44d2fd4cb501f97926 doc: Fix fuzz test_runner.py path (monlovesmango) f4d9546425ec38d78ef128a5bc7580d816b707ce qt: Replace stray tfm::format to cerr with qWarning (laanwj) 5aa4956cd3ad42e6e511625fc548f55bf95a6575 gui: crash fix, disconnect numBlocksChanged() signal during shutdown (furszy) 3665310808f58073c3cd72a5f99f19b22adccdf0 scripted-diff: Use bpf_cflags (MarcoFalke) 4ed5c34abb242494dff36409f5eef68272827a03 test: Add imports for util bpf_cflags (MarcoFalke) 3dbd2b3d178176eb410270afb7d4a7db11ff08ae refactor: Remove spurious virtual from final ~CZMQNotificationInterface (MarcoFalke) 64552c83b2b1e2d4da561d06900a70144ebfb054 ci: Add workaround for vcpkg's libevent package (Hennadii Stepanov) 85f3e1de68e845937ebc3568e26c12fc6a027a18 test: Handle empty string returned by CLI as None in RPC tests (Brandon Odiwuor) ca70d5cb2592d5227eab8b18288f060ed6305a99 Remove support for RNDR/RNDRRS for aarch64 on Linux (laanwj) Pull request description: Backports for `29.x`: - #32184 - #32187 - #32248 - #32286 - #32312 - #32336 - #32353 - #32356 - #32389 - #32437 - #32454 - #32469 - #32483 - #32553 - https://github.com/bitcoin-core/gui/pull/864 - https://github.com/bitcoin-core/gui/pull/868 ACKs for top commit: willcl-ark: crACK a0d1f69b555fa0c76df1a63a0b127c7816596107 Tree-SHA512: 72aafd17348aa4b602661efd07d48c6af6637c7349e7b032a65f46364e50094723d1c80dced71f0d5ddec59d6dafb72f0463944413a4d810a35cdca6b8272780 -
142153ee42
cmake: Add missed `SSE41_CXXFLAGS`
Github-Pull: #32551 Rebased-From: 800b7cc42ca63f2a6b245a4d327c7092289da6e1
-
e34b6fbcad
guix: accomodate migration to codeberg
See https://guix.gnu.org/blog/2025/migrating-to-codeberg/. When interacting with the old repo you may now also see: ```bash warning: redirecting to https://codeberg.org/guix/guix/ ``` Github-Pull: #32439 Rebased-From: c8d9baae942c94d64ce47ae8f67d3710e6a296bd
-
17b31fc802
doc: Add missing top-level description to pruneblockchain RPC
Previously, the `pruneblockchain` RPC help output included only the method signature and arguments, with no top-level description explaining its purpose or constraints. This PR adds a concise top-level description, improving documentation consistency and alerting users to the potential impacts of using the command. Github-Pull: #32333 Rebased-From: 135a0f0aa711b95c50aa4cbe0c38d82d647f1c8b
-
646fa1d028
test: fix sync function in rpc_psbt.py
It currently only syncs between the first two nodes, which may do nothing when the block is created on the third node. Github-Pull: #32630 Rebased-From: 4df4df45d7bc2e8be99325d40cda936aab87c083
-
4a1143b083
depends: use "mkdir -p" when installing xproto
It looks like the mkdir detection in xproto is broken on Alpine. Ensure we always use `mkdir -p`. Fixes #32494. Github-Pull: #32568 Rebased-From: df9ebbf659d5d1282289f36d7f9ee7103aa33a17
-
247ee59f55
doc: update tor docs to use bitcoind binary from path
Github-Pull: #32679 Rebased-From: 4ce53495e5e18370b7935551b3b8700faa720a33
-
c899334e36
rpc: Note in fundrawtransaction doc, fee rate is for package
Github-Pull: #32607 Rebased-From: f98e1aaf34e347088caa54403521e3b5cb55dd40
-
78688c8413
rpc, doc: update `listdescriptors` RCP help
This RPC lists all the descriptors present in the wallet, not only the ones that were imported, but also the ones generated when a new wallet is created. It can be verified by creating a new wallet and calling the `listdescriptors` RPC, which will contain 8 ranged descriptors that are created for every new wallet. Github-Pull: #32708 Rebased-From: b44514b876333a94ae242da8b1e4cee439c2d37e
-
876a7b2db5
doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md
Github-Pull: #32711 Rebased-From: 89526deddf87904619b26319e8d149cf97466868
-
23e76ef520
guix: warn and abort when SOURCE_DATE_EPOCH is set
Current behaviour will by-default use SOURCE_DATE_EPOCH from the environment without warning. This breaks the default reproducibility from a guix build. Warn when and exit when this variable is set, and FORCE_SOURCE_DATE_EPOCH is unset. Github-Pull: #32678 Rebased-From: 5c4a0f8009cef758be9412428515bfed57b0c923
-
aea8a394b1
doc: make `-DWITH_ZMQ=ON` explicit on `build-unix.md`
Github-Pull: #32696 Rebased-From: 32d4e92b9ac81858d754487bfec2fef6bed13a57
-
1b51d750ad
depends: fix SHA256SUM command on OpenBSD (use GNU mode output)
On OpenBSD, the `sha256` command by default outputs hashsums on files in "BSD" mode, looking like this: $ sha256 ~/.vimrc SHA256 (/home/thestack/.vimrc) = 6ba69d100e8c5ca0488ded6293d4e5f740a6a5d5ace96cbcf0599c18d27389e4 This is not compatible with our depends commands, which expect the hashes to be on the first column (to be extracted via `cut -d" " -f1`). Fix this by switching to GNU mode output, looking like this: $ sha256 -r ~/.vimrc 6ba69d100e8c5ca0488ded6293d4e5f740a6a5d5ace96cbcf0599c18d27389e4 /home/thestack/.vimrc Without this change, the multiprocess depends build fails with the following output: $ gmake -C depends MULTIPROCESS=1 NO_BOOST=1 NO_LIBEVENT=1 NO_QT=1 NO_QR=1 NO_WALLET=1 NO_ZMQ=1 NO_USDT=1 [ ..... ] Extracting native_libmultiprocess... sha256: /home/thestack/bitcoin/depends/work/build/x86_64-unknown-openbsd7.7/native_libmultiprocess/-2bc902f4693/.src-ipc-libmultiprocess.tar.hash: no properly formatted checksum lines found gmake: *** [funcs.mk:342: /home/thestack/bitcoin/depends/work/build/x86_64-unknown-openbsd7.7/native_libmultiprocess/-2bc902f4693/.stamp_extracted] Error 1 Github-Pull: #32690 Rebased-From: 8713e8060d504f561fed705b4aa5af7b96c36e75
-
27c533052c
doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project"
Matches /share/setup.nsi.in:14 Github-Pull: #32719 Rebased-From: 239fc4d62e73511b3ef5117706d4c5131a921955
-
7264459c0d
build: patch cmake min version on freetype
Patch cmake_minimum_required version for freetype, using the version from https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/352/diffs This fixes a failure when building with CMake 4, where compatibility with CMake versions < 3.5 has been removed (see https://cmake.org/cmake/help/latest/release/4.0.html#deprecated-and-removed-features) Github-Pull: #32693 Rebased-From: d7c37906e7b1dc1513439056d0cdb2bd341d00f1
-
a18085a18b
wallet: fix crash on double block disconnection
The wallet crashes if it processes the same block disconnection event twice in a row due to an incompatible coinbase transaction state. This happens because 'disconnectBlock' provides 'TxStateInactive' without the "abandoned" flag for coinbase transactions to 'SyncTransaction', while 'AddToWallet()' internally modifies it to retain the abandoned state. The flow is as follows: 1) On the first disconnection, the transaction state transitions from "confirmed" to "inactive," bypassing the state equality check since the provided state differs. Then, 'AddToWallet' internally updates the state to "inactive + abandoned" 2) On the second disconnection, as we provide only the "inactive" state to 'SyncTransaction()', the state equality assertion fails and crashes the wallet. Github-Pull: #31757 Rebased-From: 9ef429b6ae65f6ad3e9ac11c2d9c0a6c52beb865
-
8246c6a65f
test: wallet, coverage for crash on dup block disconnection during unclean shutdown
Co-authored-by: furszy <matiasfurszyfer@protonmail.com> Github-Pull: #31757 Rebased-From: 11f8ab140fe63857f6a93b81021efda8f90ceeda
-
ef6111bd18
depends: capnp 1.2.0
Github-Pull: #32760 Rebased-From: c7eaac326ac20a745d1bc6dbc6bc48c1b5eb46f8
-
616baf3c27
doc: taproot became always active in v24.0
Github-Pull: #32776 Rebased-From: 8ee8a951c205c5365f7557253b8fffc12e6e670c
-
3e23b47a6f
doc: fix transifex 404s
Github-Pull: #32777 Rebased-From: 53a996f122663e271efa52c45b173613b8ac635e
-
4c7ed36c96
test: Fix list index out of range error in feature_bip68_sequence.py
Github-Pull: #32765 Rebased-From: e285e691b7a311e278f89e9fe423716de1ee268b
-
5697605414
contrib: tracing: Correctly read msg type in p2p_monitor.py
Github-Pull: #32771 Rebased-From: 3473986fe10e2689fe36cc93e1e50013649ac14b
-
doc: update release notes for 29.x 0922f6bbc3
-
983b268768
Merge bitcoin/bitcoin#32589: [29.x] More backports
0922f6bbc33ac2abe3f3d9dc98dade896718864f doc: update release notes for 29.x (fanquake) 569760541407824687ef86dd1a5be9a492a5b16e contrib: tracing: Correctly read msg type in p2p_monitor.py (David Gumberg) 4c7ed36c9650065e5638d7ca5c7425c5cd50e3c7 test: Fix list index out of range error in feature_bip68_sequence.py (zaidmstrr) 3e23b47a6fafd1a46dcb731e4732079baa04ab97 doc: fix transifex 404s (fanquake) 616baf3c27ec767c530a47edac463ed60ddb8c5c doc: taproot became always active in v24.0 (Sjors Provoost) ef6111bd18c28265daaa48a2d1466fb2eff5c200 depends: capnp 1.2.0 (fanquake) 8246c6a65f5e17aeeb351a2d649799c216bbed63 test: wallet, coverage for crash on dup block disconnection during unclean shutdown (Martin Zumsande) a18085a18bb58ef6d688889c6f2d9717d8581766 wallet: fix crash on double block disconnection (furszy) 7264459c0df2b8dc0fa0d0ccab755b299878c588 build: patch cmake min version on freetype (josibake) 27c533052c307113bea548b7bcad40dbfd1fbcbe doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project" (Hodlinator) 1b51d750ad1384a67010d40d7a9f9a6b96a22e43 depends: fix SHA256SUM command on OpenBSD (use GNU mode output) (Sebastian Falbesoner) aea8a394b1b9c595d6388b714145700dc63adfe6 doc: make `-DWITH_ZMQ=ON` explicit on `build-unix.md` (Luis Schwab) 23e76ef520f5647993884e5affb54e33b9b66570 guix: warn and abort when SOURCE_DATE_EPOCH is set (will) 876a7b2db5273ef8f6864bef9c304d36047409f4 doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md (Sebastian Falbesoner) 78688c84139b3e96148b17a4133e330bf8937c03 rpc, doc: update `listdescriptors` RCP help (rkrux) c899334e36b63b530c44fe7273c951469762878c rpc: Note in fundrawtransaction doc, fee rate is for package (benthecarman) 247ee59f55cee2c6ee19203fa1d274efba054e7f doc: update tor docs to use bitcoind binary from path (ismaelsadeeq) 4a1143b083db87b6bbe158b97a4912fe73f76d09 depends: use "mkdir -p" when installing xproto (fanquake) 646fa1d028f091e281b7e9b0c45ca1040f4441d8 test: fix sync function in rpc_psbt.py (Martin Zumsande) 17b31fc80209ecd8ba0410553ca0458049b26e6a doc: Add missing top-level description to pruneblockchain RPC (nervana21) e34b6fbcad6d8a2a58713d86c9ff646a0d2f2890 guix: accomodate migration to codeberg (fanquake) 142153ee42747677db3c9d8bdb75ec5bd4cecc18 cmake: Add missed `SSE41_CXXFLAGS` (Hennadii Stepanov) Pull request description: Backports - #31757 - #32333 - #32439 - #32551 (just 800b7cc42ca63f2a6b245a4d327c7092289da6e1) - #32568 - #32607 - #32630 - #32678 - #32679 - #32690 (just 8713e8060d504f561fed705b4aa5af7b96c36e75) - #32693 - #32696 - #32708 - #32711 - #32719 - #32760 - #32765 - #32771 - #32776 - #32777 Closes #32625. ACKs for top commit: instagibbs: ACK 0922f6bbc33ac2abe3f3d9dc98dade896718864f willcl-ark: ACK 0922f6bbc33ac2abe3f3d9dc98dade896718864f Tree-SHA512: 0389e5d85fa897fdbefd37635f6ec822ca5ab48a57c4d40fdd4d1be2465c676f514b0db4d72c962ee15e0090b27ff17701e167d660eaa25f855d06bbb1fe0e6e -
e37a70bf71
build: add root dir to CMAKE_PREFIX_PATH
Nix patches cmake to remove the root directory `/` from `CMAKE_SYSTEM_PREFIX_PATH`: https://github.com/NixOS/nixpkgs/blob/428b49b28ebc8938a6d9f6c540d32d7a06713972/pkgs/by-name/cm/cmake/001-search-path.diff#L10 Without this, and when using the toolchain for depends builds, cmake's `find_path()` and `find_package()` do not know where to find dependencies, causing issues like: https://github.com/bitcoin/bitcoin/issues/32428 Adding this path back via CMAKE_PREFIX_PATH is harmless on other systems, and fixes the toolchain for Nix users. We append the `/` dir a maximum of once, as the toolchain may be called repeatedly during builds. Co-authored-by: Russell Yanofsky <russ@yanofsky.org> Co-authored-by: josibake <josibake@protonmail.com> Github-Pull: #32798 Rebased-From: e27a94596f2a1f5e04722a16165717cc6e891d36
-
5987c1b6ab
test: fix catchup loop in outbound eviction functional test
The catchup loop in the outbound eviction functional test currently has a small flaw, as the contained waiting for a `getheaders` message just waits for any such message instead of one with the intended block hash. The reason is that the `prev_prev_hash` variable is set incorrectly, since the `tip_header` instance is not updated and its field `.hash` is None. Fix that by updating `tip_header` and use the correct field -- we want the tip header's previous hash (`.hashPrevBlock`). Github-Pull: #32742 Rebased-From: dd8447f70faf6419b4617da3c1b57098e9cd66a6
-
a990c1002b
cmake: Use `HINTS` instead of `PATHS` in `find_*` commands
According to the CMake documentation, `HINTS` "should be paths computed by system introspection, such as a hint provided by the location of another item already found", which is precisely the case in the `FindQRencode` module. Entries in `HINTS` are searched before those in `PATHS`. On macOS, Homebrew’s `libqrencode` will therefore be located at its real path rather than via the symlink in the default prefix. Github-Pull: #32805 Rebased-From: ead44687483e9c936ba970de890c01d5e7ad3485
-
a3c1939d6e
cmake: Explicitly specify `Boost_ROOT` for Homebrew's package
On macOS, this change ensures that the Boost package is located at its real path rather than via the symlink in the default prefix. Github-Pull: #32814 Rebased-From: 8800b5acc1ef7abe6c5260ae0be5386b1d593a19
-
eafea2393d
init: cap -maxmempool to 500 MB on 32-bit systems
32-bit architecture is limited to 4GiB, so it doesn't make sense to set a too high value. 500 MB is chosen as an arbitrary maximum value that seems reasonable. Github-Pull: #32530 Rebased-From: 2c43b6adebbfabb3c8dd82fe821ce0a5d6173b3b
-
1c0e19b93a
node: cap -dbcache to 1GiB on 32-bit architectures
32-bit architecture is limited to 4GiB, so it doesn't make sense to set a too high value. Since this setting is performance critical, pick an arbitrary value higher than for -maxmempool but still reasonable. Github-Pull: #32530 Rebased-From: 9f8e7b0b3b787b873045a4a8194e77d0b0a2b3b6
-
4b656e2023
test: Add msgtype to msg_generic slots
Github-Pull: #32833 Rebased-From: 7dc43ea503a2c145ffd4fe14b794300bfc2bcdee
-
doc: update release notes for 29.x ef2a013e31
-
d360a6ef56
Merge bitcoin/bitcoin#32810: [29.x] More backports
ef2a013e31cf6fbded5735a998b4c992c176493d doc: update release notes for 29.x (fanquake) 4b656e2023099f1ae5fe0aab6d46c97fe161d51f test: Add msgtype to msg_generic slots (dergoegge) 1c0e19b93a876ba5503da15e1ce14315d804194b node: cap -dbcache to 1GiB on 32-bit architectures (Antoine Poinsot) eafea2393d972606678f3a825a71754558ac9d5c init: cap -maxmempool to 500 MB on 32-bit systems (Antoine Poinsot) a3c1939d6eb45be4a790b9943c81a3b15af1418a cmake: Explicitly specify `Boost_ROOT` for Homebrew's package (Hennadii Stepanov) a990c1002b50a79ba051d322a2269670e6827dd9 cmake: Use `HINTS` instead of `PATHS` in `find_*` commands (Hennadii Stepanov) 5987c1b6abaefad61d8d2cca605349354432398a test: fix catchup loop in outbound eviction functional test (Sebastian Falbesoner) e37a70bf71d05d2e355e6d0ac49c58a4b446454f build: add root dir to CMAKE_PREFIX_PATH (will) Pull request description: Backports: * #32530 * #32742 * #32798 * #32805 * #32814 * #32833 Fixes #31009. ACKs for top commit: pinheadmz: ACK ef2a013e31cf6fbded5735a998b4c992c176493d hebasto: re-ACK ef2a013e31cf6fbded5735a998b4c992c176493d. willcl-ark: ACK ef2a013e31cf6fbded5735a998b4c992c176493d Tree-SHA512: 936ccf732f9fa49acc90de8af0ebf7134aa54dbaf9533c8dfbe08cd178b87a3a091c837d5bb84d61869a69c3c7d499a565b33237b14330a6c66d9c8456d5a261 -
222fbfcc6a
test: check P2SH sigop count for coinbase tx
Github-Pull: #32850 Rebased-From: d6aaffcb11adcf47480fcc5081af9dcb732decf3
-
f82015ccfc
test: Clarify roles in outbound eviction comments
Some ambiguous uses of "we" referring to either the node or the peer are replaced with clearer phrasing. Also rephrase some comments for consistency and readability. Applies to all relevant outbound eviction tests in p2p_eviction_logic.py. Github-Pull: #32823 Rebased-From: 26598ed21ea7228c4ecf85da24527c88f9c1f1c1
-
3a57bfaaf9
test: Use rehash() in outbound eviction block-relay
Ensure that tip_header.rehash() is used instead of tip_header.hash, which is None when the header is deserialized from hex. This avoids depending on wait_for_getheaders() falling back to any received message, making the test more explicit and robust. Github-Pull: #32823 Rebased-From: ec004cdb86e6471915e1033f390c76ee0428e415
-
8a4a938db5
depends: Override host compilers for FreeBSD and OpenBSD
When building depends on FreeBSD/OpenBSD `aarch64`, the host compilers default to `default_host_{CC,CXX}`, which resolves to `gcc`/`g++`. This is incorrect on these systems, where Clang is the default system compiler. Github-Pull: #32716 Rebased-From: 4f10a57671c19cacca630b2401e42a213aacff1b -
9f3690b978
feature_taproot: sample tx version border values more
Currently if the version 3 is selected for an otherwise standard spender, the test will fail. It's unlikely but possible, so change the test to update expectations and sample more aggressively on border values to instigate failures much quicker in the future if another version is made standard. Github-Pull: #32841 Rebased-From: 4be81e9746e9e18923386d6f4945a33885fd98a7
-
59a83fb8d1
functional test: correctly detect nonstd TRUC tx vsize in feature_taproot
Github-Pull: #32859 Rebased-From: f0524cda3995cf65adab3d0ca8da0dee4e31c79b
-
e5a7575a6d
doc: Add workaround for vcpkg issue with paths with embedded spaces
Github-Pull: #32858 Rebased-From: 0a1af4418ed2a135001cc0e10f0af44cbd64e521
-
83ee49b1dc
doc: clarify that the "-j N" goes after the "--build build" part
Also, capitalized the comments in build-unix.md for uniformity with the docs on other targets. Github-Pull: #32846 Rebased-From: 0e9f409db3b7b08aef75ce39765b018b69cc8e9d
-
84c0c0e64b
test: fix incorrect subtest in `feature_fee_estimation.py`
- Update `check_smart_estimates` to calculate the fee rate ceiling by taking the maximum of fees seen, minrelaytxfee, and mempoolminfee. - Improve the subtest name and comments. Github-Pull: #32463 Rebased-From: 5c1236f04a24716b2cbd9b9b283863d3a8a6fa87
-
f85d41c224
test: retain the intended behavior of `feature_fee_estimation.py` nodes
- Increase block weight by 4000 for all nodes with custom -blockmaxweight. Prior to this commit, we generated blocks with 4000 weight units less worth of transactions. See https://github.com/bitcoin/bitcoin/issues/32461#issuecomment-2925282272 for details. This commit fixes it by increasing the block weight by 4000. Github-Pull: #32463 Rebased-From: 9b75cfda4d62a0a3bde402503244dd57e1621a12
-
58b1a65ab0
add more bad p2p ports
Github-Pull: #32826 Rebased-From: 6967e8e8abbc35ac98e8e3745a8bbed56e77526f
-
bc2147c884
depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE`
When using CMake policies 3.14 and below, the `export(PACKAGE)` command by default populates the user package registry, which is stored outside the build tree. Setting the `CMAKE_EXPORT_NO_PACKAGE_REGISTRY` variable disables this side effect. In CMake 3.15 and later, this behavior is disabled by default, and the variable has no effect. Github-Pull: #32943 Rebased-From: 44f3bae300dcafbe53f9b07e6cc22a112833e579
-
f798c317a0
cmake: Drop no longer necessary "cmakeMinimumRequired" object
Github-Pull: #32954 Rebased-From: 12a6959892cb24b940b3579828f2066651572153
-
730886b92b
depends: fix libevent _WIN32_WINNT usage
Starting with version 13.x, the mingw headers will define the value of NTDDI_VERSION, based on the value of _WIN32_WINNT, if that version is < Windows 10. Given that libevent was undefining our _WIN32_WINNT, and redefining it to a value < Windows 10 (0x0501), NTDDI_VERSION was also being defined to that value, leading to functions not being exposed in the mingw-w64 headers; see here: https://github.com/mingw-w64/mingw-w64/blob/9c2668ef77e75ea4d8a6c7d100b14643269caec3/mingw-w64-headers/include/iphlpapi.h#L36-L41. Imports a commit from usptream (a14ff91254f40cf36e0fee199e26fb11260fab49). Fixes #32707. Github-Pull: #32837 Rebased-From: f5647c6c5ae85e9469cfc5df6fcac23752e1695a
-
doc: update release notes for 29.x 5300295083
-
ef380a454c
Merge bitcoin/bitcoin#32863: [29.x] Backports
5300295083f2e199c22a7ad55e62a8dc7549a76e doc: update release notes for 29.x (fanquake) 730886b92b661ae6fb2731f79f1371262187b1d5 depends: fix libevent _WIN32_WINNT usage (fanquake) f798c317a08c1fdbc560fa70af624396ec4cb488 cmake: Drop no longer necessary "cmakeMinimumRequired" object (Hennadii Stepanov) bc2147c884d971ec57c782004142b99af6175d9a depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` (Hennadii Stepanov) 58b1a65ab0883bb14cb8ffaf76580800a29a92d2 add more bad p2p ports (Jameson Lopp) f85d41c2249dfd9a343fdc3cfe139218371bf891 test: retain the intended behavior of `feature_fee_estimation.py` nodes (ismaelsadeeq) 84c0c0e64b799f8f19791e8c71a7a6e10baa1c3b test: fix incorrect subtest in `feature_fee_estimation.py` (ismaelsadeeq) 83ee49b1dc9b1a086c1ac910e3bcd2ec38dd6d69 doc: clarify that the "-j N" goes after the "--build build" part (Salvatore Ingala) e5a7575a6df8abd5153f29f1df2503146ac81810 doc: Add workaround for vcpkg issue with paths with embedded spaces (Hennadii Stepanov) 59a83fb8d1f9030111a70e8184091e61cef15c38 functional test: correctly detect nonstd TRUC tx vsize in feature_taproot (Greg Sanders) 9f3690b9785a5e818d2b889a395b65f42fd78378 feature_taproot: sample tx version border values more (Greg Sanders) 8a4a938db527636aadaa874d733542613b3d14b6 depends: Override host compilers for FreeBSD and OpenBSD (Hennadii Stepanov) 3a57bfaaf9b0712ff080bd8a315c01552735b882 test: Use rehash() in outbound eviction block-relay (pablomartin4btc) f82015ccfc7c719405e942ef31c4b59865ee576a test: Clarify roles in outbound eviction comments (pablomartin4btc) 222fbfcc6a02ec5bac367e156392d49fb215c066 test: check P2SH sigop count for coinbase tx (brunoerg) Pull request description: Backports - #32463 - #32716 - #32823 - #32826 - #32837 - #32841 - #32846 - #32850 - #32858 - #32859 - #32943 - #32954 ACKs for top commit: hebasto: ACK 5300295083f2e199c22a7ad55e62a8dc7549a76e, I've backported all listed PRs locally (had 3 conflicts to resolve), and got zero diff with this PR. glozow: ACK 5300295083f2e199c22a7ad55e62a8dc7549a76e Tree-SHA512: c2f764ce3dcd1b6c16bfbe73a548a815f8d7db83653436d17686541a5cb530255a96132865442aa2f569340c95abee31aadda8bf0736582c7a19720029096b1e -
204b965915
policy: make pathological transactions packed with legacy sigops non-standard.
The Consensus Cleanup soft fork proposal includes a limit on the number of legacy signature operations potentially executed when validating a transaction. If this change is to be implemented here and activated by Bitcoin users in the future, we should prevent the ability for someone to broadcast a transaction through the p2p network that is not valid according to the new rules. This is because if it was possible it would be a trivial DoS to potentially unupgraded miners after the soft fork activates. We do not know for sure whether users will activate the Consensus Cleanup. However if they do such transactions must have been made non-standard long in advance, due to the time it takes for most nodes on the network to upgrade. In addition this limit may only be run into by pathological transactions which pad the Script with sigops but do not use actual signatures when spending, as otherwise they would run into the standard transaction size limit. Github-Pull: bitcoin/bitcoin#32521 Rebased-From: 5863315e33ba9b75a1e5189ee3da3d7311bbf193
-
0a4671d5eb
qa: unit test standardness of inputs packed with legacy sigops
Check bounds and different output types. Github-Pull: bitcoin/bitcoin#32521 Rebased-From: 367147954d16c961bbd28c361abf27b4cb665f10
-
313023369b
qa: functional test a transaction running into the legacy sigop limit
It's useful to have an end-to-end test in addition to the unit test to sanity check the RPC error as well as making sure the transaction is otherwise fully standard. Github-Pull: bitcoin/bitcoin#32521 Rebased-From: 96da68a38fa295d2414685739c41b8626e198d27
-
79e1a3c9c6
test: Do not pass tests on unhandled exceptions
This adds a missing catch for BaseException (e.g. SystemExit), which would otherwise be silently ignored. Also, remove the redundant other catches, which are just calling log.exception with a redundant log message. Github-Pull: #33001 Rebased-From: fa30b34026f76a5b8af997152fced2d281782e0d
-
5e327e6703
test: Log KeyboardInterrupt as exception
log.exception is more verbose and useful to debug timeouts. Also, log stderr for CalledProcessError to make debugging easier. Github-Pull: #33001 Rebased-From: faa3e684118bffa7a98cf76eeeb59243219df900
-
doc: update release notes for 29.x 411e15194b
-
doc: update release notes for 29.x f25dc84b28
-
8063d55446
Merge bitcoin/bitcoin#33046: [29.x] test: Do not pass tests on unhandled exceptions
411e15194b3a770ff455d413a0fe2495f0362297 doc: update release notes for 29.x (fanquake) 5e327e6703f10d3de12c56bb9701b07521a9f703 test: Log KeyboardInterrupt as exception (MarcoFalke) 79e1a3c9c6a4661562d419dc3427b35060ed0451 test: Do not pass tests on unhandled exceptions (MarcoFalke) Pull request description: Backports #33001 to `29.x`. ACKs for top commit: pablomartin4btc: ACK 411e15194b3a770ff455d413a0fe2495f0362297 marcofleon: lgtm ACK 411e15194b3a770ff455d413a0fe2495f0362297 Tree-SHA512: ea930f8c24a0a5e18f2107e96540db5c39941442059190d6104dfcf88b4a33d06ecaa7dbdf8baa91e564ee7ca3d12df5118c7fa404a38108de4ad0e5f122f72d -
380b5aded2
test: fix intermittent failure in wallet_reorgsrestore.py
Wait until the node's process has fully stopped before starting a new instance. Since the same code is used in tool_wallet.py, this consolidates the behavior into a 'kill_process()' function. Github-Pull: bitcoin/bitcoin#32069 Rebased-From: 36b0713edc4655f6e0c291975d6d280fbc89cf2e
-
doc: update release notes for 29.x c6fe6971bf
-
951b349af1
Merge bitcoin/bitcoin#33052: [29.x] backport #32069
c6fe6971bfa52d8fe2901a051f18da9f3bcb26a9 doc: update release notes for 29.x (fanquake) 380b5aded21772f9b7a31418109c20b2e15d090e test: fix intermittent failure in wallet_reorgsrestore.py (furszy) Pull request description: Backport https://github.com/bitcoin/bitcoin/pull/32069 to 29. This is a test flakiness fix for https://github.com/bitcoin/bitcoin/pull/31757, which was backported to 29 in https://github.com/bitcoin/bitcoin/pull/32589. ACKs for top commit: marcofleon: ACK c6fe6971bfa52d8fe2901a051f18da9f3bcb26a9 Tree-SHA512: 82517eef67c8d0fe57e70cb769d1b040ea8dea41c2d2e5b442477e1c7add7d7bac1c4aabbebc5b7d440db5b7bf00f1d70dc6ffb375b7a2e77d9599c543579122 -
4bf77955ed
Merge bitcoin/bitcoin#33013: [29.x] Backport #32521
f25dc84b2892e6bdbbd0471add9fcb2757700981 doc: update release notes for 29.x (Antoine Poinsot) 313023369b8e4ffb268cb642101680fe7f746fea qa: functional test a transaction running into the legacy sigop limit (Antoine Poinsot) 0a4671d5eba2499a27e530536b48b86166319fe8 qa: unit test standardness of inputs packed with legacy sigops (Antoine Poinsot) 204b96591542373dc75c6a6401b477f4b6615e69 policy: make pathological transactions packed with legacy sigops non-standard. (Antoine Poinsot) Pull request description: This backports PR #32521 to make the change available to miners who can't (or don't want to) upgrade past version 29. ACKs for top commit: marcofleon: reACK f25dc84b2892e6bdbbd0471add9fcb2757700981 glozow: ACK f25dc84b2892e6bdbbd0471add9fcb2757700981 Tree-SHA512: d5e06618720ed1a96d8a5fccdd8d1dbcbb5748505aa0df69198326828fe13f220e55bbce813f6f2daae82d23348e1f83a3a20a28639ec3fc2455c5b6e79a56e6 -
[build] bump version to 29.1rc1 735ffad864
-
[doc] manpages for 29.1rc1 06eb42d83c
-
[doc] update release notes for v29.1rc1 4c2d285b70
-
565af03c37
Merge bitcoin/bitcoin#33056: [29.x] final changes for v29.1rc1
4c2d285b706058ece7092d03f0e5ad1112c2097f [doc] update release notes for v29.1rc1 (glozow) 06eb42d83cf7eb76dc89bb6ca04f51eb17847d06 [doc] manpages for 29.1rc1 (glozow) 735ffad864ce6cc1f9a1c13f0cb15bcf30284dd6 [build] bump version to 29.1rc1 (glozow) Pull request description: ACKs for top commit: marcofleon: nice, ACK 4c2d285b706058ece7092d03f0e5ad1112c2097f fanquake: ACK 4c2d285b706058ece7092d03f0e5ad1112c2097f darosior: ACK 4c2d285b706058ece7092d03f0e5ad1112c2097f Tree-SHA512: ffcc45566e33b8c4b80da1c751a5045863e06a31de81ec6f3f5ba26717eb8e7087139f7d2696ed5c61170efb62b5b9416f350bcb108a03afcdfa38e77067d612 -
3cd8612cd7
doc/zmq: fix unix socket path example
Following https://github.com/bitcoin/bitcoin/blob/75a5c8258ec5309fe506438aa3815608430b53d6/doc/release-notes/release-notes-28.0.md?plain=1#L105 Github-Pull: #33070 Rebased-From: e83699a626b8a41c8fb9d0450e14e06a29a98bb8
-
9437415024
tracing: fix pointer argument handling in mempool_monitor.py
The BPF code was incorrectly passing pointer variables by value to bpf_usdt_readarg(), causing the function to fail silently and resulting in transaction hashes and reason strings displaying as zeros or garbage. This fix adds the missing reference operator (&) when passing pointer variables to bpf_usdt_readarg(), allowing the function to properly write the pointer values and enabling correct display of transaction hashes and removal/rejection reasons. Fixes the regression introduced in ec47ba349d where bpf_usdt_readarg_p was replaced with bpf_usdt_readarg but the calling convention wasn't properly updated for pointer arguments. Github-Pull: #33086 Rebased-From: 0ce041ea88dbea2bdfaf21fd0e60a86012498f0a
-
a18b53f99e
guix: warn SOURCE_DATE_EPOCH set in guix-codesign
Currently there is a warning for this in guix-build, but we also need one in guix-codesign, otherwise the codesigned hashes are not reproducible. Move common functionality into prelude and call the function in both guix actions. Github-Pull: #33073 Rebased-From: 1bed0f734b3f2dd876193b5cad303bfab1d250d5
-
264418f80c
doc: Add rel note for breaking change in dumptxoutset RPC
This was missed in the v29.0 release notes.
-
a08886d564
doc: move `cmake -B build -LH` up in Unix build docs
Github-Pull: #33088 Rebased-From: 6757052fc439bedd1fa88ee1d23b4f17cf2c4f7a
-
4e8abca445
rpc: fix getpeerinfo ping duration unit docs
The getpeerinfo docs incorrectly specified the ping durations as milliseconds. This was incorrectly changed in a3789c700b5a43efd4b366b4241ae840d63f2349 (released in v25; master since Sept. 2022). The correct duration unit is seconds. Also, remove the documentation of the getpeerinfo RPC response from the ping RPC since it's incomplete. Better to just reference the getpeerinfo RPC and it's documenation for this. Github-Pull: #33133 Rebased-From: 1252eeb997df2eb12c33d92eb1a5c9d6643a67ff
-
2b9738a083
test: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify 'spend_vin' is the correct field
Github-Pull: #33119 Rebased-From: 3543bfdfec345cf2c952143c31674ef02de2a64b
-
doc: update release notes for 29.x b9e637bd0e
-
837c5c7fd8
Merge bitcoin/bitcoin#33074: [29.x] Backports
b9e637bd0ee4d1da5f587ec33cbed9ee28c07daf doc: update release notes for 29.x (fanquake) 2b9738a0835f50845ed183e124347b07b7bcce10 test: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify 'spend_vin' is the correct field (Chris Stewart) 4e8abca44506ac39166e4a7372f8ee0f6d1def0a rpc: fix getpeerinfo ping duration unit docs (0xb10c) a08886d5640a808e302108575ffbebd7df5f8f11 doc: move `cmake -B build -LH` up in Unix build docs (Bufo) 264418f80cea7fd5ae818a2a2887fab62de2b0a2 doc: Add rel note for breaking change in dumptxoutset RPC (Chris Stewart) a18b53f99e4bf7f038dac635f27bddf17d285010 guix: warn SOURCE_DATE_EPOCH set in guix-codesign (will) 9437415024da7dd51705e46e4243f7e1694acaf5 tracing: fix pointer argument handling in mempool_monitor.py (deadmanoz) 3cd8612cd7719c0a4dfa104bae3467b562d567d7 doc/zmq: fix unix socket path example (Roman Zeyde) Pull request description: Backports: * #33070 * #33073 * #33086 * #33088 * #33103 * #33119 * #33133 ACKs for top commit: glozow: ACK b9e637bd0ee4d1da5f587ec33cbed9ee28c07daf Tree-SHA512: bf2a700ec4d730548cf5abf10930b41e26742ea23582149b0eddcaaa48c1db05ab657ef9ffc7dcba2d1af2e265d0ea866d7b484a321a9c9ac662a6dc2263d102 -
4987c03531
test: Mark ~DebugLogHelper as noexcept(false)
We mark ~DebugLogHelper as noexcept(false) to be able to catch the exception it throws. This lets us use it in test in combination with BOOST_CHECK_THROW and BOOST_CHECK_NO_THROW to check that certain log messages are (not) logged. Co-Authored-By: Niklas Gogge <n.goeggi@gmail.com> Github-Pull: #32604 Rebased-From: df7972a6cfd919b972bcbba07de85f7797898529
-
41262cc4d5
log: introduce LogRateLimiter, LogLimitStats, Status
LogRateLimiter will be used to keep track of source locations and our current time-based logging window. It contains an unordered_map and a m_suppressions_active bool to track source locations. The map is keyed by std::source_location, so a custom Hash function (SourceLocationHasher) and custom KeyEqual function (SourceLocationEqual) is provided. SourceLocationHasher uses CSipHasher(0,0) under the hood to get a uniform distribution. A public Reset method is provided so that a scheduler (e.g. the "b-scheduler" thread) can periodically reset LogRateLimiter's state when the time window has elapsed. The LogRateLimiter::Consume method checks if we have enough available bytes in our rate limiting budget to log an additional string. It returns a Status enum that denotes the rate limiting status and can be used by the caller to emit a warning, skip logging, etc. The Status enum has three states: - UNSUPPRESSED (logging was successful) - NEWLY_SUPPRESSED (logging was succcesful, next log will be suppressed) - STILL_SUPPRESSED (logging was unsuccessful) LogLimitStats counts the available bytes left for logging per source location for the current logging window. It does not track actual source locations; it is used as a value in m_source_locations. Also exposes a SuppressionsActive() method so the logger can use that in a later commit to prefix [*] to logs whenenever suppressions are active. Co-Authored-By: Niklas Gogge <n.goeggi@gmail.com> Co-Authored-By: stickies-v <stickies-v@protonmail.com> Github-Pull: #32604 Rebased-From: afb9e39ec5552e598a5febaa81820d5509b7c5d2
-
a0992a842e
log: use std::source_location in place of __func__, __FILE__, __LINE__
The std::source_location conveniently stores the file name, line number, and function name of a source code location. We switch to using it instead of the __func__ identifier and the __FILE__ and __LINE__ macros. BufferedLog is changed to have a std::source_location member, replacing the source_file, source_line, and logging_function members. As a result, MemUsage no longer explicitly counts source_file or logging_function as the std::source_location memory usage is included in the MallocUsage call. This also changes the behavior of -logsourcelocations as std::source_location includes the entire function signature. Because of this, the functional test feature_config_args.py must be changed to no longer include the function signature as the function signature can differ across platforms. Co-Authored-By: Niklas Gogge <n.goeggi@gmail.com> Co-Authored-By: stickies-v <stickies-v@protonmail.com> Github-Pull: #32604 Rebased-From: a6a35cc0c23d0d529bfeb2f40d83d61f15ca7b40
-
0b6b096421
log: Add rate limiting to LogPrintf, LogInfo, LogWarning, LogError, LogPrintLevel
To mitigate disk-filling attacks caused by unsafe usages of LogPrintf and friends, we rate-limit them by passing a should_ratelimit bool that eventually makes its way to LogPrintStr which may call LogRateLimiter::Consume. The rate limiting is accomplished by adding a LogRateLimiter member to BCLog::Logger which tracks source code locations for the given logging window. Every hour, a source location can log up to 1MiB of data. Source locations that exceed the limit will have their logs suppressed for the rest of the window determined by m_limiter. This change affects the public LogPrintLevel function if called with a level >= BCLog::Level::Info. The UpdateTipLog function has been changed to use the private LogPrintLevel_ macro with should_ratelimit set to false. This allows UpdateTipLog to log during IBD without hitting the rate limit. Note that on restart, a source location that was rate limited before the restart will be able to log until it hits the rate limit again. Co-Authored-By: Niklas Gogge <n.goeggi@gmail.com> Co-Authored-By: stickies-v <stickies-v@protonmail.com> Github-Pull: #32604 Rebased-From: d541409a64c60d127ff912dad9dea949d45dbd8c
-
24c793d06c
doc: add release notes for new rate limiting logging behavior
Github-Pull: #32604 Rebased-From: 4c772cbd83e502a1339e8993d192ea6416ecd45c
-
25f975b8df
test: remove noexcept(false) comment in ~DebugLogHelper
Github-Pull: #33011 Rebased-From: 616bc22f131132b9239ef362dca8c6bce000a539
-
9cde68fa98
log: avoid double hashing in SourceLocationHasher
Co-Authored-By: l0rinc <pap.lorinc@gmail.com> Github-Pull: #33011 Rebased-From: b8e92fb3d4137f91fe6a54829867fc54357da648
-
273ffda2c8
log: remove const qualifier from arguments in LogPrintFormatInternal
Co-Authored-By: l0rinc <pap.lorinc@gmail.com> Github-Pull: #33011 Rebased-From: 5f70bc80df06ca85d44e8201d47e7086e971fdea
-
dfe4e19f66
log: clarify RATELIMIT_MAX_BYTES comment, use RATELIMIT_WINDOW
Co-Authored-By: stickies-v <stickies-v@protonmail.com> Github-Pull: #33011 Rebased-From: 8319a134684df2240057a5e8afaa6ae441fb8a58
-
7c3820ff63
log: change LogLimitStats to struct LogRateLimiter::Stats
Clean up the noisy LogLimitStats and remove references to the time window. Co-Authored-By: stickies-v <stickies-v@protonmail.com> Github-Pull: #33011 Rebased-From: 3c7cae49b692bb6bf5cae5ee23479091bed0b8be
-
81751341e9
log: clean up LogPrintStr_ and Reset, prefix all logs with "[*]" when there are suppressions
In LogPrintStr_: - remove an unnecessary BCLog since we are in the BCLog namespace. - remove an unnecessary \n when rate limiting is triggered since FormatLogStrInPlace will add it. - move the ratelimit bool into an else if block. - prefix all log lines with [*] when suppressions exist. Previously this was only done if should_ratelimit was true. In Reset: - remove an unnecessary \n since FormatLogStrInPlace will add it. - Change Level::Info to Level::Warning. Github-Pull: #33011 Rebased-From: e8f9c37a3b4c9c88baddb556c4b33a4cbba1f614
-
acfa83d9d0
log: make m_limiter a shared_ptr
This allows us to safely and explicitly manage the dual dependency on the limiter: one for the Logger, and one for the CScheduler. Github-Pull: #33011 Rebased-From: 3d630c2544e19480268426cda245796d4ce34ac3
-
4ed7a51642
test: add ReadDebugLogLines helper function
Deduplicates repeated usage of the same functionality. Github-Pull: #33011 Rebased-From: 05d7c22479bf96bab9f8c8b8fa90368429ad2c88
-
11538160b3
test: don't leak log category mask across tests
This ensures log tests behave consistently when other tests modify the log category mask. Github-Pull: #33011 Rebased-From: 350193e5e2efabb3eb66197b91869b946ec5428c
-
dfdd407c42
test: logging_filesize_rate_limit improvements
- Add helper functions and structs to improve readability and reusability of test code - Make tests more specific by comparing all produced log lines with expected log lines instead of relying on approximations or proxies. Github-Pull: #33011 Rebased-From: 9f3b017bcc067bba1d1682a5d4e65b5450dc10c4
-
206f5902db
config: add DEBUG_ONLY -logratelimit
Use -nologratelimit by default in functional tests if the bitcoind version supports it. Co-Authored-By: stickies-v <stickies-v@protonmail.com> Github-Pull: #33011 Rebased-From: 5c74a0b397cb3db94761bad78801eed4544155b9
-
0022e25333
test: modify logging_filesize_rate_limit params
Change time_window from 20s to 1h so Reset is not accidentally called if the test takes a while. Change num_lines from 1024 to 10 since LogRateLimiter is parameterized and does not require logging 1MiB of data. Co-Authored-By: stickies-v <stickies-v@protonmail.com> Github-Pull: #33211 Rebased-From: 5dda364c4b1965da586db7b81de8be90b6919414
-
c5196bc9c4
Merge bitcoin/bitcoin#33225: [29.x] Backport logging ratelimiting
0022e25333a8eabf79c0341f94cf06db36e32f4f test: modify logging_filesize_rate_limit params (Eugene Siegel) 206f5902db5c5b0a08f0575b5ba6007730011e5f config: add DEBUG_ONLY -logratelimit (Eugene Siegel) dfdd407c428030171213496c0cc2f30517bb86a1 test: logging_filesize_rate_limit improvements (stickies-v) 11538160b3d9a44990ac2c3a766764198a7e9127 test: don't leak log category mask across tests (stickies-v) 4ed7a51642dfa83159be7207c158dc7544d35f65 test: add ReadDebugLogLines helper function (stickies-v) acfa83d9d000abd263d8cb5ac3355cfd8cf49ec0 log: make m_limiter a shared_ptr (stickies-v) 81751341e9b5582fc5645ff88c5dd67cbd09cf43 log: clean up LogPrintStr_ and Reset, prefix all logs with "[*]" when there are suppressions (Eugene Siegel) 7c3820ff63d91c9f5173e514d74814a34e647bdb log: change LogLimitStats to struct LogRateLimiter::Stats (Eugene Siegel) dfe4e19f66e0acd4f14f726f29aeb6ef7d8506c4 log: clarify RATELIMIT_MAX_BYTES comment, use RATELIMIT_WINDOW (Eugene Siegel) 273ffda2c878954f30554bb88d286896d1177add log: remove const qualifier from arguments in LogPrintFormatInternal (Eugene Siegel) 9cde68fa984571d68177152af0a029b43fef7bab log: avoid double hashing in SourceLocationHasher (Eugene Siegel) 25f975b8df8ac4692cdfe9c423f2903e97f34a2c test: remove noexcept(false) comment in ~DebugLogHelper (Eugene Siegel) 24c793d06c93768be88e9f8d0bb62936e199f68c doc: add release notes for new rate limiting logging behavior (Eugene Siegel) 0b6b096421ac9d1c7b0542ea147562269e1c5bec log: Add rate limiting to LogPrintf, LogInfo, LogWarning, LogError, LogPrintLevel (Eugene Siegel) a0992a842ed098ebcd5f955b232b9abb154d6f6e log: use std::source_location in place of __func__, __FILE__, __LINE__ (Eugene Siegel) 41262cc4d53389ddadc59573e4eb246e085268ce log: introduce LogRateLimiter, LogLimitStats, Status (Eugene Siegel) 4987c035318536a76f3f5dd00beb417d8fb4b24c test: Mark ~DebugLogHelper as noexcept(false) (Eugene Siegel) Pull request description: Backports: * #32604 * Note that 24c793d06c93768be88e9f8d0bb62936e199f68c isn't clean, as it's added directly to `release-notes.md`. * #33011 * #33211 ACKs for top commit: instagibbs: utACK 0022e25333a8eabf79c0341f94cf06db36e32f4f dergoegge: utACK 0022e25333a8eabf79c0341f94cf06db36e32f4f stickies-v: ACK 0022e25333a8eabf79c0341f94cf06db36e32f4f - all backports clean except the release notes one, as indicated. Tree-SHA512: 466aa6884a2c936131cf222b94943148bc385fc9574840cc63933f510c40c2cc74d8c9a9b2560205926a0a70a93de0e191a623fa2352628d8cead45bbee59b1c -
4e3cfa660d
[test] check miner doesn't select 0fee transactions
Github-Pull: #33106 Rebased-From: e5f896bb1f052fb8c7811c6024cb49143b427512
-
03da7aff99
[test] check bypass of minrelay for various minrelaytxfee settings
Github-Pull: #33106 Rebased-From: 85f498893f54ea7d84f2bdf12aa35d198edf8a72
-
6b5396c4b1
[test] RBF rule 4 for various incrementalrelayfee settings
Github-Pull: #33106 Rebased-From: 72dc18467dbfc16cdbda2dd109b087243b397799
-
567c3ee3cb
[test] explicitly check default -minrelaytxfee and -incrementalrelayfee
Github-Pull: #33106 Rebased-From: 1fbee5d7b61b83e68e4230c8a97ca308de92c4c3
-
3a7e093f94
[doc] assert that default min relay feerate and incremental are the same
Github-Pull: #33106 Rebased-From: d6213d6aa114aeed6804a585491d741386fd2739
-
1c1970fb45
[miner] lower default -blockmintxfee to 1sat/kvB
Back when we implemented coin age priority as a miner policy, miners mempools might admit transactions paying very low fees, but then want to set a higher fee for block inclusion. However, since coin age priority was removed in v0.15, the block assembly policy is solely based on fees, so we do not need to apply minimum feerate rules in multiple places. In fact, the block assembly policy ignoring transactions that are added to the mempool is likely undesirable as we waste resources accepting and storing this transaction. Instead, rely on mempool policy to enforce a minimum entry feerate to the mempool (minrelaytxfee). Set the minimum block feerate to the minimum non-zero amount (1sat/kvB) so it collects everything it finds in mempool into the block. Github-Pull: #33106 Rebased-From: 5f2df0ef78be7b24798d0983c9b962740608f1f4
-
a0ae3fc8a7
[prep/test] replace magic number 1000 with respective feerate vars
Github-Pull: #33106 Rebased-From: 3eab8b724044dc321f70e5eed66b149713158a04
-
da30ca0efa
[prep/util] help MockMempoolMinFee handle more precise feerates
Use a virtual size of 1000 to keep precision when using a feerate (which is rounded to the nearest satoshi per kvb) that isn't just an integer. Github-Pull: #33106 Rebased-From: 457cfb61b5323a13218b3cfb5a6a6d8b3a7c5f7f
-
bbdab3ef7b
[prep/test] make wallet_fundrawtransaction's minrelaytxfee assumption explicit
Github-Pull: #33106 Rebased-From: 2e515d2897eaa5a9b012eb78aef105e1cf80d42b
-
9dd7efc8c3
[policy] lower default minrelaytxfee and incrementalrelayfee to 100sat/kvB
Let's say an attacker wants to use/exhaust the network's bandwidth, and has the choice between renting resources from a commercial provider and getting the network to "spam" itself it by sending unconfirmed transactions. We'd like the latter to be more expensive than the former. The bandwidth for relaying a transaction across the network is roughly its serialized size (plus relay overhead) x number of nodes. A 1000vB transaction is 1000-4000B serialized. With 100k nodes, that's 0.1-0.4GB If the going rate for commercial services is 10c/GB, that's like 1-4c per kvB of transaction data, so a 1000vB transaction should pay at least $0.04. At a price of 120k USD/BTC, 100sat is about $0.12. This price allows us to tolerate a large decrease in the conversion rate or increase in the number of nodes. Github-Pull: #33106 Rebased-From: 6da5de58cabc4133c379baa50845e30e5bc6b3e4
-
f9f1ca5445
[doc] update release notes
Release notes are from 18720bc5d5b4d3acf91060859180d72cbfdf59b7
-
[build] bump version to 29.1rc2 eb1574af0c
-
[doc] man pages for 29.1rc2 0034dcfba9
-
89fe999cda
Merge bitcoin/bitcoin#33226: [29.x] 33106 backport and final changes for rc2
0034dcfba9dc599449e7569ed1b30e58d4f4434f [doc] man pages for 29.1rc2 (glozow) eb1574af0c6cba4918957d704c5c0f17235a10b5 [build] bump version to 29.1rc2 (glozow) f9f1ca5445fc216c770b583c1db999aaf910f96f [doc] update release notes (glozow) 9dd7efc8c3fc30cd65ae18a8a91e292c71fe7c16 [policy] lower default minrelaytxfee and incrementalrelayfee to 100sat/kvB (glozow) bbdab3ef7b7e8f3da4e571f35692bc3264c384db [prep/test] make wallet_fundrawtransaction's minrelaytxfee assumption explicit (glozow) da30ca0efadd3861016f6435636d9b399da65162 [prep/util] help MockMempoolMinFee handle more precise feerates (glozow) a0ae3fc8a764121b17e11e3a99330e73c0e44c2d [prep/test] replace magic number 1000 with respective feerate vars (glozow) 1c1970fb45896dc5fa7b16370408c34964ed4c19 [miner] lower default -blockmintxfee to 1sat/kvB (glozow) 3a7e093f948571e058db31dd971dc628d9729232 [doc] assert that default min relay feerate and incremental are the same (glozow) 567c3ee3cb937de09d3fe8b7e82e431993fac7c7 [test] explicitly check default -minrelaytxfee and -incrementalrelayfee (glozow) 6b5396c4b1b3561f79e0c4881dad5eb0ca7b44ae [test] RBF rule 4 for various incrementalrelayfee settings (glozow) 03da7aff996eaaddce04448f8461d4f3d15d2a4a [test] check bypass of minrelay for various minrelaytxfee settings (glozow) 4e3cfa660d1ab1552881f2eedb5123ab7d0fe0b0 [test] check miner doesn't select 0fee transactions (glozow) Pull request description: Backports #33106 and includes final changes for 29.1rc2. Based on current network conditions (in which nodes rejecting 0.1-1sat/vB are missing many transactions), it is recommended to change these policy settings. I did not include #32750 because it causes #33177 and I don't foresee any problems; it was just a nice to have. For reviewers: the backport is unclean but fairly straightforward. I just had to adapt a test that is no longer in master (#32973) and include `-datacarriersize` in order to pad transaction size (#32406). ACKs for top commit: dergoegge: utACK 0034dcfba9dc599449e7569ed1b30e58d4f4434f marcofleon: ACK 0034dcfba9dc599449e7569ed1b30e58d4f4434f murchandamus: crACK 0034dcfba9dc599449e7569ed1b30e58d4f4434f brunoerg: crACK 0034dcfba9dc599449e7569ed1b30e58d4f4434f Tree-SHA512: 1b7540ac3fec5b15cf36926dbf633054f14549d76aa445a2bf042b5667e8637db4f9c21c869af25a0c3f8c7cca6c585d17896d2f7e95a6264c1ff59817446694 -
doc: update example bitcoin conf for 29.1rc2 65dc198d2c
-
027a60d218
Merge bitcoin/bitcoin#33234: doc: update example bitcoin conf for 29.1rc2
65dc198d2cf7160f54a469a0c806232e83dc7599 doc: update example bitcoin conf for 29.1rc2 (fanquake) Pull request description: Followup to #33226. ACKs for top commit: dergoegge: ACK 65dc198d2cf7160f54a469a0c806232e83dc7599 willcl-ark: ACK 65dc198d2cf7160f54a469a0c806232e83dc7599 Tree-SHA512: b2924783dd98890bd031dbca8c9c126cd3ab45c3cc8d2f14dd5b5f940fcc7061f3d1f73e2d36482afceaae786f3087b59baab98db0f10bc0d19e3f016f52851a -
16b1710d97
index: don't commit state in BaseIndex::Rewind
The committed state of an index should never be ahead of the flushed chainstate. Otherwise, in the case of an unclean shutdown, the blocks necessary to revert from the prematurely committed state would not be available, which would corrupt the coinstatsindex in particular. Instead, the index state will be committed with the next ChainStateFlushed notification. Github-Pull: #33212 Rebased-From: 01b95ac6f496e24e525b2fc9d69ee8b543da65ff
-
fcac8022d8
test: index with an unclean restart after a reorg
This test fails without the previous commit. Github-Pull: #33212 Rebased-From: a602f6fb7bf5f9e57299f4d6e246c82379fad8d2
-
162c009c1d
Merge bitcoin/bitcoin#33251: [29.x] backport #33212
fcac8022d839572f5d8781096eec14ca7ea2e0dd test: index with an unclean restart after a reorg (Martin Zumsande) 16b1710d97464f134a526634a412a4b1b6cc8639 index: don't commit state in BaseIndex::Rewind (Martin Zumsande) Pull request description: Backports #33212 to 29.x ACKs for top commit: achow101: ACK fcac8022d839572f5d8781096eec14ca7ea2e0dd stickies-v: ACK fcac8022d8 mzumsande: Code Review ACK fcac8022d839572f5d8781096eec14ca7ea2e0dd Tree-SHA512: eeb9213f03bbb1d48c3ccb12121a6e475f436895d314b5171007e7e4ee457c74b312fa7f0d1808d6221dc22b192700a93ea21c4e9e04689da7dde7e1f79e9569 -
6448ebb5a7
doc: Remove wrong and redundant doxygen tag
Remove it in feerate. Fix it in the other places. Github-Pull: #33236 Rebased-From: 966666de9a6211b8748f43d682490c924e132e58
-
99ab2e70e7
ci: return to using dash in CentOS job
Github-Pull: #33261 Rebased-From: 509ffea40abbc706ef8b8fc449b7de8677fc5096
-
doc: finalise release notes for 29.1 b0d88bcc50
-
build: bump version to v29.1 final 37d115c67e
-
doc: update manual pages for v29.1 084c95a18c
-
fd784f2774
Merge bitcoin/bitcoin#33271: [29.x] finalise v29.1
084c95a18c9978c0a047ffe219a9eef8ab327ea6 doc: update manual pages for v29.1 (fanquake) 37d115c67eafec68128649651a7e921c3e2635ce build: bump version to v29.1 final (fanquake) b0d88bcc501bf0fc06e64c2f0a295b99a1101073 doc: finalise release notes for 29.1 (fanquake) 99ab2e70e782bf5ca753ad636f69642da6054283 ci: return to using dash in CentOS job (fanquake) 6448ebb5a7c942949a70ffc4a1d2a93338fac130 doc: Remove wrong and redundant doxygen tag (MarcoFalke) Pull request description: Backports: * #33236 * #33261 Since `rc2`, #33212 was also backported in #33251. ACKs for top commit: glozow: ACK 084c95a18c9978c0a047ffe219a9eef8ab327ea6 willcl-ark: ACK 084c95a18c9978c0a047ffe219a9eef8ab327ea6 Tree-SHA512: 0698e5b2d12f7328bf5af8dbbd92b0049de401c0a4af27fda2209f9aab35d827c5ac65eb9268aa1fae241e3adf0d3dd89324bb288655ead8af2b5584aae1f6d2 -
10cbf2255d
ci: Use APT_LLVM_V in msan task
Also, use update-alternatives to avoid having to manually specify clang-${APT_LLVM_V} or llvm-symbolizer-${APT_LLVM_V} everywhere. Github-Pull: #32999 Rebased-From: fad040a5787a8ac0a13aef5c54e5a675de239e92 -
0fba5ae021
ci: allow libc++ instrumentation other than msan
Github-Pull: #33099 Rebased-From: 6653cafd0b70b0e7a29c6cfe236d3bf9d1bce91e
-
f9939cdbe0
ci: instrument libc++ in TSAN job
Qt is disabled, as the build is now taking a very long time. Github-Pull: #33099 Rebased-From: b09af2ce508185086bb551bfeb1409355c897e7b
-
5513516241
ci: remove DEBUG_LOCKORDER from TSAN job
Github-Pull: #33099 Rebased-From: 7aa5b67132dfb71e915675a3dbcb806284e08197
-
ea40fa95d9
ci: use LLVM 21
Github-Pull: #33258 Rebased-From: 4cf0ae474ba03830c86653f1abae4ab4d38c94e4
-
doc: update release notes for 29.x 7c6be9acae
-
a0e438bd49
Merge bitcoin/bitcoin#33294: [29.x] *san CI backports
7c6be9acae5a16956a7f8e53ae3f944a187a6713 doc: update release notes for 29.x (fanquake) ea40fa95d9af004d85187bee9d8efe278c888d8f ci: use LLVM 21 (fanquake) 5513516241463333548600f691a861dba4c1d5c5 ci: remove DEBUG_LOCKORDER from TSAN job (fanquake) f9939cdbe01fa090bd2ece90f5cbfb17120c2f24 ci: instrument libc++ in TSAN job (fanquake) 0fba5ae02101b358aa4938d35471356b75e0e615 ci: allow libc++ instrumentation other than msan (fanquake) 10cbf2255d9e74166f5f41e82fefa4a7f890e73f ci: Use APT_LLVM_V in msan task (MarcoFalke) Pull request description: Backports: * #32999 * #33099 (added `ninja-build`) * #33258 ACKs for top commit: marcofleon: ACK 7c6be9acae5a16956a7f8e53ae3f944a187a6713, looks okay to me Tree-SHA512: 928882d505ed8101a6d4123947252a84d40bd350383408926b5c37aed56dc3359067d1d14c443c51351a6958a8dd9e141bb7713665295ff1f1ad86c5f8a36df0 -
2717331981
Fix benchmark CSV output
The `SHA256AutoDetect` return output is used, among other use cases, to name benchmarks. Using a comma breaks the CSV output. This change replaces the comma with a semicolon, which fixes the issue. Github-Pull: #33340 Rebased-From: 790b440197bde322432a5bab161f1869b667e681
-
324caa8497
ci: always use tag for LLVM checkout
Rather than trying to match the apt installed clang version, which is prone to intermittent issues. i.e #33345. Github-Pull: #33364 Rebased-From: b736052e39f1f466f63f261ace3dd2deba171e8a
-
e97588fc3d
trace: Workaround GCC bug compiling with old systemtap
Github-Pull: #33310 Rebased-From: 93a29ff2830162c8129d35c7b9beb43fab984503
-
9b95ab5e9d
p2p: Add witness mutation check inside FillBlock
Since #29412, we have not allowed mutated blocks to continue being processed immediately the block is received, but this is only done for the legacy BLOCK message. Extend these checks as belt-and-suspenders to not allow similar mutation strategies to affect relay by honest peers by applying the check inside PartiallyDownloadedBlock::FillBlock, immediately before returning READ_STATUS_OK. This also removes the extraneous CheckBlock call. Github-Pull: #32646 Rebased-From: bac9ee4830664c86c1cb3d38a5b19c722aae2f54
-
4c940d4789
p2p: remove vestigial READ_STATUS_CHECKBLOCK_FAILED
Github-Pull: #32646 Rebased-From: 28299ce77636d7563ec545d043cf1b61bd2f01c1
-
569ceb0df4
net: check for empty header before calling FillBlock
Previously in debug builds, this would cause an Assume crash if FillBlock had been called previously. This could happen when multiple blocktxn messages were received. Co-Authored-By: Greg Sanders <gsanders87@gmail.com> Github-Pull: #33296 Rebased-From: 5e585a0fc4fd68dd7b4982054b34deae2e7aeb89
-
1288d44804
test: send duplicate blocktxn message in p2p_compactblocks.py
Add test_multiple_blocktxn_response that checks that the peer is disconnected. Github-Pull: #33296 Rebased-From: 8b6264768030db1840041abeeaeefd6c227a2644
-
61cdc04a83
net: Do not apply whitelist permission to onion inbounds
Tor inbound connections do not reveal the peer's actual network address. Therefore do not apply whitelist permissions to them. Co-authored-by: Vasil Dimov <vd@FreeBSD.org> Github-Pull: #33395 Rebased-From: f563ce90818d486d2a199439d2f6ba39cd106352
-
doc: update release notes for 29.x 9bc4afb62c
-
build: bump version to v29.2rc1 461dd13faf
-
doc: update manual pages for v29.2rc1 f2bd79f80c
-
7e1eca4882
Merge bitcoin/bitcoin#33344: [29.x] Backports
f2bd79f80c74a2b77f14954ac65679417697a332 doc: update manual pages for v29.2rc1 (fanquake) 461dd13fafa6f8175e2be4d96e8728e667ba4d69 build: bump version to v29.2rc1 (fanquake) 9bc4afb62cf04a41b62fe279f0db3d87e700cb3d doc: update release notes for 29.x (fanquake) 61cdc04a832cc5dfe98c48f8592c4de513258304 net: Do not apply whitelist permission to onion inbounds (Martin Zumsande) 1288d44804cd6ecd8601d0aef55e6fbf500d2f31 test: send duplicate blocktxn message in p2p_compactblocks.py (Eugene Siegel) 569ceb0df46fc619eed33f56b5b36f617c37bae7 net: check for empty header before calling FillBlock (Eugene Siegel) 4c940d47897bc380d3387dd6663c37c46b4020ec p2p: remove vestigial READ_STATUS_CHECKBLOCK_FAILED (Greg Sanders) 9b95ab5e9db1691be5f26fc5bc1c186777d2dc5b p2p: Add witness mutation check inside FillBlock (Greg Sanders) e97588fc3d1e1a02382312ade7d529c5b4b60016 trace: Workaround GCC bug compiling with old systemtap (Luke Dashjr) 324caa84977cc74ac19df605503483e59739773e ci: always use tag for LLVM checkout (fanquake) 2717331981ec94fd616a08f31e643391a2118639 Fix benchmark CSV output (Hennadii Stepanov) Pull request description: Backports: * #32646 * #33296 * #33310 * #33340 * #33364 * #33395 Plus changes for 29.2rc1. ACKs for top commit: darosior: utACK f2bd79f80c74a2b77f14954ac65679417697a332 mzumsande: utACK f2bd79f80c74a2b77f14954ac65679417697a332 Tree-SHA512: 346a92032b7a069e2941056c6273ff65e360c5834832b106350a9cd42b634518cc75b807da6e51a6292e3a33342bb7b145777d3538a2792e03c63962d747a025 -
f63b8e960d
ci: add configure environment action
Github-Pull: #32989 Rebased-From: b8fcc9fcbcd
-
301aa5d814
ci: add caching actions
Github-Pull: #32989 Rebased-From: b232b0fa5e9 Add "Restore" and "Save" caching actions. These actions reduce boilerplate in the main ci.yml configuration file. These actions are implemented so that caches will be saved on `push` only. When a pull request is opened it will cache hit on the caches from the lastest push, or in the case of depends will hit on any matching depends hash, falling back to partial matches. Depends caches are hashed using `$(git ls-tree HEAD depends "ci/test/$FILE_ENV" | sha256sum | cut -d' ' -f1)` and this hash is passed in as an input to the actions. This means we direct cache hit in cases where depends would not be re-built, otherwise falling back to a partial match. Previous releases cache is hashed similarly to depends, but using the test/get_previous_releases.py file. The cirruslabs cache action will fallback transparently to GitHub's cache in the case that the job is not being run on a Cirrus Runner, making these compatible with running on forks (on free GH hardware).
-
954c1a55e4
ci: add REPO_USE_CIRRUS_RUNNERS
Github-Pull: #32989 Rebased-From: 33ba073df7a If set, Cirrus runners will be used on pushes to, and pull requests against, this repository. Forks can set this if they have their own cirrus runners.
-
1faf918a16
ci: add configure-docker action
Github-Pull: #32989 Rebased-From: fdf64e55324 Another action to reduce boilerplate in the main ci.yml file. This action will set up a docker builder compatible with caching build layers to a container registry using the `gha` build driver. It will then configure the docker build cache args.
-
f3089fb2cf
ci: use buildx in ci
Github-Pull: #32989 Rebased-From: 94a09325475 Using buildx is required to properly load the correct driver, for use with registry caching. Neither build, nor BUILDKIT=1 currently do this properly. Use of `docker buildx build` is compatible with podman.
-
0a649d07c9
ci: use docker build cache arg directly
Github-Pull: #32989 Rebased-From: 18f6be09d02 Reverts: e87429a2d0f23eb59526d335844fa5ff5b50b21f This was added in PR #31545 with the intention that self-hosted runners might use it to save build cache. As we are not using hosted runners with a registry build cache, the bulk of this commit can be reverted, simply using the value of $DOCKER_BUILD_CACHE_ARG in the script. link: https://github.com/bitcoin/bitcoin/pull/31545
-
af086431e8
ci: have base install run in right dir
Github-Pull: #32989 Rebased-From: 9c2b96e0d03 This sets the build dir at build time so that Apple SDK gets installed in the correct/expected location for the runtime to find it. Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
f9f3e8b686
ci: add Cirrus cache host
Github-Pull: #32989 Rebased-From: 020069e6b71 Whilst the action cirruslabs/actions/cache will automatically set this host, the docker `gha` build cache backend will not be aware of it. Set the value here, which will later be used in the docker build args to enable docker build cache on the cirrus cache.
-
849993377d
ci: add job to determine runner type
Github-Pull: #32989 Rebased-From: cc1735d7771 To remove multiple occurances of the respository name, against which we compare `${{ github.repository }}` to check if we should use Cirrus Runners, introduce a helper job which can check a single environment variable and output this as an input to subsequent jobs. Forks can maintain a trivial patch of their repo name against the `REPO_USE_CIRRUS_RUNNERS` variable in ci.yml if they have Cirrus Runners of their own, which will then enable cache actions and docker build cache to use Cirrus Cache. It's not possible to use `${{ env.USE_CIRRUS_RUNNERS }}` in the `runs-on:` directive as the context is not supported by GitHub. If it was, this job would no longer be necessary. -
82c60a3151
ci: port arm 32-bit job
Github-Pull: #32989 Rebased-From: f253031cb8e Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
894a3cbe42
ci: update windows-cross job
Github-Pull: #32989 Rebased-From: 04e7bfbceb0 Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
819ee09af3
ci: update asan-lsan-ubsan
Github-Pull: #32989 Rebased-From: 884251441bb Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
a91567a980
ci: force reinstall of kernel headers in asan
Github-Pull: #32989 Rebased-From: 2c990d84a3d When using hosted runners in combination with cached docker images, there is the possibility that the host runner image is updated, rendering the linux-headers package (stored in the cached docker image) incompatible. Fix this by doing a re-install of the headers package in 03_test_script.sh. If the underlying runner kernel has not changed thie has no effect, but prevents the job from failing if it has.
-
835b5b8bb1
ci: port mac-cross-gui-notests
Github-Pull: #32989 Rebased-From: 9c2514de534 Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
e826c3daa5
ci: port nowallet-libbitcoinkernel
Github-Pull: #32989 Rebased-From: 2a00b12d73b Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
544f902b2a
ci: port i686-multiprocess-DEBUG
Github-Pull: #32989 Rebased-From: f2068f26c12 Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
85ec6c6882
ci: port fuzzer-address-undefined-integer-nodepends
Github-Pull: #32989 Rebased-From: 341196d75c3 Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
5057b9a6ff
ci: port previous-releases-depends-debug
Github-Pull: #32989 Rebased-From: 58e38c3a042 Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
b4286cf354
ci: port centos-depends-gui
Github-Pull: #32989 Rebased-From: 549074bc643 Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
3b2dcc8b9a
ci: port tidy
Github-Pull: #32989 Rebased-From: bf7d5364527 Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
643385b22d
ci: port tsan-depends
Github-Pull: #32989 Rebased-From: 9bbae61e3b4 Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
0f0378fe3c
ci: port msan-depends
Github-Pull: #32989 Rebased-From: d290a8e6eab Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
06424fb004
ci: port lint
Github-Pull: #32989 Rebased-From: bc41848d00f Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
-
a08c3cc51c
ci: remove .cirrus.yml
Github-Pull: #32989 Rebased-From: 4393ffdd837 Removed as unused.
-
c7f290b826
ci: dynamically match makejobs with cores
Github-Pull: #32989 Rebased-From: 3f339e99e00 Previously jobs were running on a large multi-core server where 10 jobs as default made sense (or may even have been on the low side). Using hosted runners with fixed (and lower) numbers of vCPUs we should adapt compilation to match the number of cpus we have dynamically. This is cross-platform compatible with macos and linux only.
-
4339787379
doc: Detail configuration of hosted CI runners
Github-Pull: #32989 Rebased-From: f4272844833dd660c2b9db587856baa408889302
-
773e4cda94
ci: add ccache hit-rate warning when < 75%
Github-Pull: #32989 Rebased-From: dd1c5903e8d Print the ccache hit-rate for the job using a GitHub annotation if it was below 75%.
-
4e8b64b181
ci: fix annoying docker warning
Github-Pull: #32989 Rebased-From: 2aa288efdda Docker currently warns that we are missing a default value. Set this to scratch which will error if an appropriate image tag is not passed in to silence the warning.
-
6ded1fe117
ci: remove un-needed lint_run*.sh files
Github-Pull: #32989 Rebased-From: 3c5da69a232 ci/lint_run_all.sh: Only used in .cirrus.yml. Refer to test/lint/README.md on how to run locally.
-
4a034cbeb4
ci: reduce runner sizes on various jobs
Github-Pull: #33319 Rebased-From: 5eeb2facbbbbf68a2c30ef9e6747e39c85d7b116 These jobs can use reduced runner size to avoid wasting CPU, as much of the long-running part of the job is single-threaded. Suggested in: https://github.com/bitcoin/bitcoin/pull/32989#discussion_r2321775620 Co-authored-by: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz> -
78d93effd0
ci: Checkout latest merged pulls
Github-Pull: #33303 Rebased-From: fa8f081af31
-
5750355139
ci: link against -lstdc++ in native fuzz with msan job
Github-Pull: #33425 Rebased-From: b77137a5644e09a08442aed7d8a4a9290fb53526
-
f6d49d0a09
Merge bitcoin/bitcoin#33403: Backport Cirrus runners to 29.x
5750355139eb7fc2bd11124adf46bf053be6b690 ci: link against -lstdc++ in native fuzz with msan job (fanquake) 78d93effd03278b46e21ae8ef79f61f4ec32f855 ci: Checkout latest merged pulls (MarcoFalke) 4a034cbeb42763c6b7a82089973c4a30cb0cd1c4 ci: reduce runner sizes on various jobs (will) 6ded1fe11752372c52169d2aec7f0658bf9b0455 ci: remove un-needed lint_run*.sh files (willcl-ark) 4e8b64b181e1bb7d82789699eaac24dc1242afa3 ci: fix annoying docker warning (will) 773e4cda9446a03c0b23468ef8a9e38496b4566b ci: add ccache hit-rate warning when < 75% (will) 4339787379d2d246846e60f10ab9582805a6845e doc: Detail configuration of hosted CI runners (will) c7f290b826fc4928c6e1e0a9649da85d4752717b ci: dynamically match makejobs with cores (will) a08c3cc51c6875ba67f25c85143fdb61a8ba3e03 ci: remove .cirrus.yml (will) 06424fb004f916b06e4f0ab90fd6f7623049a360 ci: port lint (will) 0f0378fe3c590e835aa30be092f37109ddd63b86 ci: port msan-depends (will) 643385b22d9908f7665bf2addc734ba0323967b0 ci: port tsan-depends (will) 3b2dcc8b9aea8706a25690a0cd08ba60896d3542 ci: port tidy (will) b4286cf354a8111ed54fb63547dc1a7be7257b92 ci: port centos-depends-gui (will) 5057b9a6ffd360dbd96ad8585e10852961392361 ci: port previous-releases-depends-debug (will) 85ec6c6882b40adb35c9cb88d37d22e3e58eaa68 ci: port fuzzer-address-undefined-integer-nodepends (will) 544f902b2a9cf14cd0445f27802cd11c5c945b00 ci: port i686-multiprocess-DEBUG (will) e826c3daa55d3b4cbd0e2c13765f9158eb225bfd ci: port nowallet-libbitcoinkernel (will) 835b5b8bb18a318026ada74d3c63b89d6aab742b ci: port mac-cross-gui-notests (will) a91567a980adb93a05f12ec63b628ee3faaa4681 ci: force reinstall of kernel headers in asan (will) 819ee09af31687dedd38de68aef98b0ecc19608f ci: update asan-lsan-ubsan (will) 894a3cbe42bf900788b858faf59b3d97412e7d47 ci: update windows-cross job (will) 82c60a31515a2004976faaa26f8caad9e2bb022d ci: port arm 32-bit job (will) 849993377d76c64cc5ea14336e6523434608deb3 ci: add job to determine runner type (will) f9f3e8b68616dfb9e18082d191b87a457c4100da ci: add Cirrus cache host (will) af086431e86c82a5e40b05270f39c70cfe413c7b ci: have base install run in right dir (will) 0a649d07c994b1a6957131c8bb3a1d2e8d53e559 ci: use docker build cache arg directly (will) f3089fb2cfdba533fba1298e909628e5fe7dabb9 ci: use buildx in ci (will) 1faf918a169b76e69a486eb7fc8d88429b77b4b6 ci: add configure-docker action (will) 954c1a55e4a6322267071f5bffeb3188a6ac7d59 ci: add REPO_USE_CIRRUS_RUNNERS (will) 301aa5d814b620287b65d93399a20a794659cc79 ci: add caching actions (will) f63b8e960d5d06cdbbc360aaf781c13fd5aca172 ci: add configure environment action (will) Pull request description: Backports #32989 to the 29.x branch ACKs for top commit: m3dwards: ACK 5750355139eb7fc2bd11124adf46bf053be6b690 Tree-SHA512: c0509903043acd1c1e62f6382d9373a5c7a51377a76cbe6ea0cacf83cb03b10e658b8fd0dc2080acb9d6361f0a7883feb0134acd9bc53d164561364d42e111e7 -
118abf4c30
test: add block 2016 to mock mainnet
The next commit requires an additional mainnet block which changes the difficulty. Also fix a few minor mistakes in the test (suite): - rename the create_coinbase retarger_period argument to halving_period. Before bitcoin#31583 this was hardcoded for regtest where these values are the same. - drop unused fees argument from mine helper Finally the CPU miner instructions for generating the alternative mainnet chain are expanded. Github-Pull: #33446 Rebased-From: 4c3c1f42cf705e039751395799240da33ca969bd
-
22ab141243
rpc: fix getblock(header) returns target for tip
A target field was added to the getblock and getblockheader RPC calls in bitcoin#31583, but it mistakingly always used the tip value. Because regtest does not have difficulty adjustment, a test is added for mainnet instead. Github-Pull: #33446 Rebased-From: bf7996cbc3becf329d8b1cd2f1007fec9b3a3188
-
9d9baafc6f
doc: rpc: fix case typo in `finalizepsbt` help (final_scriptwitness)
Github-Pull: #33484 Rebased-From: ff05bebcc4262966b117082a67dc4c63a3f67d2d
-
6f23ead4a2
fuzz: don't bypass_limits for most mempool harnesses
Using bypass_limits=true is essentially fuzzing part of a reorg only, and results in TRUC invariants unable to be checked. Remove most instances of bypassing limits, leaving one harness able to do so. Github-Pull: #33504 Rebased-From: bbe8e9063c15dc230553e0cbf16d603f5ad0e4cf
-
666aec7d49
Mempool: Do not enforce TRUC checks on reorg
Not enforcing TRUC topology on reorg was the intended behavior, but the appropriate bypass argument was not checked. This mistake means we could potentially invalidate a long chain of perfectly incentive-compatible transactions that were made historically, including subsequent non-TRUC transactions, all of which may have been very high feerate. Lastly, it wastes CPU cycles doing topology checks since this behavior cannot actually enforce the topology in general for the reorg setting. Github-Pull: #33504 Rebased-From: 26e71c237d9d2197824b547f55ee3a0a60149f92
-
a8bb76b61f
test: add more TRUC reorg coverge
Github-Pull: #33504 Rebased-From: 06df14ba75be5f48cf9c417424900ace17d1cf4d
-
doc: update release notes for 29.x 2d7ebd2d91
-
d1b5d4e9ca
Merge bitcoin/bitcoin#33474: [29.x] Backports
2d7ebd2d913ea63c1a23fefa0a09ee06fb069161 doc: update release notes for 29.x (fanquake) a8bb76b61f49e1abd681f21a754f970eef206ced test: add more TRUC reorg coverge (Greg Sanders) 666aec7d49506c587ecbbcd71f6e8f1e7bb4e4cd Mempool: Do not enforce TRUC checks on reorg (Greg Sanders) 6f23ead4a2d97e245f4fc1824b1dd956dc06cc42 fuzz: don't bypass_limits for most mempool harnesses (Greg Sanders) 9d9baafc6f9357179e57fdcc6cf2ce36d65dd16d doc: rpc: fix case typo in `finalizepsbt` help (final_scriptwitness) (Sebastian Falbesoner) 22ab141243eeb4a929e589ef70a6f54a5aaed3ba rpc: fix getblock(header) returns target for tip (Sjors Provoost) 118abf4c305c01e6359a8588327a0b011ca52944 test: add block 2016 to mock mainnet (Sjors Provoost) Pull request description: Backports: * #33446 * #33484 * #33504 ACKs for top commit: luke-jr: ACK 2d7ebd2d913ea63c1a23fefa0a09ee06fb069161 dergoegge: ACK 2d7ebd2d913ea63c1a23fefa0a09ee06fb069161 marcofleon: ACK 2d7ebd2d913ea63c1a23fefa0a09ee06fb069161 Tree-SHA512: 27b852177d8502d6c703cb0eeb1e4df9d651c9c8add5fbf6ae4eeb4b8aefc145471f38f9794c0ed276bf7ebba1844ecbaf5a84cb5913ca7d0a546f5216ea3b2d -
6b3c1dbc5c
contrib: fix using macdploy script without translations.
QT translations are optional, but the script would error when 'translations_dir' falls back to its default value NULL. This PR fixes it by moving the set-up of QT translations under the check for 'translations_dir' presence. Github-Pull: #33482 Rebased-From: 7b5261f7ef3d88361204c40eb10c0d9dc44f5ed7
-
build: bump version to v29.2rc2 eea16f7de7
-
doc: update manual pages for v29.2rc2 513cef75ee
-
doc: update release notes for 29.2rc2 d82fc69829
-
398c176ea8
Merge bitcoin/bitcoin#33534: [29.x] Finalise 29.2rc2
d82fc69829cd8cabbaf2c3a969597b40c32edc86 doc: update release notes for 29.2rc2 (fanquake) 513cef75ee06bc5d310a22d366a5f3c815aa1499 doc: update manual pages for v29.2rc2 (fanquake) eea16f7de7c4382e4491f3b018ecd0c36678affb build: bump version to v29.2rc2 (fanquake) 6b3c1dbc5c0df4357ee7f57ac238bcdff55526af contrib: fix using macdploy script without translations. (amisha) Pull request description: It's been 2 weeks since rc1: https://github.com/bitcoin/bitcoin/releases/tag/v29.2rc1. We've backported more changes: * #33403 * #33474 * #33482 Lets do `rc2`. ACKs for top commit: davidgumberg: reACK d82fc69 glozow: ACK d82fc69829cd8cabbaf2c3a969597b40c32edc86 darosior: utACK d82fc69829cd8cabbaf2c3a969597b40c32edc86. Changes look good to me, but i have not been through the process of regenerating the doc myself. Tree-SHA512: c829efe89f86c9c76767ffe60a3779ece902ee9e3c8f6b4203562aaf257019484bfa49916ddfabdcabbd1478368d9b80a3f0a15057778aa1984852ea245283a6 -
build: fix depends Qt download link abf4a6eeae
-
8bcb90d7e3
Merge bitcoin/bitcoin#33563: [29.x] build: fix depends Qt download link
abf4a6eeaee116917dafd56eb9caee03e13048d2 build: fix depends Qt download link (fanquake) Pull request description: Fix Qt download path, so we wont always hit the fallback. ACKs for top commit: hebasto: ACK abf4a6eeaee116917dafd56eb9caee03e13048d2. Tree-SHA512: 1157528983ede46c60810eae5c73f4bd81640afcae9afd9aad14c30104e90c52f8e97755f22314a5514bc1de3a92d864398087fe826f1980acc772fd32535a9f -
doc: update release notes for 29.2 3226616493
-
build: bump version to v29.2 b2026fa290
-
doc: update manual pages for v29.2 46d9b9091b
-
2d6426c296
Merge bitcoin/bitcoin#33551: [29.x] Finalise 29.2
46d9b9091baa096da30da5e14329a32f1264229a doc: update manual pages for v29.2 (fanquake) b2026fa290f0aef9a0dcfe45750121f113e2ce7d build: bump version to v29.2 (fanquake) 3226616493289b111997bb107e569fef54386743 doc: update release notes for 29.2 (fanquake) Pull request description: I'm optimistic that 29.2 wont need an `rc3`. ACKs for top commit: instagibbs: ACK 46d9b9091baa096da30da5e14329a32f1264229a stickies-v: ACK 46d9b9091baa096da30da5e14329a32f1264229a glozow: ACK 46d9b9091baa096da30da5e14329a32f1264229a Tree-SHA512: f515d2dfbbe60dc145f79425cb2e8ef7a443e69dab208b9acdf357dae7cca3f566f7d013a85c6d4330d8931da060320159a3a9d8dae0ea3ff18bba5aeb282722 -
DrahtBot commented at 4:30 am on October 26, 2025: contributor♻️ Automatically closing for now based on heuristics. Please leave a comment, if this was erroneous. Generally, please focus on creating high-quality, original content that demonstrates a clear understanding of the project’s requirements and goals.
-
DrahtBot closed this on Oct 26, 2025
-
DrahtBot commented at 4:30 am on October 26, 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/33708.
Reviews
See the guideline for information on the review process. A summary of reviews will appear here.
LLM Linter (✨ experimental)
Possible typos and grammar issues:
- C_VISBILITY_PRESET -> C_VISIBILITY_PRESET [spelling error in identifier makes the term unclear]
- defintions -> definitions [spelling error]
- intrumentation -> instrumentation [spelling error]
drahtbot_id_5_m
-
achow101 renamed this:
29.x
.
on Oct 26, 2025 -
bitcoin locked this on Oct 26, 2025
github-metadata-mirror
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-11-02 18:12 UTC
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-11-02 18:12 UTC
This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me
More mirrored repositories can be found on mirror.b10c.me