A bare minimum of legacy wallet code is kept in order to perform wallet migration. Migration of legacy wallets uses the independent BDB parser and a minimal LegacyDataSPKM that allows the legacy data to be loaded so that the migration can be completed.
All tests which tested legacy wallet behavior have been removed. The --descriptors and --legacy-wallet options are removed from the functional tests.
BDB has been removed as a dependency and documentation have been updated to reflect that.
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
achow101 force-pushed
on Oct 23, 2023
DrahtBot added the label
CI failed
on Oct 23, 2023
achow101 force-pushed
on Oct 24, 2023
achow101 force-pushed
on Oct 24, 2023
DrahtBot added the label
Needs rebase
on Oct 25, 2023
achow101 force-pushed
on Oct 25, 2023
achow101 force-pushed
on Oct 25, 2023
DrahtBot removed the label
Needs rebase
on Oct 25, 2023
DrahtBot added the label
Needs rebase
on Nov 6, 2023
achow101 force-pushed
on Nov 13, 2023
DrahtBot removed the label
Needs rebase
on Nov 13, 2023
DrahtBot added the label
Needs rebase
on Nov 16, 2023
achow101 force-pushed
on Nov 16, 2023
DrahtBot removed the label
Needs rebase
on Nov 16, 2023
DrahtBot added the label
Needs rebase
on Nov 22, 2023
achow101 force-pushed
on Nov 28, 2023
DrahtBot removed the label
Needs rebase
on Nov 28, 2023
DrahtBot added the label
Needs rebase
on Nov 28, 2023
achow101 force-pushed
on Nov 28, 2023
DrahtBot removed the label
Needs rebase
on Nov 28, 2023
DrahtBot added the label
Needs rebase
on Nov 30, 2023
achow101 force-pushed
on Dec 11, 2023
achow101 force-pushed
on Dec 11, 2023
DrahtBot removed the label
Needs rebase
on Dec 11, 2023
achow101 force-pushed
on Dec 11, 2023
DrahtBot added the label
Needs rebase
on Dec 13, 2023
achow101 force-pushed
on Dec 19, 2023
DrahtBot removed the label
Needs rebase
on Dec 19, 2023
achow101 force-pushed
on Dec 19, 2023
DrahtBot added the label
Needs rebase
on Jan 2, 2024
fanquake referenced this in commit
04978c2e18
on Jan 5, 2024
achow101 force-pushed
on Jan 6, 2024
DrahtBot removed the label
Needs rebase
on Jan 6, 2024
DrahtBot added the label
Needs rebase
on Jan 11, 2024
achow101 force-pushed
on Jan 11, 2024
DrahtBot removed the label
Needs rebase
on Jan 11, 2024
DrahtBot added the label
Needs rebase
on Jan 16, 2024
achow101 force-pushed
on Jan 16, 2024
DrahtBot removed the label
Needs rebase
on Jan 16, 2024
DrahtBot added the label
Needs rebase
on Jan 17, 2024
achow101 force-pushed
on Jan 25, 2024
achow101 force-pushed
on Feb 1, 2024
DrahtBot removed the label
Needs rebase
on Feb 1, 2024
ryanofsky referenced this in commit
93e10cab5d
on Feb 2, 2024
DrahtBot added the label
Needs rebase
on Feb 3, 2024
achow101 force-pushed
on Feb 3, 2024
DrahtBot removed the label
Needs rebase
on Feb 3, 2024
DrahtBot added the label
Needs rebase
on Feb 6, 2024
achow101 force-pushed
on Feb 8, 2024
DrahtBot removed the label
Needs rebase
on Feb 8, 2024
DrahtBot added the label
Needs rebase
on Feb 10, 2024
achow101 force-pushed
on Feb 20, 2024
DrahtBot removed the label
Needs rebase
on Feb 20, 2024
DrahtBot added the label
Needs rebase
on Feb 26, 2024
achow101 force-pushed
on Feb 29, 2024
DrahtBot removed the label
Needs rebase
on Feb 29, 2024
jess2505 approved
DrahtBot added the label
Needs rebase
on Mar 11, 2024
achow101 force-pushed
on Mar 11, 2024
DrahtBot removed the label
Needs rebase
on Mar 11, 2024
DrahtBot added the label
Needs rebase
on Mar 12, 2024
achow101 force-pushed
on Mar 12, 2024
DrahtBot removed the label
Needs rebase
on Mar 12, 2024
DrahtBot added the label
Needs rebase
on Mar 18, 2024
achow101 force-pushed
on Mar 29, 2024
DrahtBot removed the label
Needs rebase
on Mar 29, 2024
DrahtBot added the label
Needs rebase
on Apr 1, 2024
achow101 force-pushed
on Apr 1, 2024
DrahtBot removed the label
Needs rebase
on Apr 1, 2024
achow101 force-pushed
on Apr 3, 2024
DrahtBot added the label
Needs rebase
on Apr 8, 2024
laanwj requested review from laanwj
on Apr 9, 2024
in
src/wallet/migrate.cpp:46
in
7707db3ad5outdated
41+enum class RecordType : uint8_t
42+{
43+ KEYDATA = 1,
44+ DUPLICATE = 2,
45+ OVERFLOW_DATA = 3,
46+ DELETE = 0x80, // Indicate this record is deleted. This is AND'd with the real type.
DrahtBot removed the label
Needs rebase
on May 21, 2024
DrahtBot added the label
Needs rebase
on May 22, 2024
achow101 force-pushed
on May 22, 2024
DrahtBot removed the label
Needs rebase
on May 22, 2024
DrahtBot added the label
Needs rebase
on May 23, 2024
achow101 force-pushed
on May 29, 2024
achow101 force-pushed
on Jun 4, 2024
DrahtBot removed the label
Needs rebase
on Jun 5, 2024
DrahtBot added the label
Needs rebase
on Jun 5, 2024
achow101 force-pushed
on Jun 6, 2024
DrahtBot removed the label
Needs rebase
on Jun 7, 2024
achow101 force-pushed
on Jun 7, 2024
achow101 force-pushed
on Jun 7, 2024
achow101 force-pushed
on Jun 7, 2024
achow101 force-pushed
on Jun 10, 2024
achow101 force-pushed
on Jun 10, 2024
achow101 force-pushed
on Jun 10, 2024
DrahtBot removed the label
CI failed
on Jun 11, 2024
DrahtBot added the label
Needs rebase
on Jun 11, 2024
achow101 force-pushed
on Jun 11, 2024
DrahtBot removed the label
Needs rebase
on Jun 11, 2024
DrahtBot added the label
Needs rebase
on Jun 12, 2024
achow101 force-pushed
on Jun 13, 2024
DrahtBot removed the label
Needs rebase
on Jun 13, 2024
DrahtBot added the label
CI failed
on Jun 14, 2024
DrahtBot
commented at 0:09 am on June 14, 2024:
contributor
🚧 At least one of the CI tasks failed. Make sure to run all tests locally, according to the
documentation.
Possibly this is due to a silent merge conflict (the changes in this pull request being
incompatible with the current code in the target branch). If so, make sure to rebase on the latest
commit of the target branch.
Leave a comment here, if you need help tracking down a confusing failure.
DrahtBot removed the label
CI failed
on Jun 14, 2024
DrahtBot added the label
Needs rebase
on Jun 17, 2024
Sjors
commented at 4:10 pm on June 27, 2024:
member
You can also drop the BerkeleyDatabaseSanityCheck related suppression in contrib/devtools/check-devs.sh
Change MigrateLegacyToDescriptor to reopen wallet as BERKELEY_RO
When we reopen the wallet to do the migration, instead of opening using
BDB, open it using the BerkeleyRO implementation.
a4d2de802b
wallet: Move LegacySPKM data storage and handling to LegacyDataSPKM
In order to load the necessary data for migrating a legacy wallet
without the full LegacyScriptPubKeyMan, move the data storage and
loading components to LegacyDataSPKM. LegacyScriptPubKeyMan now
subclasses that.
04e14d69d2
wallet: Move MigrateToLegacy and DeleteRecords to LegacyDataSPKM8818c74a3d
wallet: Remove IsMine from migration
As IsMine will be removed, the relevant components of IsMine are inlined
into the migration functions.
6f279d5930
wallet: Use LegacyDataSPKM when loading
In SetupLegacyScriptPubKeyMan, a base LegacyDataSPKM will be created if
the database has the format "bdb_ro" (i.e. the wallet was opened only
for migration purposes).
All of the loading functions are now called with a LegacyDataSPKM object
instead of LegacyScriptPubKeyMan.
2ccbd09b65
wallet, interfaces: Include database format in listWalletDir1078e27c88
gui: Consolidate wallet display name to GUIUtil function
Instead of having the code for the wallet display name being copy and
pasted, use a GUIUtil function to get that for us.
63c2bf3f01
gui: Use wallet name for wallet migration rather than WalletModel
To prepare for migrating wallets that are not loaded, when migration
occurs in the GUI, it should not rely on a WalletModel existing.
87cd3ab695
gui: Use menu for wallet migration
Once legacy wallets can no longer be loaded, we need to be able to
migrate them without loading. Thus we should use a menu that lists the
wallets in the wallet directory instead of an action which migrates the
currently loaded wallet.
ae3feb043c
wallet: Ignore .bak files when listing wallet files
Migration creates backup files in the wallet directory with .bak as the
extension. This pollutes the output of listwalletdir with backup files
that most users should not need to care about.
4cba793ec0
wallet: List sqlite wallets with empty string name
Although it is not explicitly possible to create a default wallet with
descriptors, it is possible to migrate a default wallet and have it end
up being a default wallet with descriptors. These wallets should be
listed by ListDatabases so that it appears in wallet directory listings
to avoid user confusion.
85023fd2fd
test: rpcs disabled for descriptor wallets were removed7707f0c6d7
test: Add combinerawtransaction test to rpc_createmultisig
The only coverage of combinerawtransaction is in a legacy wallet only
test. So also use it in rpc_createmultisig so that this RPC remains
tested after the legacy wallet is removed.
test: wallet_signer.py bdb will be removede229211ea3
test: Rework migratewallet to use previous releasesb1b4310d03
test: Remove legacy wallet tests from wallet_backwards_compatibility.py8b65dd4984
test: Remove legacy wallet tests from wallet_reindex.py95401013c5
test: remove legacy wallet functional tests
Removes all legacy wallet specific functional tests.
Also removes the --descriptor and --legacy-wallet options as these are
no longer necessary with the legacy wallet removed.
a0fda2cbe0
wallet: Remove -format and bdb from wallet tool's createfromdump9a73c31a98
Require sqlite is available in order to compile the wallet. Removes
instances of USE_SQLITE since it is no longer possible to not have
sqlite available.
fa0dbf78a3
wallet: Don't reload legacy wallet on failed migration
We can't load legacy wallet anymore, so if migration fails, don't try to
load the failed wallet.
36970cf79d
wallet: Disallow legacy wallets
Legacy wallets do not have the descriptors flag set. Don't load wallets
without the descriptors flag.
At the same time, we will no longer load BDB databases since they are
only used for legacy wallets.
5497783778
build, wallet, doc: Remove BDB1cc4884406
wallet, rpc: Remove legacy wallet only RPCsf7660119ce
wallet: Delete LegacySPKM
Deletes LegacyScriptPubKeyMan and related tests
18380e4972
wallet: Remove unused db functions
SOme db functions were for BDB, these are no longer needed.
9cf8e24ac0
achow101 force-pushed
on Jun 27, 2024
DrahtBot removed the label
Needs rebase
on Jun 27, 2024
DrahtBot added the label
CI failed
on Jun 27, 2024
DrahtBot
commented at 8:59 pm on June 27, 2024:
contributor
🚧 At least one of the CI tasks failed. Make sure to run all tests locally, according to the
documentation.
Possibly this is due to a silent merge conflict (the changes in this pull request being
incompatible with the current code in the target branch). If so, make sure to rebase on the latest
commit of the target branch.
Leave a comment here, if you need help tracking down a confusing failure.
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: 2024-06-29 10:13 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me