This change consists of three commits:
- The first commit is a pure refactoring that removes the restriction that two wallets can only be opened at the same time if they are contained in the same directory.
- The second commit removes the restriction that
-wallet
filenames can only refer to files in the-walletdir
directory. - The third commit makes second commit a little safer by changing bitcoin to create wallet databases as directories rather than files, so they can be safely backed up.
All three commits should be straightforward:
-
The first commit adds around 20 lines of new code and then updates a bunch of function signatures (generally updating them to take plain fs::path parameters, instead of combinations of strings, fs::paths, and objects like CDBEnv and CWalletDBWrapper).
-
The second commit removes two
-wallet
filename checks and adds some test cases to the multiwallet unit test. -
The third commit just changes the mapping from specified wallet paths to bdb environment & data paths.
Note: For anybody looking at this PR for the first time, I think you can skip the comments before 20 Nov and start reading at #11687 (comment). Comments before 20 Nov were about an earlier version of the PR that didn’t include the third commit, and then confusion from not seeing the first commit.