Skip to content

Conversation

@achow101
Copy link
Member

Changes the default wallet type from legacy to descriptors. Descriptor wallets will now by the default type. Additionally, descriptor wallets will no longer be marked as experimental.

This follows the timeline proposed in #20160

@fanquake
Copy link
Member

Concept ACK

@fanquake fanquake added this to the 23.0 milestone Sep 17, 2021
@laanwj
Copy link
Member

laanwj commented Sep 17, 2021

Concept ACK

2 similar comments
@prusnak
Copy link
Contributor

prusnak commented Sep 17, 2021

Concept ACK

@sipa
Copy link
Member

sipa commented Sep 17, 2021

Concept ACK

@achow101 achow101 force-pushed the default-desc-wallets branch from 723e860 to 71e0af8 Compare September 17, 2021 16:28
@achow101 achow101 force-pushed the default-desc-wallets branch from 71e0af8 to 9c1052a Compare September 17, 2021 17:32
@DrahtBot
Copy link
Contributor

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

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #22766 (refactor: Clarify and disable unused ArgsManager flags 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.

<property name="text">
<string>Descriptor Wallet</string>
</property>
<property name="checked">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe switch this around and have an unchecked "legacy wallet" option here instead?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that may be a little confusing?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there's something to be said for both options, but I think the current name is slightly better. It highlights what is new instead of what is old.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose you could have a tooltip text that explains in more detail, that there are "legacy wallets" and "descriptor wallets" and what is the difference from a user point of view.

Copy link
Member

@darosior darosior left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concept ACK. I've been using descriptor wallets in my application for a year without issue.

Copy link
Contributor

@lsilva01 lsilva01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested ACK 9c1052a on Ubuntu 20.04

@ghost
Copy link

ghost commented Sep 21, 2021

Concept ACK. Tested on Pop!_OS and had only one issue.

  1. Descriptor wallet is created by default
$ bitcoin-cli createwallet "D1"
{
  "name": "D1",
  "warning": ""
}

$ bitcoin-cli -rpcwallet=D1 getwalletinfo
{
  "walletname": "D1",
  "walletversion": 169900,
  "format": "sqlite",
  "balance": 0.00000000,
  "unconfirmed_balance": 0.00000000,
  "immature_balance": 0.00000000,
  "txcount": 0,
  "keypoolsize": 3000,
  "keypoolsize_hd_internal": 3000,
  "paytxfee": 0.00000000,
  "private_keys_enabled": true,
  "avoid_reuse": false,
  "scanning": false,
  "descriptors": true
}
  1. Descriptor wallet option is checked in GUI

image

  1. Not sure where should I use -legacy? I tried using it with bitcoind, in bitcoin.conf and in bitcoin-cli -named createwallet. Nothing works. ⚠️

@achow101
Copy link
Member Author

1. Not sure where should I use `-legacy`? I tried using it with `bitcoind`, in bitcoin.conf and in `bitcoin-cli -named createwallet`. Nothing works.

It is part of the wallet tool, bitcoin-wallet.

@lsilva01
Copy link
Contributor

  1. Not sure where should I use -legacy? I tried using it with bitcoind, in bitcoin.conf and in bitcoin-cli -named createwallet. Nothing works.

You can test with the following command:

src/bitcoin-wallet -legacy -wallet="test_legacy" create

Copy link

@ghost ghost left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tACK 9c1052a

@meshcollider
Copy link
Contributor

Concept ACK

Copy link
Contributor

@meshcollider meshcollider left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review ACK 9c1052a

@theStack
Copy link
Contributor

Concept ACK

@Sjors
Copy link
Member

Sjors commented Oct 20, 2021

Concept ACK, but I'd like to see #22364 land first, so we have tr() descriptors for all new users, and don't have to worry about upgrade paths for a while.

@maflcko
Copy link
Member

maflcko commented Oct 22, 2021

As long as #22364 lands before the next major release, it should be fine to merge this. master shouldn't be used for anything other than testing, so we don't have to worry about upgrade paths.

Edit: Also, (experimental) descriptor wallets already exist, so this discussion seems unrelated to this pull request either way?

@maflcko
Copy link
Member

maflcko commented Oct 22, 2021

Changing the default might need release notes, but this can be done later.

@maflcko maflcko merged commit 02feae5 into bitcoin:master Oct 22, 2021
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Oct 22, 2021
9c1052a wallet: Default new wallets to descriptor wallets (Andrew Chow)
f19ad40 rpc, wallet: Descriptor wallets are no longer experimental (Andrew Chow)

Pull request description:

  Changes the default wallet type from legacy to descriptors. Descriptor wallets will now by the default type. Additionally, descriptor wallets will no longer be marked as experimental.

  This follows the timeline proposed in bitcoin#20160

ACKs for top commit:
  lsilva01:
    Tested ACK bitcoin@9c1052a on Ubuntu 20.04
  prayank23:
    tACK bitcoin@9c1052a
  meshcollider:
    Code review ACK 9c1052a

Tree-SHA512: 834e6fec88e0c18673af7ebe135bd5333694d1be502164eb93a90e3e76c27974165aa4e59426945100c88e4eca07356e16886ef5b05cf789683ecb23fc71a12a
// If -legacy is set, use it. Otherwise default to false.
bool make_legacy = args.GetBoolArg("-legacy", false);
// If neither -legacy nor -descriptors is set, default to true. If -descriptors is set, use its value.
bool make_descriptors = (!args.IsArgSet("-descriptors") && !args.IsArgSet("-legacy")) || (args.IsArgSet("-descriptors") && args.GetBoolArg("-descriptors", true));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This IsArgSet logic is very strange. Why is this not just:

bool make_descriptors = args.GetBoolArg("-descriptors", true);

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To avoid setting it to true if -legacy is set.

bitcoinhodler added a commit to bitcoinhodler/bitcoin that referenced this pull request Feb 7, 2022
bitcoinhodler added a commit to bitcoinhodler/bitcoin that referenced this pull request Feb 9, 2022
achow101 added a commit that referenced this pull request Feb 17, 2022
8e9699c Update doc to match new default wallet type (Bitcoin Hodler)

Pull request description:

  #23002 changed the default wallet type to descriptors, so this doc was out of date.

ACKs for top commit:
  achow101:
    ACK 8e9699c

Tree-SHA512: 2f69b23c153163bf2a091dbf728b713d28f795cc81e031bf201160882d2456494e94955ff6385634615fdcfece11542749ad1c982e2994e64ed69011380a2353
hmel pushed a commit to hmel/bitcoin that referenced this pull request Feb 20, 2022
prusnak added a commit to prusnak/bitcoin that referenced this pull request Mar 14, 2022
because descriptors wallets are created by default since bitcoin#23002
achow101 added a commit that referenced this pull request Mar 16, 2022
…y default

5347c97 doc: update multisig-tutorial.md to default wallet type (Jon Atack)

Pull request description:

  Follow-up to #24281 and #24281 (comment). The default wallet type was changed to descriptor wallets in #23002.

ACKs for top commit:
  laanwj:
    ACK 5347c97
  michaelfolkson:
    ACK 5347c97
  achow101:
    ACK 5347c97
  theStack:
    Concept and code-review ACK 5347c97

Tree-SHA512: 8074a33ad253ecb7d3f78645a00c808c7c224996cc1748067928aa59ef31a58f24fcfc75169494b26a19c7fbbf23bbd78516ab4102bc52fa92f08f1f49b18b63
@fanquake
Copy link
Member

This was part of 23.0 and got a release note. Removing "Needs release note".

delta1 added a commit to delta1/elements that referenced this pull request May 14, 2023
@bitcoin bitcoin locked and limited conversation to collaborators Sep 15, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.