Skip to content

bitcoin core v23 creates descriptor wallets by default#1192

Open
LiranCohen wants to merge 1 commit intodecentralized-identity:masterfrom
13x-tech:bitcoin-core-23
Open

bitcoin core v23 creates descriptor wallets by default#1192
LiranCohen wants to merge 1 commit intodecentralized-identity:masterfrom
13x-tech:bitcoin-core-23

Conversation

@LiranCohen
Copy link
Copy Markdown
Member

Bitcoin Core v23 has descriptor wallets as the default for the createwallet RPC.

Since SideTree isn't currently supporting descriptor wallets, the easiest path forward is to set descriptors parameter to false.

Legacy wallets require Berkeley DB in order to work. I usually build from source and include BDB so I am leaving this in draft mode until I can test against the built release binaries.

I will do some more testing and update the ION Installation documentation to reflect the requirement of Berkeley DB, as well as potentially update the provided script to pull in v23 of bitcoin core binary.

@coffnix
Copy link
Copy Markdown

coffnix commented Jun 18, 2022

@LiranCohen
Copy link
Copy Markdown
Member Author

Thanks @coffnix!

So yeah it seems like we would need to migrate away from legacy wallets before v26 (late 2023).

Setting createwallet descriptor parameter to false should be fine for the time being, but I'll see if I can start working on a separate PR for supporting descriptor wallets within SideTree/ION.

@LiranCohen
Copy link
Copy Markdown
Member Author

I've done some more testing and the binary comes compiled with BDB which would allow for descriptors to be set to false and work.

However this change is not backward compatible with anything before v0.21.0 when the descriptors option was added.

Do we want to force a newer release of ION to be only compatible with v0.21.0+ or do we want to check for a version and based on that include the descriptors parameter in the walletcreate rpc?

I will also make an update to the bitcoin core installation script that is provided within the ION Installation guide to check that it installs bitcoin core v23 correctly.

Opening this PR for review and discussion.

@LiranCohen LiranCohen marked this pull request as ready for review June 20, 2022 19:54
@coffnix
Copy link
Copy Markdown

coffnix commented Jun 20, 2022

if possible we could already make the new version compatible with Sqlite

Copy link
Copy Markdown

@OR13 OR13 left a comment

Choose a reason for hiding this comment

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

Not sure its possible to do so given the current project structure, but this seems like a PR for the ION repo, not Sidetree.

@LiranCohen
Copy link
Copy Markdown
Member Author

if possible we could already make the new version compatible with Sqlite

That would take modifying to support descriptor wallets. I've put together a placeholder Issue for researching what it would take and tracking any progress:
decentralized-identity/ion#304

Not sure its possible to do so given the current project structure, but this seems like a PR for the ION repo, not Sidetree.

@OR13 The code for the bitcoin core RPCs unfortunately live within the Sidetree repo, I was surprised to find that myself when debugging this. That could be also a separate Issue/PR to try and accomplish.

@thehenrytsai
Copy link
Copy Markdown
Collaborator

Just providing an update that I have not forgotten about this PR. I'll be looking into this soon, as soon as I get the improvement to docker support work done!

@thehenrytsai
Copy link
Copy Markdown
Collaborator

@LiranCohen, my ION docker PR finally got merged in. I will be therefore finally be looking into testing this PR out in the next few days!

I am in the camp that it is entirely fine to break compatibility for any pre v23.0 versions as it can act as a forcing function to not use a to-be-obsolete version anyway. But based on what you said, your change is compatible with v21+, so it could be as simple as:

  1. updating the docker image to use v23; and
  2. initialize the DB using legacy Berkley DB

But your insights in decentralized-identity/ion#275 tells me it might be way more complicated that that. Will report my progress here.

@LiranCohen
Copy link
Copy Markdown
Member Author

@thehenrytsai Thanks!

I think it should be pretty straight forward like you mention, let me know if you need any help testing or are having any issues.

@thereisnogabe
Copy link
Copy Markdown
Member

this should be moved to the new impl repo https://github.com/decentralized-identity/sidetree-reference-impl

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants