wallet: Make -wallet setting not create wallets #20186

pull ryanofsky wants to merge 1 commits into bitcoin:master from ryanofsky:pr/nowa changing 10 files +77 −41
  1. ryanofsky commented at 12:33 pm on October 19, 2020: member

    This changes -wallet setting to only load existing wallets, not create new ones.

    This change should be targeted for 0.21.0. It’s a bug fix and simplifies behavior of the #15937 / #19754 / #15454 features added in 0.21.0.


    This PR is implementing the simplest, most basic alternative listed in https://github.com/bitcoin-core/gui/issues/95#issuecomment-694236940. Other improvements mentioned there can build on top of this.

  2. fanquake added the label Wallet on Oct 19, 2020
  3. MarcoFalke added this to the milestone 0.21.0 on Oct 19, 2020
  4. in doc/release-notes.md:339 in 1044521921 outdated
    340+Descriptor Wallet should be created. And a `descriptors` option has been added to `createwallet` RPC.
    341+Setting `descriptors` to `true` will create a Descriptor Wallet instead of a Legacy Wallet.
    342 
    343-Without those options being set, a Legacy Wallet will be created instead. Additionally the
    344-Default Wallet created upon first startup of Bitcoin Core will be a Legacy Wallet.
    345+Without those options being set, a Legacy Wallet will be created instead.
    


    MarcoFalke commented at 12:46 pm on October 19, 2020:
    Seems unrelated to the changes here. Probably best to put into https://github.com/bitcoin-core/bitcoin-devwiki/wiki/0.21.0-Release-Notes-Draft

    ryanofsky commented at 1:07 pm on October 19, 2020:

    re: #20186 (review)

    Seems unrelated to the changes here. Probably best to put into bitcoin-core/bitcoin-devwiki/wiki/0.21.0-Release-Notes-Draft

    Thanks. Moved to wiki

  5. in doc/release-notes.md:301 in 1044521921 outdated
    304-(#15454)
    305+Bitcoin Core will no longer automatically create new wallets on startup. It will
    306+load existing wallets specified by `-wallet` options on the command line,
    307+wallets listed in `bitcoin.conf` or `settings.json` files, and a top-level
    308+unnamed ("") wallet. But if specified wallets don't exist, Bitcoin Core will log
    309+warnings instead of creating new wallets with random keys and addresses like
    


    MarcoFalke commented at 12:49 pm on October 19, 2020:

    nit:

    0warnings instead of creating new wallets with generated keys and addresses like
    

    ryanofsky commented at 1:06 pm on October 19, 2020:

    re: #20186 (review)

    nit:

    Updated

  6. in src/wallet/load.cpp:79 in 1044521921 outdated
    76         bilingual_str error_string;
    77         if (!MakeWalletDatabase(wallet_file, options, status, error_string)) {
    78-            chain.initError(error_string);
    79-            return false;
    80+            if (status == DatabaseStatus::FAILED_NOT_FOUND) {
    81+                chain.initWarning(Untranslated(strprintf("Skipping -wallet path that doesn't exist. %s\n", error_string.original)));
    


    MarcoFalke commented at 12:52 pm on October 19, 2020:
    0                chain.initWarning(strprintf(Untranslated("Skipping -wallet path that doesn't exist. %s\n"), error_string)));
    

    ryanofsky commented at 1:07 pm on October 19, 2020:

    re: #20186 (review)

    It would be nice if this worked, but it doesn’t currently. We only overloaded tfm::format inutil/translation.h to substitute normal arguments into bilingual format strings, not bilingual arguments into bilingual format strings


    hebasto commented at 5:35 am on October 21, 2020:

    bc2b0d99a5f54b941f8c663385f42cb9da20b94b

    This is a user faced message. Why keep it untranslated?


    ryanofsky commented at 9:10 am on October 21, 2020:

    This is a user faced message. Why keep it untranslated?

    It’s a technical message not going to be shown to a typical GUI user just loading and unloading wallets, instead of manually moving files inside wallet directories or creating a bitcoin.conf and writing a list of wallets. I think the message might also be short lived (https://github.com/bitcoin-core/gui/issues/95#issuecomment-694236940) and not worth translating right away. But I don’t have a strong opinion and would be happy to change. I believe similar warnings like ones from UpdateWalletSetting are also untranslated.


    hebasto commented at 9:46 am on October 21, 2020:

    Wallets are just files, and such a warning could be caused by user’s operations with wallets.

    I believe similar warnings like ones from UpdateWalletSetting are also untranslated.

    Correct. I think the reason of that is an absence of the pr :) Sure, no need to change here.


    ryanofsky commented at 10:03 am on October 21, 2020:

    Wallets are just files, and such a warning could be caused by user’s operations with wallets.

    Sure. If this warning turns out to occur by common file operations, my first preference would be to implement one of the other alternatives in https://github.com/bitcoin-core/gui/issues/95#issuecomment-694236940 so the warning stops occurring

  7. in test/functional/test_framework/test_framework.py:394 in 1044521921 outdated
    390@@ -391,9 +391,13 @@ def setup_nodes(self):
    391                 assert_equal(chain_info["initialblockdownload"], False)
    392 
    393     def import_deterministic_coinbase_privkeys(self):
    394-        wallet_names = [self.default_wallet_name] * len(self.nodes) if self.wallet_names is None else self.wallet_names
    395-        assert len(wallet_names) <= len(self.nodes)
    


    MarcoFalke commented at 12:55 pm on October 19, 2020:

    Could keep the assert as

    0assert len(self.wallet_names) <= len(self.nodes)
    

    ryanofsky commented at 1:07 pm on October 19, 2020:

    re: #20186 (review)

    Could keep the assert as

    0assert len(self.wallet_names) <= len(self.nodes)
    

    Added back

  8. MarcoFalke commented at 12:57 pm on October 19, 2020: member
    left some nits. No opinion on the actual changes.
  9. hebasto commented at 1:11 pm on October 19, 2020: member
    Concept ACK.
  10. DrahtBot commented at 1:11 pm on October 19, 2020: member

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #20260 (wallet: Create named SQLite wallet files instead of wallet directories by achow101)
    • #20094 (wallet: Unify wallet directory lock error message by hebasto)
    • #19502 (Bugfix: Wallet: Soft-fail exceptions within ListWalletDir file checks by luke-jr)
    • #19078 (test: Add salvage test for wallet tool by MarcoFalke)
    • #17580 (refactor: Add ALLOW_LIST flags and enforce usage in CheckArgFlags by ryanofsky)

    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.

  11. ryanofsky force-pushed on Oct 19, 2020
  12. ryanofsky commented at 1:44 pm on October 19, 2020: member
    Updated 1044521921405d1113ece4c0ebbed130bbe6ae12 -> bc2b0d99a5f54b941f8c663385f42cb9da20b94b (pr/nowa.1 -> pr/nowa.2, compare) with suggested tweaks
  13. meshcollider commented at 11:42 pm on October 19, 2020: contributor
    Concept / utACK bc2b0d99a5f54b941f8c663385f42cb9da20b94b
  14. hebasto commented at 5:19 am on October 21, 2020: member

    Testing bc2b0d99a5f54b941f8c663385f42cb9da20b94b with the GUI.

    Steps:

    1. having two wallets: a bdb, and a sqlite
    2. in the GUI open the both wallets, and shutdown
    3. verifying that the both wallets are written into the settings.json
    4. rename/remove the sqlite wallet
    5. start bitcoin-qt, observing a nice warning (on master a new bdb wallet was created silently)
    6. in the GUI only the bdb wallet is loaded (please note this)
    7. shutdown bitcoin-qt and expecting to see in the settings.json the list of wallets that were loaded before shutdown, i.e., only the bdb wallet, but both wallets are actually listed

    Is such behavior expected? If “yes”, is it worth to document it?

  15. in doc/release-notes.md:300 in bc2b0d99a5 outdated
    304+### Automatic wallet creation removed
    305+
    306+Bitcoin Core will no longer automatically create new wallets on startup. It will
    307+load existing wallets specified by `-wallet` options on the command line,
    308+wallets listed in `bitcoin.conf` or `settings.json` files, and a top-level
    309+unnamed ("") wallet. But if specified wallets don't exist, Bitcoin Core will log
    


    hebasto commented at 5:24 am on October 21, 2020:

    bc2b0d99a5f54b941f8c663385f42cb9da20b94b

    I’ve read and then re-read this sentence “It will load existing wallets specified by -wallet options on the command line, wallets listed in bitcoin.conf or settings.json files, and a top-level unnamed (”") wallet."

    It sounds to me like an existing top-level unnamed ("") wallet is loaded unconditionally. That is not the case, right?


    ryanofsky commented at 9:02 am on October 21, 2020:

    bc2b0d9

    I’ve read and then re-read this sentence “It will load existing wallets specified by -wallet options on the command line, wallets listed in bitcoin.conf or settings.json files, and a top-level unnamed (”") wallet."

    It sounds to me like an existing top-level unnamed ("") wallet is loaded unconditionally. That is not the case, right?

    I am happy to change this paragraph (and please give your suggestion), but I think it is fine. I can’t think of any normal sequence of operations that would result in a "" wallet not being loaded and this paragraph isn’t trying to translate every condition in wallet loading code to prose, just mention wallets that can be loaded at startup.


    hebasto commented at 9:40 am on October 21, 2020:
    Suggesting “It will load existing wallets specified by -wallet options on the command line, wallets listed in bitcoin.conf or settings.json files.” but not having a strong opinion about that. Feel free to ignore this comment.

    ryanofsky commented at 9:55 am on October 21, 2020:

    Suggesting “It will load existing wallets specified by -wallet options on the command line, wallets listed in bitcoin.conf or settings.json files.” but not having a strong opinion about that. Feel free to ignore this comment.

    That text seems to match current text exactly, so the suggestion is to stop mentioning the top-level wallet? That seems ok because it’s not essential information, but it is information that was in the previous “Default wallet” version of the paragraph, so I’d be reluctant to lose it. It’s possible for a top level wallet to not be loaded, but you have to go out of your way to do that, and I don’t this release note implies that it’s not possible.


    jonatack commented at 10:44 am on October 21, 2020:
    maybe s/But if specified wallets/However, if the specified wallets/ (missing “the” in any case)

    ryanofsky commented at 11:30 am on October 21, 2020:

    re: #20186 (review)

    I don’t this release note implies that it’s not possible.

    Added “by default” to avoid implying it always loads the wallet

    re: #20186 (review)

    maybe s/But if specified wallets/However, if the specified wallets/ (missing “the” in any case)

    Switched to “however”, but missing “the” is intentional. This is making a distinction between wallets which are explicitly specified, and the top-level wallet which may be loaded implicitly without being specified. Both the specified wallets and the implicit one are loaded if they exist, but no warnings are shown if the implicit one don’t exist.

  16. hebasto commented at 5:35 am on October 21, 2020: member
    ACK bc2b0d99a5f54b941f8c663385f42cb9da20b94b
  17. ryanofsky commented at 9:34 am on October 21, 2020: member

    re: #20186 (review)

    Is such behavior expected? If “yes”, is it worth to document it?

    This comment describes the behavior (which is expected behavior) but doesn’t describe which parts of the behavior are good or bad, or which parts of the behavior are undocumented. Maybe reading list of alternatives https://github.com/bitcoin-core/gui/issues/95#issuecomment-694236940 would clarify approach in this PR. This PR is just doing the simplest possible thing it can do to avoid creating wallets unintentionally. Other improvements like displaying temporarily unavailable wallets or updating the settings file can build on top of this PR, but would be more complicated followups.

    If the problem here is just documentation, it would help to have a specific suggestion how to improve the documentation.

  18. in doc/release-notes.md:297 in bc2b0d99a5 outdated
    301-unnamed `""` wallet and without any other wallets to be loaded on startup will
    302-be prompted to either choose a wallet to load, or to create a new wallet.
    303-(#15454)
    304+### Automatic wallet creation removed
    305+
    306+Bitcoin Core will no longer automatically create new wallets on startup. It will
    


    jonatack commented at 10:42 am on October 21, 2020:
    maybe s/new wallets/a new wallet/

    ryanofsky commented at 11:30 am on October 21, 2020:

    re: #20186 (review)

    maybe s/new wallets/a new wallet/

    I don’t think this is right. The previous release created wallets on startup, the new release doesn’t create wallets on startup. Only the intermediate code between PRs made a special case for one wallet (the top level wallet)

  19. in doc/release-notes.md:301 in bc2b0d99a5 outdated
    305+
    306+Bitcoin Core will no longer automatically create new wallets on startup. It will
    307+load existing wallets specified by `-wallet` options on the command line,
    308+wallets listed in `bitcoin.conf` or `settings.json` files, and a top-level
    309+unnamed ("") wallet. But if specified wallets don't exist, Bitcoin Core will log
    310+warnings instead of creating new wallets with new keys and addresses like
    


    jonatack commented at 10:43 am on October 21, 2020:
    maybe “log a warning instead of creating a new wallet”

    ryanofsky commented at 11:30 am on October 21, 2020:

    re: #20186 (review)

    maybe “log a warning instead of creating a new wallet”

    Seems more consistent to use plural everywhere: multiple wallets specified, multiple warnings, multiple wallets not created

  20. in src/wallet/init.cpp:63 in bc2b0d99a5 outdated
    59@@ -60,7 +60,7 @@ void WalletInit::AddWalletOptions(ArgsManager& argsman) const
    60     argsman.AddArg("-rescan", "Rescan the block chain for missing wallet transactions on startup", ArgsManager::ALLOW_ANY, OptionsCategory::WALLET);
    61     argsman.AddArg("-spendzeroconfchange", strprintf("Spend unconfirmed change when sending transactions (default: %u)", DEFAULT_SPEND_ZEROCONF_CHANGE), ArgsManager::ALLOW_ANY, OptionsCategory::WALLET);
    62     argsman.AddArg("-txconfirmtarget=<n>", strprintf("If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)", DEFAULT_TX_CONFIRM_TARGET), ArgsManager::ALLOW_ANY, OptionsCategory::WALLET);
    63-    argsman.AddArg("-wallet=<path>", "Specify wallet database path. Can be specified multiple times to load multiple wallets. Path is interpreted relative to <walletdir> if it is not absolute, and will be created if it does not exist (as a directory containing a wallet.dat file and log files). For backwards compatibility this will also accept names of existing data files in <walletdir>.)", ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::WALLET);
    64+    argsman.AddArg("-wallet=<path>", "Specify wallet path to load at startup. Can be specified multiple times to load multiple wallets. Path is interpreted relative to <walletdir> if it is not absolute as a directory containing wallet data and log files. For backwards compatibility this will also accept names of existing data files in <walletdir>.) This will only load existing wallets, not create new ones.", ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::WALLET);
    


    jonatack commented at 10:46 am on October 21, 2020:
    • dangling bracket: s/<walletdir>.)/<walletdir>./ (was originally present but may as well fix it)

    • maybe “Path is to a directory containing wallet data and log files. If the path is not absolute, it is interpreted as relative to <walletdir>.”

    • mixed (inconsistent) verb tenses (present, then switches to future), consider s/this will also accept/this accepts/ and “This only loads existing wallets and does not create new ones.”


    ryanofsky commented at 11:30 am on October 21, 2020:

    re: #20186 (review)

    • dangling bracket: s/<walletdir>.)/<walletdir>./ (was originally present but may as well fix it)
    • maybe “Path is to a directory containing wallet data and log files. If the path is not absolute, it is interpreted as relative to <walletdir>.”
    • mixed (inconsistent) verb tenses (present, then switches to future), consider s/this will also accept/this accepts/ and “This only loads existing wallets and does not create new ones.”

    Thanks! Updated with all these changes

  21. jonatack commented at 10:54 am on October 21, 2020: member
    Concept/approach ACK. Some optional comments below.
  22. jonasschnelli commented at 11:26 am on October 21, 2020: contributor
    Concept ACK
  23. ryanofsky force-pushed on Oct 21, 2020
  24. ryanofsky commented at 12:12 pm on October 21, 2020: member

    Thanks for reviews! Just updated with documentation tweaks.


    Updated bc2b0d99a5f54b941f8c663385f42cb9da20b94b -> e368d2bb3b4d1211f01e17dbe7e1f80528b77626 (pr/nowa.2 -> pr/nowa.3, compare) with suggested changes to documentation

  25. in test/functional/wallet_backup.py:99 in e368d2bb3b outdated
     98-        self.start_node(2)
     99+    def start_three(self, args=()):
    100+        self.start_node(0, self.extra_args[0] + list(args))
    101+        self.start_node(1, self.extra_args[1] + list(args))
    102+        self.start_node(2, self.extra_args[2] + list(args))
    103         connect_nodes(self.nodes[0], 3)
    


    MarcoFalke commented at 12:46 pm on October 21, 2020:
    needs rebase
  26. MarcoFalke added the label Needs rebase on Oct 21, 2020
  27. wallet: Make -wallet setting not create wallets
    This changes -wallet setting to only load existing wallets, not create new ones.
    
    - Fixes settings.json corner cases reported by sjors & promag:
      https://github.com/bitcoin-core/gui/issues/95,
      https://github.com/bitcoin/bitcoin/pull/19754#issuecomment-685858578,
      https://github.com/bitcoin/bitcoin/pull/19754#issuecomment-685858578
    
    - Prevents accidental creation of wallets reported most recently by jb55
      http://www.erisian.com.au/bitcoin-core-dev/log-2020-09-14.html#l-355
    
    - Simplifies behavior after #15454. #15454 took the big step of disabling
      creation of the default wallet. This PR extends it to avoid creating other
      wallets as well. With this change, new wallets just aren't created on
      startup, instead of sometimes being created, sometimes not. #15454 release
      notes are updated here and are simpler.
    
    This change should be targeted for 0.21.0. It's a bug fix and simplifies
    behavior of the #15937 / #19754 / #15454 features added in 0.21.0.
    01476a88a6
  28. ryanofsky force-pushed on Oct 21, 2020
  29. ryanofsky commented at 1:40 pm on October 21, 2020: member
    Rebased e368d2bb3b4d1211f01e17dbe7e1f80528b77626 -> 01476a88a6095fd3af71cb9bf1eadef920a1197b (pr/nowa.3 -> pr/nowa.4, compare) due to conflict with #19967
  30. DrahtBot removed the label Needs rebase on Oct 21, 2020
  31. achow101 commented at 5:13 pm on October 21, 2020: member
    ACK 01476a88a6095fd3af71cb9bf1eadef920a1197b
  32. luke-jr changes_requested
  33. luke-jr commented at 7:20 pm on October 24, 2020: member

    Concept ACK

    But I think it should error, not just warn (maybe with a way to suppress the error to a warning per-wallet?). And there should probably be some command-line option for load-or-create…

  34. hebasto approved
  35. hebasto commented at 9:52 am on October 26, 2020: member
    re-ACK 01476a88a6095fd3af71cb9bf1eadef920a1197b
  36. in test/functional/wallet_multiwallet.py:85 in 01476a88a6
    80@@ -80,7 +81,9 @@ def wallet_file(name):
    81         # rename wallet.dat to make sure plain wallet file paths (as opposed to
    82         # directory paths) can be loaded
    83         # create another dummy wallet for use in testing backups later
    84-        self.start_node(0, ["-nowallet", "-wallet=empty", "-wallet=plain"])
    85+        self.start_node(0)
    86+        node.createwallet("empty", descriptors=False)
    


    achow101 commented at 9:02 pm on October 26, 2020:
    When possible, can we please avoid forcing legacy wallets? Not all of these newly created wallets need to be legacy.

    ryanofsky commented at 9:31 pm on October 26, 2020:

    re: #20186 (review)

    When possible, can we please avoid forcing legacy wallets? Not all of these newly created wallets need to be legacy.

    Obviously yes, but these wallets were legacy before this PR and they are legacy after this PR. This PR isn’t trying to change wallet types, and I wasn’t trying to make things more difficult for myself by introducing unnecessary changes at the same time as fixing all of these tests. But I can make the change if an update is needed. I’m reviewing #18788 which updates tests to use descriptor wallets, and think that PR is another good place to take up this issue.


    achow101 commented at 9:57 pm on October 26, 2020:
    Hmm, then wallet_multiwallet.py --descriptors is currently very misleading as it doesn’t actually test multiwallet descriptor wallets.

    ryanofsky commented at 10:36 pm on October 26, 2020:

    re: #20186 (review)

    Hmm, then wallet_multiwallet.py --descriptors is currently very misleading as it doesn’t actually test multiwallet descriptor wallets.

    I’m not seeing that. There are createwallet calls that don’t set descriptors=False, including the one that creates the default wallet. I know I definitely made updates to this test to deal with wallet.sqlite issues that happened only with descriptor wallets, but maybe not all of these changes survived the reverted naming. Going forward other createwallet calls can be updated and I’m happy to do it here if there need to be updates here, or I think #18788 could be another logical place to switch more legacy wallets to descriptor wallets

  37. laanwj commented at 11:24 am on October 29, 2020: member
    Concept ACK. I agree creating wallets is better left as an explicit operation.
  38. ryanofsky commented at 12:44 pm on October 29, 2020: member

    ACK roundup

    meshcollider utACK #20186#pullrequestreview-512233389 hebasto ACK #20186#pullrequestreview-516615230 achow101 ACK #20186 (comment)

    jonatack concept ACK #20186#pullrequestreview-513540739 jonasschnelli concept ACK #20186 (comment) luke-jr concept ACK #20186#pullrequestreview-516301051

    If anyone else is curious to review, the code change is very simple. PR is 90% documentation and test changes

  39. in doc/release-notes.md:306 in 01476a88a6
    310+Bitcoin Core will now just log warnings instead of creating new wallets with
    311+new keys and addresses like previous releases did.
    312+
    313+New wallets can be created through the GUI (which has a more prominent create
    314+wallet option), through the `bitcoin-cli createwallet` or `bitcoin-wallet
    315+create` commands, or the `createwallet` RPC. (#15454)
    


    MarcoFalke commented at 1:39 pm on October 29, 2020:
    0create` commands, or the `createwallet` RPC. (#15454, [#20186](/bitcoin-bitcoin/20186/))
    

    ryanofsky commented at 2:20 pm on October 29, 2020:
  40. in doc/release-notes.md:300 in 01476a88a6
    304+### Automatic wallet creation removed
    305+
    306+Bitcoin Core will no longer automatically create new wallets on startup. It will
    307+load existing wallets specified by `-wallet` options on the command line or in
    308+`bitcoin.conf` or `settings.json` files. And by default it will also load a
    309+top-level unnamed ("") wallet. However, if specified wallets don't exist,
    


    MarcoFalke commented at 1:55 pm on October 29, 2020:
    0top-level unnamed ("") wallet if it exists. However, if specified wallets don't exist,
    

    ryanofsky commented at 2:34 pm on October 29, 2020:

    re: #20186 (review)

    My brain might just be poisoned from looking at this paragraph too many times, but “if it exists” seems like a suspicious condition to add. Like going to a bank teller and saying “I am not robbing this bank today.” The paragraph starts off by saying new wallets won’t be created, and if a wallet doesn’t exist it can’t be loaded. Anyway this can be edited in the wiki if someone has a better sense

  41. MarcoFalke approved
  42. MarcoFalke commented at 2:01 pm on October 29, 2020: member

    review ACK 01476a88a6095fd3af71cb9bf1eadef920a1197b 🏂

    Signature:

     0-----BEGIN PGP SIGNED MESSAGE-----
     1Hash: SHA512
     2
     3review ACK 01476a88a6095fd3af71cb9bf1eadef920a1197b 🏂
     4-----BEGIN PGP SIGNATURE-----
     5
     6iQGzBAEBCgAdFiEE+rVPoUahrI9sLGYTzit1aX5ppUgFAlwqrYAACgkQzit1aX5p
     7pUgBvwv/bY+eUShaDOuvAG0i9cebopzCwinm/okeSaUY8n7+aFqqXQCLxCyDUqjd
     8iy7tG01DaGjtqwGNfHRzSM6aOLEokQDKG3jwwMLn6FhofEsvfUhyBPrf282pjyeQ
     981CdmAwM/jZv1ZEMIRZ+NTGzoRPsSmXbIF5T8SEz1D1lxtu4ZZkQu+sP9aCCPgDW
    10W30fi++JD0y7E3R3Qzkzgj+XjUAfE31ishJ8omXn6RYpZ905D/XQYsi8qnRcg0Zb
    11tE3LhCcUa2OJaN6suBWI/C9YKP2a5y7Kv2+4DVEJHDieAsjQFiGkkmqr3WLWChZF
    12zuP0diiTO4pKGl0LEBfGmP58yxqBWkaBtf6J9xNg/2lOJf5Hca1qYrRQ82YUBsOq
    13a90o5DSuuE+Su3GPa5npdJ4TKH1cHK3zPW2ntYEHFhCheV6I46Snij0oYlq/odS0
    14AZHwD7Wcf1Hs3adPOqSBeFT5k1gv7j7KR/d3nCh0LzfbR7/GQtA7brDVnSUVOhjg
    15guDVKx3B
    16=B5t/
    17-----END PGP SIGNATURE-----
    

    Timestamp of file with hash 8c05cf2e3a6f8f2bf14f360a9f14a7a7d62deab81e5fc85dad09447ac883fef6 -

  43. MarcoFalke merged this on Oct 29, 2020
  44. MarcoFalke closed this on Oct 29, 2020

  45. sidhujag referenced this in commit 48063676f9 on Oct 29, 2020
  46. promag commented at 12:51 pm on November 1, 2020: member

    Code review ACK 01476a88a6. @ryanofsky not sure if the following should be fixed:

    Running with an empty datadir:

    0bitcoind -regtest -wallet=""
    

    Gives

    0<datadir>/regtest/wallets'. Data is not in recognized format.
    
  47. DrahtBot locked this on Feb 15, 2022

github-metadata-mirror

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-11-17 09:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me