42365 Commits

Author SHA1 Message Date
merge-script
ed80bb21e4 Merge bitcoin/bitcoin#34620: [28.x] backports and 28.4rc2
44e6dda745 doc: update manpages for v28.4rc2 (Ava Chow)
46ff3698f8 doc: Update release notes for v28.4rc2 (Ava Chow)
6cf3d8226d build: bump version to v28.4rc2 (Ava Chow)
931f12dcf7 doc: Update Guix install for Debian/Ubuntu (MarcoFalke)
242b9ae3f3 QA: tool_wallet: Check that db.log is deleted with a lone legacy wallet, but not with a shared db environment (Luke Dashjr)
c5d9f75c4b Bugfix: Wallet/Migration: Move backup into wallet directory when migrating from non-directory (Luke Dashjr)
6494072295 Wallet/Migration: Skip moving the backup file back and forth for no reason (Luke Dashjr)
619480bd78 Wallet/Migration: If loading the new watchonly or solvables wallet fails, log the correct wallet name in error message (Luke Dashjr)
29abedc97b Wallet/bdb: Safely and correctly list files only used by the single wallet (Luke Dashjr)

Pull request description:

  Backports:

  * #34370
  * #34671

  And the rc2 release process things

ACKs for top commit:
  willcl-ark:
    ACK 44e6dda745

Tree-SHA512: beb478a057b14c3ad9f1ce049f304fa1a5ff948c3492efbd39c51b9bb73a695a5382292513ee53f9ee64ecbbe6370cbbf2781bee01cf3dc262623be4110eacd8
v28.4rc2
2026-03-04 11:28:31 +00:00
Ava Chow
44e6dda745 doc: update manpages for v28.4rc2 2026-02-26 10:03:49 -08:00
Ava Chow
46ff3698f8 doc: Update release notes for v28.4rc2 2026-02-26 10:03:49 -08:00
Ava Chow
6cf3d8226d build: bump version to v28.4rc2 2026-02-26 10:03:49 -08:00
MarcoFalke
931f12dcf7 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: bitcoin/bitcoin#34671
Rebased-From: faa70ca764
2026-02-26 10:03:32 -08:00
Luke Dashjr
242b9ae3f3 QA: tool_wallet: Check that db.log is deleted with a lone legacy wallet, but not with a shared db environment
Github-Pull: #34370
Rebased-From: 65173944ed
2026-02-18 16:41:36 -08:00
Luke Dashjr
c5d9f75c4b Bugfix: Wallet/Migration: Move backup into wallet directory when migrating from non-directory
While 30.x+ keep backup files in walletdir, 29.x places them in the migrated wallet directory

Github-Pull: #34370
Rebased-From: 69a6b9b115
2026-02-18 16:41:14 -08:00
Luke Dashjr
6494072295 Wallet/Migration: Skip moving the backup file back and forth for no reason
Since we no longer delete the wallet directory, there's no need to vacate it
The moving only served to risk errors by crossing filesystem boundaries (which fs::rename can't handle)

Github-Pull: 34370
Rebased-From: cef01d0be5
2026-02-18 16:40:34 -08:00
Luke Dashjr
619480bd78 Wallet/Migration: If loading the new watchonly or solvables wallet fails, log the correct wallet name in error message
Github-Pull: #34370
Rebased-From: 60f529027c
2026-02-18 16:21:54 -08:00
Luke Dashjr
29abedc97b Wallet/bdb: Safely and correctly list files only used by the single wallet
If any other files exist in the directory, we cannot assume the sharable files are exclusively for this wallet.
But if they are, this also cleans up other log.* files

Github-Pull: #34370
Rebased-From: 7475d134f6
2026-02-18 16:21:26 -08:00
merge-script
866efbd8e2 Merge bitcoin/bitcoin#34560: [28.x] Finalize 28.4rc1
f60bfe777d doc: update manual pages for v28.4rc1 (fanquake)
fb5fdbfe72 build: bump version to v28.4rc1 (fanquake)
72ff93ec0c doc: update release notes for v28.4rc1 (fanquake)

Pull request description:

  Final changes for a `28.4rc1`.

ACKs for top commit:
  willcl-ark:
    ACK f60bfe777d

Tree-SHA512: f9519dca53f87023ed04a0f3ec6bea354ee810ff189d052009ddfccf11d3894bf8d5b09a03f8aa189fbe060426fabe7c0b6d8643d3083bbf06044c0118a3d2d0
v28.4rc1
2026-02-13 08:52:20 +00:00
fanquake
f60bfe777d doc: update manual pages for v28.4rc1 2026-02-12 12:13:10 +00:00
fanquake
fb5fdbfe72 build: bump version to v28.4rc1 2026-02-12 12:09:28 +00:00
fanquake
72ff93ec0c doc: update release notes for v28.4rc1 2026-02-12 12:06:56 +00:00
merge-script
0578a6ddf6 Merge bitcoin/bitcoin#34223: [28.x] Backport wallets directory deletion fixes
4d219725a7 wallet: test: Failed migration cleanup (David Gumberg)
77622e000b test: coverage for migration failure when last sync is beyond prune height (furszy)
86eaf71e60 wallet: migration, fix watch-only and solvables wallets names (furszy)
fb4406e63a wallet: improve post-migration logging (furszy)
75b59e5aba test: restorewallet, coverage for existing dirs, unnamed wallet and prune failure (furszy)
1d4662441f test: add coverage for unnamed wallet migration failure (furszy)
e47af69222 wallet: fix unnamed wallet migration failure (furszy)
e1e9d71da9 wallet: RestoreWallet failure, erase only what was created (furszy)
b54cdfc617 wallettool: do not use fs::remove_all in createfromdump cleanup (Ava Chow)
5f07b93d7f wallet: introduce method to return all db created files (furszy)
0a944e62cb refactor: remove sqlite dir path back-and-forth conversion (furszy)

Pull request description:

  Backports #34222 to 28.x

ACKs for top commit:
  davidgumberg:
    crACK 4d219725a7
  polespinasa:
    crACK 4d219725a7

Tree-SHA512: ea872c78e7403f2fe2c7e66dc3215ac01cefadea0b50a6cf2067220eb5138e23c6b4756c49582dc248c102ed8d4b67cde418fb557ea9e608920d0268ac369794
2026-02-11 16:19:30 +00:00
merge-script
9ceeca0fe1 Merge bitcoin/bitcoin#34463: [28.x] Backports
f6e5ec5d81 doc: update release notes for v28.x (fanquake)
5879b5a172 chore: Update outdated GitHub Actions versions (Padraic Slattery)
4fca124c0b ci: remove 3rd party js from windows dll gha job (Max Edwards)
4d4e3600af ci: use macos-14 image (fanquake)
6b5a536c05 doc: update copyright year (fanquake)

Pull request description:

  Contains one change to switch the macOS runners to a version that still works (13 -> 14):
  * 4d4e3600af

  Also backports:
  * #32513 (partial backport)
  * #34174
  * #34344

ACKs for top commit:
  marcofleon:
    ACK f6e5ec5d81

Tree-SHA512: 63e4b08779852984c48aaf555f6ce9a7afd12bad65b8062dcc6351b39f6a3a355efd0e0277e8a62400588613db86c45f196efc1ac7b91317821d69301badebcf
2026-02-02 16:09:39 +00:00
fanquake
f6e5ec5d81 doc: update release notes for v28.x 2026-01-30 16:40:38 +00:00
Padraic Slattery
5879b5a172 chore: Update outdated GitHub Actions versions
Github-Pull: #34344
Rebased-From: 9482f00df0
2026-01-30 16:40:38 +00:00
Max Edwards
4fca124c0b 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-30 16:40:38 +00:00
fanquake
4d4e3600af ci: use macos-14 image
The macOS 13 images are no-longer available for use.
2026-01-30 16:40:33 +00:00
fanquake
6b5a536c05 doc: update copyright year
Github-Pull: #34174
Rebased-From: b23b901363
2026-01-30 16:00:38 +00:00
merge-script
3de2c3fd17 Merge bitcoin/bitcoin#34270: [28.x] Backports
514cf39533 doc: update release notes for v28.x (fanquake)
3dd011ee34 guix: Fix `osslsigncode` tests (Hennadii Stepanov)
38d338dbcc Remove unreliable seed from chainparams.cpp, and the associated README (SatsAndSports)

Pull request description:

  Backports:
  * #33723
  * #34227

ACKs for top commit:
  willcl-ark:
    ACK 514cf39533
  marcofleon:
    crACK 514cf39533

Tree-SHA512: b736192b842d70c84e6a5530b1bca2d095d60fcc265e52c8cdc61d81cfdbd6b6dd3d658f2ee9c27f3ae76a3c7bc79e8d0191242b357dba19e019acb31d7756dd
2026-01-14 12:00:18 +00:00
fanquake
514cf39533 doc: update release notes for v28.x 2026-01-13 10:40:03 +00:00
Hennadii Stepanov
3dd011ee34 guix: Fix osslsigncode tests
Github-Pull: #34227
Rebased-From: 194114daf3
2026-01-13 10:37:03 +00:00
SatsAndSports
38d338dbcc Remove unreliable seed from chainparams.cpp, and the associated README
Github-Pull: #33723
Rebased-From: b0c706795c
2026-01-13 10:36:59 +00:00
David Gumberg
4d219725a7 wallet: test: Failed migration cleanup
Refactor a common way to perform the failed migration test that exists
for default wallets, and add relative-path wallets and absolute-path
wallets.

Github-Pull: 34226
Rebased-From: eeaf28dbe0
2026-01-12 13:31:08 -08:00
furszy
77622e000b test: coverage for migration failure when last sync is beyond prune height
Github-Pull: bitcoin/bitcoin#34156
Rebased-From: b7c34d08dd
2026-01-12 13:21:45 -08:00
furszy
86eaf71e60 wallet: migration, fix watch-only and solvables wallets names
Because the default wallet has no name, the watch-only and solvables
wallets created during migration end up having no name either.

This fixes it by applying the same prefix name we use for the backup
file for an unnamed default wallet.

Before: watch-only wallet named "_watchonly"
After:  watch-only wallet named "default_wallet_watchonly"

Github-Pull: bitcoin/bitcoin#34156
Rebased-From: 82caa8193a
2026-01-09 16:31:46 -08:00
furszy
fb4406e63a wallet: improve post-migration logging
Right now, after migration the last message users see is "migration completed",
but the migration isn't actually finished yet. We still need to load the new wallets
to ensure consistency, and if that fails, the migration will be rolled back. This
can be confusing for users.

This change logs the post-migration loading step and if a wallet fails to load and
the migration will be rolled back.

Github-Pull: bitcoin/bitcoin#34156
Rebased-From: d70b159c42
2026-01-09 13:38:51 -08:00
furszy
75b59e5aba test: restorewallet, coverage for existing dirs, unnamed wallet and prune failure
The first test verifies that restoring into an existing empty directory
or a directory with no .dat db files succeeds, while restoring into a
dir with a .dat file fails.

The second test covers restoring into the default unnamed wallet
(wallet.dat), which also implicitly exercises the recovery path used
after a failed migration.

The third test covers failure during restore on a prune node. When
the wallet last sync was beyond the pruning height.

Github-Pull: bitcoin/bitcoin#34156
Rebased-From: f011e0f068
2026-01-09 13:26:35 -08:00
furszy
1d4662441f test: add coverage for unnamed wallet migration failure
Verifies that a failed migration of the unnamed (default) wallet
does not erase the main /wallets/ directory, and also that the
backup file exists.

Github-Pull: bitcoin/bitcoin#34156
Rebased-From: 36093bde63
2026-01-09 13:26:28 -08:00
furszy
e47af69222 wallet: fix unnamed wallet migration failure
When migrating any legacy unnamed wallet, a failed migration would
cause the cleanup logic to remove its parent directory. Since this
type of legacy wallet lives directly in the main '/wallets/' folder,
this resulted in unintentionally erasing all wallets, including the
backup file.

To be fully safe, we will no longer call `fs::remove_all`. Instead,
we only erase the individual db files we have created, leaving
everything else intact. The created wallets parent directories are
erased only if they are empty.
As part of this last change, `RestoreWallet` was modified to allow
an existing directory as the destination, since we no longer remove
the original wallet directory (we only remove the files we created
inside it). This also fixes the restore of top-level default wallets
during failures, which were failing due to the directory existence
check that always returns true for the /wallets/ directory.

This bug started after:
f6ee59b6e2
Previously, the `fs::copy_file` call was failing for top-level wallets,
which prevented the `fs::remove_all` call from being reached.

Github-Pull: bitcoin/bitcoin#34156
Rebased-From: f4c7e28e80
2026-01-09 11:26:44 -08:00
furszy
e1e9d71da9 wallet: RestoreWallet failure, erase only what was created
Track what RestoreWallet creates so only those files and directories
are removed during a failure and nothing else. Preexisting paths
must be left untouched.

Note:
Using fs::remove_all() instead of fs::remove() in RestoreWallet does
not cause any problems currently, but the change is necessary for the
next commit which extends RestoreWallet to work with existing directories,
which may contain files that must not be deleted.

Github-Pull: bitcoin/bitcoin#34156
Rebased-From: 4ed0693a3f
2026-01-08 18:12:02 -08:00
Ava Chow
b54cdfc617 wallettool: do not use fs::remove_all in createfromdump cleanup
Github-Pull: bitcoin/bitcoin#34215
Rebased-From: f78f6f1dc8
2026-01-08 18:12:02 -08:00
furszy
5f07b93d7f wallet: introduce method to return all db created files
Github-Pull: bitcoin/bitcoin#31423
Rebased-From: 1de423e0a0
2026-01-08 18:12:02 -08:00
furszy
0a944e62cb refactor: remove sqlite dir path back-and-forth conversion
Github-Pull: bitcoin/bitcoin#31423
Rebased-From: d04f6a97ba
2026-01-08 10:09:45 -08:00
merge-script
ad8b23e589 Merge bitcoin/bitcoin#33613: [28.x] Backport & finalise 28.3
2dfb3a0690 doc: update manual pages for v28.3 (fanquake)
3590bbffa6 build: bump version to 28.3 (fanquake)
da5f5de405 doc: update release notes for 28.3 (fanquake)
1c521ae922 ci: Properly include $FILE_ENV in DEPENDS_HASH (Ava Chow)

Pull request description:

  Backports:
  * #33581

  Plus the changes to finalise `v28.3`

ACKs for top commit:
  marcofleon:
    ACK 2dfb3a0690
  stickies-v:
    ACK 2dfb3a0690
  willcl-ark:
    ACK 2dfb3a0690

Tree-SHA512: 5e972d51629f156b0a462d49b42e8109490060d05c76cb6d2f98c904ec0668e018d0b25dad3660946df699f850a1935e7292a62789346b08a78d798bd8dbc9f3
v28.3
2025-10-16 16:05:37 +01:00
fanquake
2dfb3a0690 doc: update manual pages for v28.3 2025-10-13 17:04:01 +01:00
fanquake
3590bbffa6 build: bump version to 28.3 2025-10-13 16:57:25 +01:00
fanquake
da5f5de405 doc: update release notes for 28.3 2025-10-13 16:56:51 +01:00
Ava Chow
1c521ae922 ci: Properly include $FILE_ENV in DEPENDS_HASH
$FILE_ENV has a full relative path already, prepending with ci/test/
results in a non-existent path which means that DEPENDS_HASH was not
actually committing to the test's environment file.

Github-Pull: #33581
Rebased-From: ceeb53adcd
2025-10-13 16:56:17 +01:00
merge-script
d70e9c5d13 Merge bitcoin/bitcoin#33557: [28.x] 28.3rc2
44d05b2fb2 doc: update release notes for 28.x (fanquake)
201221b750 doc: update manual pages for v28.3rc2 (fanquake)
e2e1138350 build: bump version to 28.3rc2 (fanquake)
9c911f7e2d build: fix depends Qt download link (fanquake)
ae8605825f contrib: fix using macdploy script without translations. (amisha)

Pull request description:

  Backports:
  * #33482
  * #33563

  Plus final changes for a `28.3rc2`.

ACKs for top commit:
  marcofleon:
    Nice, re ACK 44d05b2fb2
  stickies-v:
    re-ACK 44d05b2fb2

Tree-SHA512: 63d46b93fcc2201071328a0708d32ef7b9ce80348455ec059c11edf238003a6f0ec7bd018a76bf0d7ba90ab99dae5176dfa387f9ea1b791e1f8ef785d7c2f1f2
v28.3rc2
2025-10-13 12:30:28 +01:00
fanquake
44d05b2fb2 doc: update release notes for 28.x 2025-10-13 12:04:53 +01:00
fanquake
201221b750 doc: update manual pages for v28.3rc2 2025-10-07 14:53:26 +01:00
fanquake
e2e1138350 build: bump version to 28.3rc2 2025-10-07 14:53:26 +01:00
fanquake
9c911f7e2d build: fix depends Qt download link
Github-Pull: #33563
Rebased-From: abf4a6eeae
2025-10-07 14:53:26 +01:00
amisha
ae8605825f 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: 7b5261f7ef
2025-10-07 14:53:26 +01:00
merge-script
42c4c6b6dd Merge bitcoin/bitcoin#33561: [28.x] ci: Fix Qt 5.15 URL
2cd432dc6d [28.x] ci: Fix Qt 5.15 URL (Hennadii Stepanov)

Pull request description:

ACKs for top commit:
  fanquake:
    ACK 2cd432dc6d

Tree-SHA512: 762dcd7d08012a683d88b6f6437d7ffe31271abfa6a1a0be604746fad8473ba0ff6066880a8a6f56382f8da46f01fb3349440efef30990b1bab818521963496f
2025-10-07 14:52:44 +01:00
Hennadii Stepanov
2cd432dc6d [28.x] ci: Fix Qt 5.15 URL 2025-10-07 13:43:24 +01:00
merge-script
e9dd94abcc Merge bitcoin/bitcoin#33535: [28.x] More backports
06fe49dc88 doc: update release notes for 28.x (fanquake)
11da80fe6a test: add more TRUC reorg coverge (Greg Sanders)
05f4aa7662 Mempool: Do not enforce TRUC checks on reorg (Greg Sanders)
ffffdc4e97 fuzz: don't bypass_limits for most mempool harnesses (Greg Sanders)

Pull request description:

  Backports:
  * #33504

ACKs for top commit:
  darosior:
    utACK 06fe49dc88.
  dergoegge:
    ACK 06fe49dc88
  instagibbs:
    ACK 06fe49dc88

Tree-SHA512: 50495b75dec6dbbe24686cd7f1e832a79c841d29983d6be415783ba4ad3a1f7657459d491fc214de4d45f60467abc92f1daf75479f3db854fc6b3410368e67fc
2025-10-07 10:01:49 +01:00