44212 Commits

Author SHA1 Message Date
glozow
06eb42d83c [doc] manpages for 29.1rc1 2025-07-24 13:20:21 -04:00
glozow
735ffad864 [build] bump version to 29.1rc1 2025-07-24 12:40:27 -04:00
merge-script
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
2025-07-24 12:32:38 -04:00
merge-script
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
2025-07-24 16:59:04 +01:00
fanquake
c6fe6971bf doc: update release notes for 29.x 2025-07-24 10:00:40 -04:00
furszy
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
2025-07-24 09:29:11 -04:00
merge-script
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
2025-07-24 12:15:56 +01:00
Antoine Poinsot
f25dc84b28 doc: update release notes for 29.x 2025-07-23 12:47:50 -04:00
fanquake
411e15194b
doc: update release notes for 29.x 2025-07-23 16:47:49 +01:00
MarcoFalke
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
2025-07-23 16:47:12 +01:00
MarcoFalke
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
2025-07-23 16:46:48 +01:00
Antoine Poinsot
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
2025-07-18 16:51:54 -04:00
Antoine Poinsot
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
2025-07-18 16:51:54 -04:00
Antoine Poinsot
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
2025-07-18 16:51:53 -04:00
merge-script
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
2025-07-18 13:47:15 -04:00
fanquake
5300295083
doc: update release notes for 29.x 2025-07-16 13:51:57 +01:00
fanquake
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:
9c2668ef77/mingw-w64-headers/include/iphlpapi.h (L36-L41).

Imports a commit from usptream (a14ff91254f40cf36e0fee199e26fb11260fab49).

Fixes #32707.

Github-Pull: #32837
Rebased-From: f5647c6c5ae85e9469cfc5df6fcac23752e1695a
2025-07-16 13:50:53 +01:00
Hennadii Stepanov
f798c317a0
cmake: Drop no longer necessary "cmakeMinimumRequired" object
Github-Pull: #32954
Rebased-From: 12a6959892cb24b940b3579828f2066651572153
2025-07-16 13:31:40 +01:00
Hennadii Stepanov
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
2025-07-14 13:34:27 +01:00
Jameson Lopp
58b1a65ab0
add more bad p2p ports
Github-Pull: #32826
Rebased-From: 6967e8e8abbc35ac98e8e3745a8bbed56e77526f
2025-07-04 16:35:35 +01:00
ismaelsadeeq
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
2025-07-04 09:34:31 +01:00
ismaelsadeeq
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
2025-07-04 09:34:28 +01:00
Salvatore Ingala
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
2025-07-03 17:42:44 +01:00
Hennadii Stepanov
e5a7575a6d
doc: Add workaround for vcpkg issue with paths with embedded spaces
Github-Pull: #32858
Rebased-From: 0a1af4418ed2a135001cc0e10f0af44cbd64e521
2025-07-03 16:25:19 +01:00
Greg Sanders
59a83fb8d1
functional test: correctly detect nonstd TRUC tx vsize in feature_taproot
Github-Pull: #32859
Rebased-From: f0524cda3995cf65adab3d0ca8da0dee4e31c79b
2025-07-03 12:03:30 +01:00
Greg Sanders
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
2025-07-03 12:03:06 +01:00
Hennadii Stepanov
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
2025-07-03 11:58:03 +01:00
pablomartin4btc
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
2025-07-03 11:58:03 +01:00
pablomartin4btc
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
2025-07-03 11:58:03 +01:00
brunoerg
222fbfcc6a
test: check P2SH sigop count for coinbase tx
Github-Pull: #32850
Rebased-From: d6aaffcb11adcf47480fcc5081af9dcb732decf3
2025-07-03 11:58:03 +01:00
merge-script
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
2025-07-03 11:57:31 +01:00
fanquake
ef2a013e31
doc: update release notes for 29.x 2025-06-30 13:29:28 +01:00
dergoegge
4b656e2023
test: Add msgtype to msg_generic slots
Github-Pull: #32833
Rebased-From: 7dc43ea503a2c145ffd4fe14b794300bfc2bcdee
2025-06-30 13:28:55 +01:00
Antoine Poinsot
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
2025-06-26 17:36:06 +01:00
Antoine Poinsot
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
2025-06-26 17:36:02 +01:00
Hennadii Stepanov
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
2025-06-26 15:02:08 +01:00
Hennadii Stepanov
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
2025-06-26 12:10:51 +01:00
Sebastian Falbesoner
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
2025-06-26 11:24:02 +01:00
will
e37a70bf71
build: add root dir to CMAKE_PREFIX_PATH
Nix patches cmake to remove the root directory `/` from
`CMAKE_SYSTEM_PREFIX_PATH`:
428b49b28e/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
2025-06-25 11:38:37 +01:00
merge-script
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
2025-06-25 11:03:05 +01:00
fanquake
0922f6bbc3
doc: update release notes for 29.x 2025-06-23 12:48:15 +01:00
David Gumberg
5697605414
contrib: tracing: Correctly read msg type in p2p_monitor.py
Github-Pull: #32771
Rebased-From: 3473986fe10e2689fe36cc93e1e50013649ac14b
2025-06-23 10:01:45 +01:00
zaidmstrr
4c7ed36c96
test: Fix list index out of range error in feature_bip68_sequence.py
Github-Pull: #32765
Rebased-From: e285e691b7a311e278f89e9fe423716de1ee268b
2025-06-19 15:06:14 +01:00
fanquake
3e23b47a6f
doc: fix transifex 404s
Github-Pull: #32777
Rebased-From: 53a996f122663e271efa52c45b173613b8ac635e
2025-06-19 11:48:46 +01:00
Sjors Provoost
616baf3c27
doc: taproot became always active in v24.0
Github-Pull: #32776
Rebased-From: 8ee8a951c205c5365f7557253b8fffc12e6e670c
2025-06-19 11:42:10 +01:00
fanquake
ef6111bd18
depends: capnp 1.2.0
Github-Pull: #32760
Rebased-From: c7eaac326ac20a745d1bc6dbc6bc48c1b5eb46f8
2025-06-19 10:40:41 +01:00
Martin Zumsande
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
2025-06-19 10:39:27 +01:00
furszy
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
2025-06-19 10:39:27 +01:00
josibake
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
2025-06-19 10:39:27 +01:00
Hodlinator
27c533052c
doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project"
Matches /share/setup.nsi.in:14

Github-Pull: #32719
Rebased-From: 239fc4d62e73511b3ef5117706d4c5131a921955
2025-06-19 10:39:27 +01:00