Skip to content

Conversation

@fanquake
Copy link
Member

@fanquake fanquake commented Nov 9, 2021

Tries to cleanup the wallet build / install documentation. Similar to #23446.
Always mention how to build for the wallet (sqlite) first, then legacy wallets (bdb).

Where possible, just use "wallet", rather than "descriptor wallet". Non-technical
or causal users don't care about whether the wallet is a descriptor wallet or not,
or what it's backed by they just want to build (and or download) and use Bitcoin Core,
create a wallet, and accept a payment. Using "descriptor wallet" could also imply
that there is some other not legacy but also not a descriptor wallet alternative,
which there is not.

Using 2 terms (wallet and legacy wallet), rather than 5 terms (wallet,
legacy wallet, bdb wallet, sqlite wallet, descriptor wallet) for the same two things
is also much less confusing.

Note that most builders now likely have to do nothing to get "wallet support" as
there's a decent probability they will already have sqlite installed on their system,
and configure no-longer fails if BDB isn't present and --disable-wallet hasn't been passed.

@DrahtBot
Copy link
Contributor

DrahtBot commented Nov 9, 2021

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

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #23954 (doc: remove CC_FOR_BUILD from OpenBSD build doc by fanquake)
  • #20610 (doc: update for NetBSD 9.1, add GUI Build Instructions by jarolrod)

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.

Copy link
Member

@maflcko maflcko left a comment

Choose a reason for hiding this comment

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

No opinion on the changes. Won't this go soon anyway?

@fanquake fanquake force-pushed the wallet_mess_cleanup branch from 223a9c2 to 012acdd Compare November 9, 2021 10:21
@katesalazar
Copy link
Contributor

Concept ACK.

@fanquake
Copy link
Member Author

fanquake commented Nov 9, 2021

Won't this go soon anyway?

I don't know. According to #20160 we'll be supporting BDB wallets in some capacity for a few more years at least, I assume that means having some BDB documentation available? If we can delete it now I'm happy to do that, otherwise, I think consolidating it into a single, not front-and-center place is much better than having it spread out over the build docs, being misleading etc.

@laanwj
Copy link
Member

laanwj commented Nov 9, 2021

I don't think we should be in any rush to removing the BDB wallet. Definitely not before there is a feasible, well tested upgrade path for old wallets. I think it's scaring some people.

@fanquake
Copy link
Member Author

fanquake commented Nov 9, 2021

I don't think we should be in any rush to removing the BDB wallet.

Sure. However I think consolidating the legacy documentation is a worthwhile interim step, and will likely help with the migration towards sql based wallets, by moving the BDB documentation out of front and center. As is, the build docs for master don't do the best explanations for a first time builder / user.

@jnewbery
Copy link
Contributor

jnewbery commented Nov 9, 2021

Concept ACK. At this point, building with the legacy bdb wallet is a specialized option that most users won't need. Consolidating all of the documentation for that option into one place rather than having it spread across multiple documents makes sense to me.

@laanwj
Copy link
Member

laanwj commented Nov 9, 2021

At this point, building with the legacy bdb wallet is a specialized option that most users won't need.

I'm not convinced about this. Descriptor wallets were only introduced (as experimental) in 0.21.0, released at the start of this year, right? There is no released version that creates them by default (that will be 23.0). There will still be many BerkeleyDB wallets in use. Also some software using bitcoin core cannot cope with descriptor wallets yet (such as joinmarket, but there is a PR for this).

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.

ACK d526273

@katesalazar
Copy link
Contributor

Concept ACK. At this point, building with the legacy bdb wallet is a specialized option that most users won't need.

At this point, building with the legacy bdb wallet is a specialized option that most new users won't need (not even all new users), and, soon, most users won't need.

People are just afraid that soon is a few years. Sadly, they are right.

Copy link
Contributor

@rajarshimaitra rajarshimaitra 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. It is indeed confusing. And I actually didn't know we don't need BDB for wallet support anymore.

Below are few nits and comments.

Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
be compiled without one using:
be compiled without one, using:

Comment on lines 7 to 15
Copy link
Contributor

Choose a reason for hiding this comment

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

I am wondering if a version of this note can be kept (without the wallet refs). Its useful information that all paths needs to be absolute in configure.

doc/build-osx.md Outdated
Copy link
Contributor

Choose a reason for hiding this comment

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

if qt is installed, the gui would be built by default, right? So instead of specifying how to explictly enable gui maybe its better to specify ho to explicitly disable gui? And then add note similar to sqlite lines above, saying when gui will be enabled by default?

My only point is the explicit gui disable step was there before few lines ago, and now its removed.

@ghost
Copy link

ghost commented Nov 13, 2021

I'm not convinced about this. Descriptor wallets were only introduced (as experimental) in 0.21.0, released at the start of this year, right? There is no released version that creates them by default (that will be 23.0). There will still be many BerkeleyDB wallets in use. Also some software using bitcoin core cannot cope with descriptor wallets yet (such as joinmarket, but there is a PR for this).

Agree with this. Descriptors are still new and wallets as well. It is interesting and will be used more in future however I don't think legacy wallets should/will be removed soon.

I will quote something from a discussion during our internship in which one project used descriptors:

yeah it is confusing at first, it's funny that Andrew Chow say descriptors are not humans readable but engineers readable

Few differences and trade-offs including possibility of bugs:

https://bitcoin.stackexchange.com/questions/107905/retrieve-the-xpub-and-private-key-of-a-given-path-bitcoin-core/

https://bitcoin.stackexchange.com/questions/107926/fuzzing-descriptor-wallet-rpcs

@fanquake
Copy link
Member Author

I've made the changes here less aggressive, but still tried to cleanup the build / install instructions. Updated the PR description accordingly.

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.

Concept ACK

Copy link
Contributor

@rajarshimaitra rajarshimaitra left a comment

Choose a reason for hiding this comment

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

reACK c5650a5

I am still unsure on the use of wallet and legacy wallet, and thinking having descriptor wallet and legacy wallet terms is more clearer. It kinda implicitly indicates the difference between the two.

Comment on lines +100 to +101
Copy link
Contributor

Choose a reason for hiding this comment

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

I am going a little back and forth on the terms legacy wallet and wallet. It indicates that there are two different kind of wallets in the context, but doesn't explain what's the difference. So may be instead we could use legacy wallet and descriptor wallet in the doc everywhere? In that way I feel it would be more clear to new readers. Because it is not a well known fact outside of the dev community that a sqlite based default wallet is descriptor based and its not same as regular BDB wallets.

Comment on lines -80 to -81
Copy link
Contributor

Choose a reason for hiding this comment

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

Same as netbsd, don't we have to mention somewhere that, to enable descriptor wallet sqlite3 needs to be installed?

@DrahtBot
Copy link
Contributor

DrahtBot commented Jan 4, 2022

🐙 This pull request conflicts with the target branch and needs rebase.

Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft".

@Rspigler
Copy link
Contributor

Rspigler commented Jan 6, 2022

I also agree that it would be best to use the terms legacy wallet and descriptor wallet, rather than just legacy/wallet. The user should know what type of wallet it is (and its not like there isn't other technical terms in other docs or even in the GUI itself). There is also descriptors.md if the user is confused.

@fanquake fanquake marked this pull request as draft March 17, 2022 10:27
@fanquake
Copy link
Member Author

Moved this to draft, and proposing some other changes. i.e #24585.

@fanquake
Copy link
Member Author

Further changes in #24600 and #24608.

@fanquake
Copy link
Member Author

Closing this now that changes have either been merged or split out (#24652, #24658).

@fanquake fanquake closed this Mar 24, 2022
@fanquake fanquake deleted the wallet_mess_cleanup branch March 24, 2022 10:55
@bitcoin bitcoin locked and limited conversation to collaborators Mar 24, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants