JoinMarket-Org/joinmarket-clientserver

Implement Bitcoin Core descriptor wallet support

Opened this issue · 8 comments

No BDB creation, unless -deprecatedrpc=create_bdb was just merged into Bitcoin Core master and is planned to be released with v26. According to schedule, planned release date is 2023-11-22.

Currently only legacy (BDB) Core wallets are supported by JoinMarket. This will cause problems for users if don't get out JoinMarket release with descriptor wallet support before Bitcoin Core 26.0 is released.

There was old fast attempt by me to already add descriptor wallet support in #1064, but it was decided back then that using addr() descriptors is not the best way, wpkh() would be proper way. But that will need more changes at JoinMarket codebase. Also there is no 100% certainty about custom gaplimit handling, see discussion in the same #1064.

I agree that it's getting quite urgent. Indeed even today, good luck compiling Core with the legacy wallet support :)

Legacy wallet removal will be one of priority projects for Bitcoin Core 28.0. bitcoin/bitcoin#29465 (comment)

Correct, version 28.0 (development on current master now that 27.0 is branched off) is extremely likely not going to have legacy wallet support anymore. We'll have to find some solution for this.

Are there any docs on how to create a new wallet in the meantime?

I'm very curious about this issue and hesitant to try using JoinMarket before it is resolved. Probably don't understand all the nuances fully, but is the reason JoinMarket uses old BDB wallet format in order to increase the anonymity set?

I'd love to see some movement on this issue, and even help out, but I don't know enough yet to understand the context. Where could one learn more about the background on this?

is the reason JoinMarket uses old BDB wallet format in order to increase the anonymity set?

No, reason is pure Bitcoin RPC API incompatibilities between BDB and descriptor wallets. JoinMarket uses importmulti call, which is not available for descriptor wallets. We could hack around by just importing addresses descriptors using importdescriptors instead (see #1064), but that does not seem to be the best solution, could import xpub's instead, but then need to figure out is it possible to do custom gap limits.

No difference in anonymity set, both wallets would use native segwit P2WPKH addresses currently.