44433 Commits

Author SHA1 Message Date
merge-script
3fc0865963 Merge bitcoin/bitcoin#35674: [29.x] Finalise 29.4
11d079d8b8 doc: update manual pages for v29.4 (fanquake)
184639fb1c doc: update release notes for v29.4 (fanquake)
873e354b6b build: bump version to v29.4 (fanquake)

Pull request description:

  The [`v29.4rc1` bins](https://bitcoincore.org/bin/bitcoin-core-29.4/test.rc1/) have been up for nearly 2 weeks. There doesn't seem to be anything else that needs backporting, and no issues have been reported. Finalise `v29.4`.

ACKs for top commit:
  sedited:
    ACK 11d079d8b8
  willcl-ark:
    ACK 11d079d8b8

Tree-SHA512: 7beac3b0c2d7954146262c8be7027bbf42179ef5f8ebb66392aaab0e1255a06890770d27671f9a96b7f3e60e61c3f809cf0b83f2994bf41b947c6f1d5571eb59
v29.4
2026-07-08 10:45:03 +02:00
fanquake
11d079d8b8 doc: update manual pages for v29.4 2026-07-07 11:24:37 +01:00
fanquake
184639fb1c doc: update release notes for v29.4 2026-07-07 11:22:39 +01:00
fanquake
873e354b6b build: bump version to v29.4 2026-07-07 11:21:52 +01:00
merge-script
01b4861961 Merge bitcoin/bitcoin#35450: [29.x] 29.4rc1
88cd3a7711 doc: update manual pages for v29.4rc1 (fanquake)
116565bc0a build: bump version to v29.4rc1 (fanquake)
d82afa961b doc: update release notes for v29.4rc1 (fanquake)
ea8fafd2bf fuzz: Remove unused g_setup pointers (MarcoFalke)
1907b3f56c coins: compact chainstate in background (Lőrinc)
9dd8e32853 validation: randomly compact chainstate (Lőrinc)
e0ab4cffaa coins: test chainstate flush baseline (Lőrinc)
53a5c7f1c9 lint: disable leveldb subtree check (fanquake)

Pull request description:

  Backports:
  * #35465

  Final changes for v`29.4rc1`.

  Backports since 29.3:
  * #34680
  * #34855
  * #35212
  * #35234

ACKs for top commit:
  sedited:
    ACK 88cd3a7711

Tree-SHA512: 57d647f0baf124128d84072c3865cca72ca4a266e95f88b8e1313230aa70a25d76d372e042b095312325b57983805943179d46bfa898522303e90adb69c74347
v29.4rc1
2026-06-23 20:20:19 +02:00
fanquake
88cd3a7711 doc: update manual pages for v29.4rc1 2026-06-22 14:04:02 +01:00
fanquake
116565bc0a build: bump version to v29.4rc1 2026-06-22 14:04:02 +01:00
fanquake
d82afa961b doc: update release notes for v29.4rc1 2026-06-22 14:04:02 +01:00
MarcoFalke
ea8fafd2bf fuzz: Remove unused g_setup pointers
These are unused and removing them avoids clang warnings like:

src/test/fuzz/deserialize.cpp:42:26: error: variable g_setup set but not used [-Werror,-Wunused-but-set-variable]
2026-06-22 14:04:02 +01:00
Lőrinc
1907b3f56c coins: compact chainstate in background
Full chainstate compaction can take minutes on large databases.
Move `CCoinsViewDB::CompactFull()` to a named `utxocompact` one-shot background thread so validation only schedules the work.

When validation selects compaction after a full flush, the chainstate was just written and another write is less likely to be needed immediately.
The coins view destructor waits for completion, and a mutex prevents compaction from using `m_db` while `ResizeCache()` replaces it.

Co-authored-by: Andrew Toth <andrewstoth@gmail.com>

Github-Pull: #35465
Rebased-From: 394e473d42
2026-06-22 14:04:00 +01:00
Lőrinc
9dd8e32853 validation: randomly compact chainstate
Full chainstate flushes are convenient maintenance points for long-term LevelDB cleanup because the chainstate was just written.
Randomize the trigger so nodes that flush near the same height do not compact together.

Add blocking chainstate compaction through `CCoinsViewDB::CompactFull()` and give each post-IBD full flush on the normal chainstate a 1/320 chance to start compaction.
With hourly flushes this averages roughly every two weeks and makes a six-month miss about one in a million.
This keeps the schedule stateless and leaves last-compaction height or timestamp bookkeeping out of chainstate metadata.

Co-authored-by: Andrew Toth <andrewstoth@gmail.com>

Github-Pull: #35465
Rebased-From: aa021b26f3
2026-06-22 14:03:39 +01:00
Lőrinc
e0ab4cffaa coins: test chainstate flush baseline
Add `CDBWrapper::GetProperty()` and expose it through `CCoinsViewDB::GetDBProperty()` so coins tests can inspect LevelDB runtime properties through the coins view.
Use it in a coins DB flush baseline that records the LevelDB layout after flushing while keeping readback coverage for the flushed coin and best block.

Co-authored-by: Andrew Toth <andrewstoth@gmail.com>

Github-Pull: #35465
Rebased-From: b10889d107
2026-06-22 11:54:22 +01:00
fanquake
53a5c7f1c9 lint: disable leveldb subtree check
This is no-longer a proper subtree, because of direct cherry-picks.
2026-06-17 08:12:23 +02:00
merge-script
d476c286c4 Merge bitcoin/bitcoin#35234: [29.x] Backports
d8da418220 doc: update release notes for v29.x (fanquake)
9d62f5d0be ci: use ubuntu-latest instead of ubuntu-24.04 (fanquake)
33dd5e74d8 doc: remove reference to cirrus (fanquake)
1907ee01fe ci: switch runners from cirrus to warpbuild (will)
b631f27246 Disable seek compaction (Andrew Toth)
e5613db113 depends: Unset `SOURCE_DATE_EPOCH` in `gen_id` script (Hennadii Stepanov)
005738e3b8 wallet: use outpoint when estimating input size (Lőrinc)
4e3dd136b8 doc: mention -DWITH_ZMQ=ON in BSD build guides (junbyjun1238)

Pull request description:

  Backports:
  * #34228
  * #35228
  * #35283
  * #35313 (only https://github.com/bitcoin-core/leveldb-subtree/pull/61)
  * #35378
  * #35408

ACKs for top commit:
  andrewtoth:
    ACK d8da418220
  marcofleon:
    ACK d8da418220

Tree-SHA512: 95b127da5d16ca26648c41e1b50d1a82b2d94a9a45efbea788accbf67ea8f46fc04ca3c9fe680cd302985cafbde2ac34873fbaf39634e575da22301e13818227
2026-06-03 09:43:29 +01:00
fanquake
d8da418220 doc: update release notes for v29.x 2026-06-02 16:06:31 +01:00
fanquake
9d62f5d0be ci: use ubuntu-latest instead of ubuntu-24.04
To match the usage of -latest for the warp runners.

Github-Pull: #35408
Rebased-From: 5700a61b73
2026-06-02 09:24:55 +01:00
fanquake
33dd5e74d8 doc: remove reference to cirrus
Github-Pull: #35408
Rebased-From: 265563bf75
2026-06-02 09:24:55 +01:00
will
1907ee01fe ci: switch runners from cirrus to warpbuild
Github-Pull: #35378
Rebased-From: 4bdd46ace3
2026-06-02 09:24:55 +01:00
Andrew Toth
b631f27246 Disable seek compaction
Seek compaction is causing a cascade effect in the chainstate DB, causing large parts of the database to be rewritten every ~hour.

Every periodic flush writes around 2 MiB. Since this is roughly the `write_buffer_size`, these writes regularly cause the memtable to rotate into a small L0 file. This file has a small seek budget, and with the random UTXO reads done during validation, it can get scheduled for seek compaction quickly.

That seek compaction pushes the small file down to L1. Since most UTXOs are already lower down in L4/L5, many reads that consult this file do not find the key there and continue downward. The bloom filter makes those misses cheap, but LevelDB still decrements the file's seek budget. The file then gets scheduled for another seek compaction, and the same pattern pushes it down through L2 and L3.

The expensive part happens around L3/L4. L4 has many ~32 MiB files holding the bulk of the UTXO set. When LevelDB compacts into L3, it may split the output into many smaller L3 files to limit how much L4 "grandparent" data any one output overlaps. Each of these small L3 files then gets its own small seek budget. Because chainstate keys are hash-random, each small L3 file can still have a broad key range, so many random reads consult it and quickly drain its budget. Once seek-compacted into L4, each tiny L3 file can overlap many L4 files, so compacting a few hundred KiB from L3 can require rewriting hundreds of MiB from L4. Repeating that across many small L3 files can rewrite most of the chainstate.

This is a poor fit for chainstate because UTXO keys are hash-random, the DB is large enough to have many levels, writes are relatively small and periodic, and reads are frequent. The result is that read misses trigger compactions much earlier than size pressure would, and those compactions have very high write amplification.

Disabling seek compaction may leave more files in upper levels for longer, so reads could theoretically consult more files. But Bitcoin Core enables bloom filters for all its LevelDB instances, so these misses are usually cheap in-memory filter checks rather than disk reads.

For the other DBs, the risk is much smaller. They also use bloom filters, and most are smaller and less read-heavy. With fewer levels and less random read pressure, disabling seek compaction should have little effect there.

Co-authored-by: l0rinc <pap.lorinc@gmail.com>

Github-Pull: #35313
Rebased-From: 6bfdb6093bba4710d0f8313ed0113967a8b5176f
2026-06-02 09:23:42 +01:00
Hennadii Stepanov
e5613db113 depends: Unset SOURCE_DATE_EPOCH in gen_id script
Github-Pull: #34228
Rebased-From: 9f7a2293c4
2026-06-02 09:21:08 +01:00
Lőrinc
005738e3b8 wallet: use outpoint when estimating input size
`CalculateMaximumSignedInputSize()` is passed the outpoint being sized, but that context was not used when estimating the signed input size.
Pass the outpoint through so externally selected inputs are not underestimated.

Co-authored-by: Antoine Poinsot <darosior@protonmail.com>

Github-Pull: #35228
Rebased-From: cd8d3bd937
2026-05-20 16:34:36 +01:00
junbyjun1238
4e3dd136b8 doc: mention -DWITH_ZMQ=ON in BSD build guides
The FreeBSD, NetBSD, and OpenBSD build guides state that ZMQ support is compiled in when the package is installed. Since WITH_ZMQ defaults to OFF, update the wording to mention the required CMake option.

Github-Pull: #35283
Rebased-From: ca93ab808c
2026-05-14 14:18:01 +01:00
Ava Chow
572ef0fa43 Merge bitcoin/bitcoin#35212: [29.x] validation: correct lifetime of precomputed tx data
9ad085bd83 validation: correct lifetime of precomputed tx data (Antoine Poinsot)

Pull request description:

  This backports #35209 to the version 29 branch.

ACKs for top commit:
  achow101:
    ACK 9ad085bd83
  theuni:
    ACK 9ad085bd83

Tree-SHA512: e9dd4d43ee348015d3b7b485bef4617c69ad8e0c70589f84a16eb2b1d97bdefd21ce5d72ad6a2d8d25bc90d98f65d53374ca921210cab3b0db773072126459f6
2026-05-06 01:32:52 -07:00
Ava Chow
062863d40f Merge bitcoin/bitcoin#34855: [29.x] Backports
83b46506a1 doc: update release notes for v29.x (fanquake)
18739ec488 ci: unconfine seccomp for i686 no IPC (Lőrinc)
546598b736 multi_index: fix compilation failure with boost >= 1.91 (Cory Fields)
0fb5e167e8 cmake: Migrate away from deprecated SQLite3 target (Daniel Pfeifer)

Pull request description:

  Backports:
  * #34848
  * #35175
  * #35202

ACKs for top commit:
  achow101:
    ACK 83b46506a1
  willcl-ark:
    reACK 83b46506a1

Tree-SHA512: 564ad5e9f9ab1f627bb87f083ba55c5e32af31942b2e365e5889bab6e3e85a957b1c513967fe7e1310ab439d23256f8de39bef25105dbded5514977b6ad81cf9
2026-05-06 01:10:41 -07:00
fanquake
83b46506a1 doc: update release notes for v29.x 2026-05-05 15:13:26 +02:00
Lőrinc
18739ec488 ci: unconfine seccomp for i686 no IPC
Docker 29.4.2 blocks `socketcall(2)` in the default seccomp profile:
https://docs.docker.com/engine/release-notes/29/#2942
https://github.com/moby/profiles/releases/tag/seccomp%2Fv0.2.2
https://github.com/moby/moby/pull/52501

That affects the `i686, no IPC` job because it runs 32-bit Linux test binaries inside Docker.

Add Docker's documented `--security-opt seccomp=unconfined` workaround to this job's `CI_CONTAINER_CAP` - the hook `ci/test/02_run_container.py` already appends to `docker run`.

This restores socket availability for the 32-bit test binaries throughout the job:
https://docs.docker.com/engine/security/seccomp/#run-without-the-default-seccomp-profile

Github-Pull: #35202
Rebased-From: 11c9ef92a8
2026-05-05 15:12:37 +02:00
Antoine Poinsot
9ad085bd83 validation: correct lifetime of precomputed tx data
This makes sure `txsdata` always outlives the Script check queue (since local
objects are destructed in reverse order of construction).

This is the root cause for a security vulnerability reported by Cory Fields in
2024 that could be exploited by crafting an invalid block to cause nodes to
read freed memory. The vulnerability was covertly fixed in commit
`492e1f09943fcb6145c21d470299305a19e17d8b`.

See security advisory for CVE-2024-52911 for more details.

Github-Pull: #35209
Rebased-From: 1ed799fb21
2026-05-05 08:18:58 -04:00
Cory Fields
546598b736 multi_index: fix compilation failure with boost >= 1.91
This effectively reverts a3cb309e7c from PR #30194.

That PR reduced the multi_index type signatures as recommended upstream, but
this is no longer supported as of boost 1.91 because it is no longer necessary.
1.91 drops support for the pre-c++11 work-arounds that bloated the type
signatures to begin with.

The upstream `BOOST_MULTI_INDEX_ENABLE_MPL_SUPPORT` define is meant to provide
compatibility with removed features, but it does not work for this case. Using
`indexed_by` directly when defining the `multi_index` (as opposed to inheriting
from it) works with all versions, and avoids the use of the back-compat define.

This is a slight regression when building against boost < 1.91 because the
bloated type signatures are reintroduced in that case, but it's not significant
enough to go to the trouble of introducing version detection and ifdefs.

Github-Pull: #35175
Rebased-From: 0bc9d354df
2026-04-30 15:06:17 +01:00
Daniel Pfeifer
0fb5e167e8 cmake: Migrate away from deprecated SQLite3 target
CMake version 4.3 deprecated the imported target `Sqlite::Sqlite3`.
Use the preferred name `Sqlite3::Sqlite3` instead and provide an
alias for older versions of CMake. Also define the same alias when
using vcpkg.

Github-Pull: #34848
Rebased-From: 498b6eb6b5
2026-03-19 14:36:27 +08:00
merge-script
8d6ebc80ce Merge bitcoin/bitcoin#34680: [29.x] Backports
98ea6caed5 doc: update release notes for v29.x (fanquake)
490cd874a4 netif: fix compilation warning in QueryDefaultGatewayImpl() (MarcoFalke)
98af76f875 wallet: rpc: manpage: fix example missing `fee_rate` argument (SomberNight)
532afe909e doc: Update Guix install for Debian/Ubuntu (MarcoFalke)
5910bd3b5d doc: fix broken bpftrace installation link (jayvaliya)

Pull request description:

  Backports:
  * #34093
  * #34510
  * #34561
  * #34671

ACKs for top commit:
  marcofleon:
    ACK 98ea6caed5

Tree-SHA512: 01d4c4e41f27c98c9f37d6140e0be0e2ec21f147dc82fd8652c16c9c09650fea8a8cbd7df2571cb7f108c4178c8eab8ca992a58f42ac6eab5f74bd97e435efb0
2026-03-09 17:07:07 +00:00
fanquake
98ea6caed5 doc: update release notes for v29.x 2026-02-27 12:12:11 +00:00
MarcoFalke
490cd874a4 netif: fix compilation warning in QueryDefaultGatewayImpl()
```
src/common/netif.cpp:137:51: error: comparison of integers of different signs: 'int64_t' (aka 'long') and 'unsigned long' [-Werror,-Wsign-compare]
  137 |         for (nlmsghdr* hdr = (nlmsghdr*)response; NLMSG_OK(hdr, recv_result); hdr = NLMSG_NEXT(hdr, recv_result)) {
      |                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/netlink/netlink.h:220:31: note: expanded from macro 'NLMSG_OK'
  220 | #define NLMSG_OK(_hdr, _len)            NL_ITEM_OK(_hdr, _len, NLMSG_HDRLEN, _NLMSG_LEN)
      |                                         ^                ~~~~  ~~~~~~~~~~~~
/usr/include/netlink/netlink.h:203:10: note: expanded from macro 'NL_ITEM_OK'
  203 |         ((_len) >= _hlen && _LEN_M(_ptr) >= _hlen && _LEN_M(_ptr) <= (_len))
      |           ~~~~  ^  ~~~~~
1 error generated.
```

Happens on FreeBSD 15.0, with the default compiler (Clang 19).

On FreeBSD 14, `/usr/include/netlink/netlink.h` contains:
```
 #define NLMSG_HDRLEN                    ((int)sizeof(struct nlmsghdr))
```

On FreeBSD 15, `/usr/include/netlink/netlink.h` contains:
```
 #define NLMSG_HDRLEN                    (sizeof(struct nlmsghdr))
```

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>

Github-Pull: #34093
Rebased-From: c1361fc42d
2026-02-27 12:10:52 +00:00
SomberNight
98af76f875 wallet: rpc: manpage: fix example missing fee_rate argument
The function signature for the `send` RPC is:
```
send [{"address":amount,...},{"data":"hex"},...] ( conf_target "estimate_mode" fee_rate options version )
```

The last example in the manpage is missing the `fee_rate` arg, but is trying to specify the `options` arg, by index.
The parser confuses the intended `options` arg as the missing `fee_rate` arg.

See:
```
$ bitcoin-cli -rpcuser=doggman -rpcpassword=donkey -rpcport=18554 -regtest send '{"bcrt1qusm48zmlzwr32csxdw4ar7atw260h22c9ten9l": 0.1}' 1 economical '{"add_to_wallet": false, "inputs": [{"txid":"0b7e1a471dc948b7a6187936b16e6d7d9833629b2f9dd8a392eb89928f63aaad", "vout":0}]}'
error code: -8
error message:
Cannot specify both conf_target and fee_rate. Please provide either a confirmation target in blocks for automatic fee estimation, or an explicit fee rate.
```
vs
```
$ bitcoin-cli -rpcuser=doggman -rpcpassword=donkey -rpcport=18554 -regtest send '{"bcrt1qusm48zmlzwr32csxdw4ar7atw260h22c9ten9l": 0.1}' 1 economical null '{"add_to_wallet": false, "inputs": [{"txid":"0b7e1a471dc948b7a6187936b16e6d7d9833629b2f9dd8a392eb89928f63aaad", "vout":0}]}'
{
  "psbt": "cHNidP8BAHECAAAAAa2qY4+SieuSo9idL5tiM5h9bW6xNnkYprdIyR1HGn4LAAAAAAD9////AkR2DwQAAAAAFgAUpLDwJu+wFRHLQAgKAb0psk7UVd2AlpgAAAAAABYAFOQ3U4t/E4cVYgZrq9H7q3K0+6lYAAAAAAABAIUCAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wQC4wMA/////wLIF6gEAAAAABYAFLMY1zihXrefAA0DA5nld4MCPjkrAAAAAAAAAAAmaiSqIant4vYcP3HR3v0/qZnfo2lTdVxpBol5mWK0i+vYNpdOjPkAAAAAAQEfyBeoBAAAAAAWABSzGNc4oV63nwANAwOZ5XeDAj45KwEIawJHMEQCIElTV4pbUrsPR9qHWcioowVv3QVWHizxwevfD0u/I8YyAiBCY3OzF81PSLM00h4ueQkehYuxDFZu7Jk51iejphKnnwEhA0VKdYVSyBpWoxBwTDOupB58Fi3mEBs+u+OOqEYVd2sZACICA98YLWyH7dBCfXVxe7woiLSTgV1mJN8Zc8KgZ77pVSg+GNBMeT5UAACAAQAAgAAAAIABAAAAbAAAAAAA",
  "txid": "625b71b314a6ac4f738634e29dc007cd5edc0427c1ae96ab706d06a62910cea2",
  "hex": "02000000000101adaa638f9289eb92a3d89d2f9b6233987d6d6eb1367918a6b748c91d471a7e0b0000000000fdffffff0244760f0400000000160014a4b0f026efb01511cb40080a01bd29b24ed455dd8096980000000000160014e437538b7f13871562066babd1fbab72b4fba9580247304402204953578a5b52bb0f47da8759c8a8a3056fdd05561e2cf1c1ebdf0f4bbf23c6320220426373b317cd4f48b334d21e2e79091e858bb10c566eec9939d627a3a612a79f012103454a758552c81a56a310704c33aea41e7c162de6101b3ebbe38ea84615776b1900000000",
  "complete": true
}
```

Github-Pull: #34561
Rebased-From: 50cf6838e6
2026-02-26 10:00:35 +00:00
MarcoFalke
532afe909e doc: Update Guix install for Debian/Ubuntu
Fixes https://github.com/bitcoin/bitcoin/issues/33982

Co-authored-by: Purple Ninja <129023353+ToRyVand@users.noreply.github.com>

Github-Pull: #34671
Rebased-From: faa70ca764
2026-02-26 09:58:20 +00:00
jayvaliya
5910bd3b5d doc: fix broken bpftrace installation link
The bpftrace project moved from iovisor/bpftrace to bpftrace/bpftraceand
removed the separate INSTALL.md file. Installation instructionsare now
in the README.md Quick Start section.

Github-Pull: #34510
Rebased-From: 42ee31e80c
2026-02-26 09:56:28 +00:00
merge-script
99003bed87 Merge bitcoin/bitcoin#34536: [29.x] Finalise v29.3
c9a7bd90eb doc: Update man pages for v29.3 (sedited)
ea6af54a63 doc: Update release notes for 29.3 (sedited)
824de1e6b3 build: Bump version to 29.3 (sedited)

Pull request description:

  Bump version in build and doc, and regenerate the man pages in preparation for the release of v29.3.

ACKs for top commit:
  fanquake:
    ACK c9a7bd90eb
  willcl-ark:
    ACK c9a7bd90eb

Tree-SHA512: ff05dcb829fb2d9e7a8053cd275415c53148db0b826845a556fff4d3ef04320ef063188c50c5dd24e62142e15763cbabe68ce1cb8eac9d78ccb605ec10519f9a
v29.3
2026-02-09 14:24:44 +00:00
sedited
c9a7bd90eb doc: Update man pages for v29.3 2026-02-09 13:36:20 +01:00
sedited
ea6af54a63 doc: Update release notes for 29.3 2026-02-09 10:16:24 +01:00
sedited
824de1e6b3 build: Bump version to 29.3 2026-02-09 10:14:48 +01:00
merge-script
8de2549bda Merge bitcoin/bitcoin#34450: [29.x] backports + final changes for 29.3rc2
2b2c4daa53 [doc] generate manpages 29.3rc2 (sedited)
75c2108a68 [doc] update release notes for 29.3rc2 (sedited)
16493e35cd Bump version to 29.3rc2 (sedited)
340b58a8ce Add sedited to trusted-keys (sedited)

Pull request description:

  Backport:

  * #34236

  And finalize 29.3rc2.

ACKs for top commit:
  hebasto:
    re-ACK 2b2c4daa53.

Tree-SHA512: 9b145ab19eaa88ad11075b8362d3131ed80578ad46a1be6bfc4687dbcbcd25388b890128b60a54db4b7c1cb9c9d177150c460353e5cac904aac47e0cfde4218e
v29.3rc2
2026-01-30 11:41:32 +00:00
sedited
2b2c4daa53 [doc] generate manpages 29.3rc2 2026-01-30 08:46:42 +01:00
sedited
75c2108a68 [doc] update release notes for 29.3rc2 2026-01-30 08:46:37 +01:00
sedited
16493e35cd Bump version to 29.3rc2 2026-01-29 18:01:16 +01:00
sedited
340b58a8ce Add sedited to trusted-keys
Github-Pull: bitcoin/bitcoin#34236
Rebased-From: d1b227f3ad
2026-01-29 17:58:24 +01:00
merge-script
115172ceb8 Merge bitcoin/bitcoin#34370: [29.x] Fix #34222 backport bugs
65173944ed QA: tool_wallet: Check that db.log is deleted with a lone legacy wallet, but not with a shared db environment (Luke Dashjr)
69a6b9b115 Bugfix: Wallet/Migration: Move backup into wallet directory when migrating from non-directory (Luke Dashjr)
cef01d0be5 Wallet/Migration: Skip moving the backup file back and forth for no reason (Luke Dashjr)
60f529027c Wallet/Migration: If loading the new watchonly or solvables wallet fails, log the correct wallet name in error message (Luke Dashjr)
7475d134f6 Wallet/bdb: Safely and correctly list files only used by the single wallet (Luke Dashjr)

Pull request description:

ACKs for top commit:
  achow101:
    ACK 65173944ed
  furszy:
    light ACK 65173944ed

Tree-SHA512: c10fe00dde512ca78cd6939a748b3875d0b40e9714997aedfd939a1dffdc7eaa2fd1779f3972a34b1c1d9a97d8f1ee1e082c970de15ac0e2ef5d9bbf3dc1d89a
2026-01-29 17:48:10 +01:00
merge-script
74bf92e5f4 Merge bitcoin/bitcoin#34446: [29.x] Backport CI changes
3835e16e5f doc: update release notes for v29.x (fanquake)
6aec0958f1 ci: remove 3rd party js from windows dll gha job (Max Edwards)
c57009eefc chore: Update outdated GitHub Actions versions (Padraic Slattery)

Pull request description:

  Backports:
  * #32513 (partial backport)
  * #34344

ACKs for top commit:
  willcl-ark:
    ACK 3835e16e5f
  sedited:
    ACK 3835e16e5f

Tree-SHA512: e36b00e952fe6edbe931a131dbe66f14d97b2362453fe4a0e7be58697039945832075d486a6634228c4e1a0ab081e2919cf2c76ef2cfc8b2df6f321b6112c284
2026-01-29 16:23:17 +00:00
fanquake
3835e16e5f doc: update release notes for v29.x 2026-01-29 14:31:51 +00:00
Max Edwards
6aec0958f1 ci: remove 3rd party js from windows dll gha job
We can use vswhere.exe directly to create a vs developer
prompt and so can remove this third party dependency.

Co-authored-by: David Gumberg <davidzgumberg@gmail.com>

Github-Pull: #32513
Rebased-From: 7ae0497eef
2026-01-29 14:30:48 +00:00
Padraic Slattery
c57009eefc chore: Update outdated GitHub Actions versions
Github-Pull: #34344
Rebased-From: 9482f00df0
2026-01-29 14:26:28 +00:00
Luke Dashjr
65173944ed QA: tool_wallet: Check that db.log is deleted with a lone legacy wallet, but not with a shared db environment 2026-01-23 13:18:41 +00:00