HomePhabricator

Create new wallet databases as directories rather than files

Description

Create new wallet databases as directories rather than files

Summary:

This change should make it easier for users to make complete backups of
wallets because they can now just back up the specified `-wallet=<path>`
path directly, instead of having to back up the specified path as well
as the transaction log directory (for incompletely flushed wallets).

Another advantage of this change is that if two wallets are located in
the same directory, they will now use their own BerkeleyDB environments
instead using a shared environment. Using a shared environment makes it
difficult to manage and back up wallets separately because transaction
log files will contain a mix of data from all wallets in the
environment.

Partial backport of core PR11687 (commit be8ab7d)
https://github.com/bitcoin/bitcoin/pull/11687/commits/be8ab7d082228d09ca529d1a08730d7d5aacb0ed

Depends on D3104
Fixes T651

Test Plan:
Read the release notes

make check
./test/functional/test_runner.py wallet_* feature_config_args

Play around with the -wallet option.

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

Subscribers: deadalnix

Maniphest Tasks: T651

Differential Revision: https://reviews.bitcoinabc.org/D3105

Details

Provenance
Russell Yanofsky <russ@yanofsky.org>Authored on Nov 15 2017, 20:44
FabienCommitted on May 28 2019, 17:40
FabienPushed on May 28 2019, 17:40
Reviewer
Restricted Project
Differential Revision
D3105: Create new wallet databases as directories rather than files
Parents
rABC11febd55e5a8: Remove SCRIPT_VERIFY_CHECKDATASIG_SIGOPS flag from script tests
Branches
Unknown
Tags
Unknown
Tasks
T651: Backport PR 11687 "External wallet files"