Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make descriptor wallets by default #213

Merged
merged 6 commits into from
Mar 25, 2024
Merged

Conversation

ghost
Copy link

@ghost ghost commented Mar 22, 2024

Like they did in bitcoin 23. Change the default wallet type from legacy ( Berkeley DB ) to descriptor ( SQLite ).


Why move from Berkeley DB?

Not designed to be used as an application data file. The Legacy Wallet has several hacks to get round this as a result and Berkeley DB wallet files can easily be corrupted.
Berkeley DB produces extra files which need to be moved with the database file. This means that Berkeley DB is less portable and requires a directory for each wallet.
Changes were introduced to Berkeley DB database environment files breaking backwards compatibility.

Why choose SQLite?

Can be used as an application data file.

New SQLite versions maintains backwards compatibility with versions as far back as 2013.

Does not require database environment. A completed write guarantees that the data was written to the database file.

Can now move to single wallet files instead of wallet directories.

Screenshot from 2024-03-22 00-59-59


Screencast.from.2024-03-22.00-58-48.webm

Issue #199

JaredTate
JaredTate previously approved these changes Mar 22, 2024
Copy link

@JaredTate JaredTate left a comment

Choose a reason for hiding this comment

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

Looks good. Wallet compiles, runs & make check tests passes. When I go to create wallet descriptor was default. Was able to create one no issues.

Screenshot 2024-03-21 at 7 17 48 PM

Screenshot 2024-03-21 at 7 18 03 PM

Screenshot 2024-03-21 at 7 18 27 PM

Screenshot 2024-03-21 at 7 16 56 PM

ycagel
ycagel previously approved these changes Mar 22, 2024
Copy link
Member

@ycagel ycagel left a comment

Choose a reason for hiding this comment

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

cACK

@JaredTate
Copy link

JaredTate commented Mar 22, 2024

It does appear this causes 1 functional test that was passing to fail now:

tool_wallet.py --legacy-wallet

Screenshot 2024-03-21 at 8 25 32 PM

@JaredTate JaredTate self-requested a review March 22, 2024 02:27
@ghost ghost dismissed stale reviews from JaredTate and ycagel via 24fcbfc March 22, 2024 06:56
@ghost
Copy link
Author

ghost commented Mar 22, 2024

It does appear this causes 1 functional test that was passing to fail now:

tool_wallet.py --legacy-wallet

Screenshot 2024-03-21 at 8 25 32 PM

Should work now tnx!
Screenshot from 2024-03-22 07-54-26

@ghost ghost requested a review from ycagel March 22, 2024 07:01
Copy link

@JaredTate JaredTate left a comment

Choose a reason for hiding this comment

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

ACK! Great stuff! Test passing now for me and wallet works great.

Screenshot 2024-03-22 at 7 41 21 AM

Copy link
Member

@ycagel ycagel left a comment

Choose a reason for hiding this comment

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

cACK

@saltedlolly
Copy link

I have tested this on Apple Silicon and it is working fine. It is worth noting that with the descriptor wallet I am no longer experiencing the freezing at startup that you get with the legacy wallet.

descriptor.wallet.mov

@saltedlolly
Copy link

That said if I try to open a legacy wallet when already running the descriptor wallet it is freezing permanently - it got stuck beachballing on the video below. I suspect this is a seperate issue but worth mentioning.

Screen.Recording.2024-03-23.at.4.13.53.pm.mov

Copy link
Member

@gto90 gto90 left a comment

Choose a reason for hiding this comment

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

utACK

@gto90 gto90 merged commit 3f26fd1 into DigiByte-Core:develop Mar 25, 2024
@ghost ghost deleted the descriptor branch March 25, 2024 18:26
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.

4 participants