mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-24 06:30:10 +01:00
Merge bitcoin/bitcoin#26606: wallet: Implement independent BDB parser
d51fbab4b3wallet, test: Be able to always swap BDB endianness (Ava Chow)0b753156cetest: Test bdb_ro dump of wallet without reset LSNs (Ava Chow)c1984f1282test: Test dumping dbs with overflow pages (Ava Chow)fd7b16e391test: Test dumps of other endian BDB files (Ava Chow)6ace3e953fbdb: Be able to make byteswapped databases (Ava Chow)d9878903fbError if LSNs are not reset (Ava Chow)4d7a3ae78eBerkeley RO Database fuzz test (TheCharlatan)3568dce9e9tests: Add BerkeleyRO to db prefix tests (Ava Chow)70cfbfdadfwallettool: Optionally use BERKELEY_RO as format when dumping BDB wallets (Ava Chow)dd57713f6eAdd MakeBerkeleyRODatabase (Ava Chow)6e50bee67dImplement handling of other endianness in BerkeleyRODatabase (Ava Chow)cdd61c9cc1wallet: implement independent BDB deserializer in BerkeleyRODatabase (Ava Chow)ecba230979wallet: implement BerkeleyRODatabase::Backup (Ava Chow)0c8e728476wallet: implement BerkeleyROBatch (Ava Chow)756ff9b478wallet: add dummy BerkeleyRODatabase and BerkeleyROBatch classes (Ava Chow)ca18aea5c4Add AutoFile::seek and tell (Ava Chow) Pull request description: Split from #26596 This PR adds `BerkeleyRODatabase` which is an independent implementation of a BDB file parser. It provides read only access to a BDB file, and can therefore be used as a read only database backend for wallets. This will be used for dumping legacy wallet records and migrating legacy wallets without the need for BDB itself. Wallettool's `dump` command is changed to use `BerkeleyRODatabase` instead of `BerkeleyDatabase` (and `CWallet` itself) to demonstrate that this parser works and to test it against the existing wallettool functional tests. ACKs for top commit: josibake: reACKd51fbab4b3TheCharlatan: Re-ACKd51fbab4b3furszy: reACKd51fbab4b3laanwj: re-ACKd51fbab4b3theStack: ACKd51fbab4b3Tree-SHA512: 1e7b97edf223b2974eed2e9eac1179fc82bb6359e0a66b7d2a0c8b9fa515eae9ea036f1edf7c76cdab2e75ad994962b134b41056ccfbc33b8d54f0859e86657b
This commit is contained in:
@@ -85,8 +85,9 @@ void WalletInit::AddWalletOptions(ArgsManager& argsman) const
|
||||
argsman.AddArg("-dblogsize=<n>", strprintf("Flush wallet database activity from memory to disk log every <n> megabytes (default: %u)", DatabaseOptions().max_log_mb), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
||||
argsman.AddArg("-flushwallet", strprintf("Run a thread to flush wallet periodically (default: %u)", DEFAULT_FLUSHWALLET), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
||||
argsman.AddArg("-privdb", strprintf("Sets the DB_PRIVATE flag in the wallet db environment (default: %u)", !DatabaseOptions().use_shared_memory), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
||||
argsman.AddArg("-swapbdbendian", "Swaps the internal endianness of BDB wallet databases (default: false)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::WALLET_DEBUG_TEST);
|
||||
#else
|
||||
argsman.AddHiddenArgs({"-dblogsize", "-flushwallet", "-privdb"});
|
||||
argsman.AddHiddenArgs({"-dblogsize", "-flushwallet", "-privdb", "-swapbdbendian"});
|
||||
#endif
|
||||
|
||||
#ifdef USE_SQLITE
|
||||
|
||||
Reference in New Issue
Block a user