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
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.
Make sure to run all tests locally, according to the documentation.
The failure may happen due to a number of reasons, for example:
Possibly 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.
A sanitizer issue, which can only be found by compiling with the sanitizer and running the
affected test.
An intermittent issue.
Leave a comment here, if you need help tracking down a confusing failure.
DrahtBot added the label
Needs rebase
on Aug 31, 2024
achow101 force-pushed
on Sep 3, 2024
DrahtBot removed the label
Needs rebase
on Sep 3, 2024
DrahtBot added the label
Needs rebase
on Sep 4, 2024
achow101 force-pushed
on Sep 10, 2024
DrahtBot removed the label
Needs rebase
on Sep 10, 2024
DrahtBot added the label
Needs rebase
on Sep 12, 2024
achow101 force-pushed
on Sep 17, 2024
DrahtBot removed the label
Needs rebase
on Sep 17, 2024
DrahtBot added the label
Needs rebase
on Sep 20, 2024
achow101 force-pushed
on Oct 4, 2024
DrahtBot removed the label
Needs rebase
on Oct 4, 2024
achow101 force-pushed
on Oct 4, 2024
DrahtBot added the label
Needs rebase
on Oct 5, 2024
achow101 force-pushed
on Oct 11, 2024
DrahtBot removed the label
Needs rebase
on Oct 11, 2024
DrahtBot added the label
Needs rebase
on Oct 24, 2024
achow101 force-pushed
on Oct 24, 2024
DrahtBot removed the label
Needs rebase
on Oct 24, 2024
DrahtBot removed the label
CI failed
on Oct 24, 2024
DrahtBot added the label
Needs rebase
on Oct 25, 2024
achow101 force-pushed
on Oct 25, 2024
DrahtBot removed the label
Needs rebase
on Oct 25, 2024
DrahtBot added the label
Needs rebase
on Oct 28, 2024
achow101 force-pushed
on Oct 28, 2024
DrahtBot removed the label
Needs rebase
on Oct 28, 2024
DrahtBot added the label
Needs rebase
on Oct 29, 2024
achow101 force-pushed
on Oct 29, 2024
DrahtBot removed the label
Needs rebase
on Oct 29, 2024
DrahtBot added the label
Needs rebase
on Nov 1, 2024
achow101 force-pushed
on Nov 1, 2024
DrahtBot removed the label
Needs rebase
on Nov 1, 2024
murchandamus
commented at 9:43 pm on November 5, 2024:
contributor
It looks like all three dependencies got merged, is this ready for review?
achow101
commented at 10:48 pm on November 5, 2024:
member
It looks like all three dependencies got merged, is this ready for review?
Currently it is still dependent on #30328 but I suppose it doesn’t have to be.
DrahtBot added the label
Needs rebase
on Nov 6, 2024
achow101 force-pushed
on Nov 6, 2024
DrahtBot added the label
CI failed
on Nov 6, 2024
DrahtBot removed the label
Needs rebase
on Nov 6, 2024
achow101 force-pushed
on Nov 7, 2024
achow101 force-pushed
on Nov 7, 2024
achow101 force-pushed
on Nov 7, 2024
DrahtBot added the label
Needs rebase
on Nov 11, 2024
fanquake referenced this in commit
2b33322169
on Nov 12, 2024
achow101 force-pushed
on Nov 13, 2024
DrahtBot removed the label
Needs rebase
on Nov 13, 2024
DrahtBot added the label
Needs rebase
on Nov 15, 2024
in
src/wallet/wallet.cpp:3461
in
323bc8982aoutdated
ryanofsky referenced this in commit
2eccb8bc5e
on Dec 5, 2024
achow101 force-pushed
on Dec 9, 2024
DrahtBot removed the label
Needs rebase
on Dec 9, 2024
DrahtBot removed the label
CI failed
on Dec 10, 2024
wallet: remove BDB dependency from wallet migration benchmark
Stops creating a bdb database in the wallet migration benchmark.
Instead, the benchmark now creates the db in memory and re-uses
it for the migration process.
5bd2560f9b
test: rpcs disabled for descriptor wallets were removed70e800e8c8
test: wallet_signer.py bdb will be removed60e2756c4f
test: Remove legacy wallet tests from wallet_backwards_compatibility.pyb801dc5f55
test: Remove legacy wallet tests from wallet_reindex.py189a49893d
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.
4caf758c71
wallet: Remove -format and bdb from wallet tool's createfromdump7af029f326
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.
5982635419
build: Require sqlite when --enable-wallet
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.
ab56652561
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.
255e51b72d
test: Extra verification that migratewallet migrates6caa282b3e
tests: Test migration of additional P2WSH scriptsfd92dd5465
legacy spkm: Move CanProvide to LegacyDataSPKM
This function will be needed in migration
a53c0a9fce
legacy spkm: use IsMine() to extract watched output scripts
Instead of (partially) trying to reverse IsMine() to get the output
scripts that a LegacySPKM would track, we can preserve it in migration
only code and utilize it to get an accurate set of output scripts.
This is accomplished by computing a set of output script candidates from
map(Crypted)Keys, mapScripts, and setWatchOnly. This candidate set is an
upper bound on the scripts tracked by the wallet. Then IsMine() is used
to filter to the exact output scripts that LegacySPKM would track.
By changing GetScriptPubKeys() this way, we can avoid complexities in
reversing IsMine() and get a more complete set of output scripts.
bbfbd2c4e8
migration: Skip descriptors which do not parse
InferDescriptors can sometimes make descriptors which are actually
invalid and cannot be parsed. Detect and skip such descriptors by doing
a Parse() check before adding the descriptor to the wallet.
270294578f
wallet migration: Determine Solvables with CanProvide
LegacySPKM would determine whether it could provide any script data to a
transaction through the use of the CanProvide function. Instead of
partially reversing signing logic to figure out the output scripts of
solvable things, we use the same candidate set approach in
GetScriptPubKeys() and instead filter the candidate set first for
things that are ISMINE_NO, and second with CanProvide(). This should
give a more accurate solvables wallet.
c1a7d7fffa
test: Test migration of miniscript in legacy wallets4fbdfce2b3
test: Test migration of taproot output scripts34a6b27515
achow101 force-pushed
on Dec 13, 2024
test: Test migration of a solvable script with no privkeys
The legacy wallet will be able to solve output scripts where the
redeemScript or witnessScript is known, but does not know any of the
private keys involved in that script. These should be migrated to the
solvables wallet.
5d2952b886
build, wallet, doc: Remove BDBe9b933fdc6
wallet, rpc: Remove legacy wallet only RPCsf7b239957a
achow101 force-pushed
on Dec 16, 2024
wallet: Delete LegacySPKM
Deletes LegacyScriptPubKeyMan and related tests
0fc0873971
wallet: Remove unused db functions
SOme db functions were for BDB, these are no longer needed.
57134ba535
legacy spkm: Make IsMine() and CanProvide() private and migration onlye6ccd17275
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-12-18 21:12 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me