-
Notifications
You must be signed in to change notification settings - Fork 77
feat: add redb as an alternative to sqlite #206
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
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have not tested but I left a few comments.
I think it is a good idea to leave sqlite as the default db. Users can compile with no default features if they want to use redb. But when you open the PR, I will test it properly to have a better opinion.
In the meantime, a good job so far.
Pull Request Test Coverage Report for Build 16288030656Details
💛 - Coveralls |
Made sqlite a default feature again. |
wallet is a default feature :)
And add individual database errors instead. This makes error handling cleaner as suggested by tvpeter.
Since the user does not need to know about how commands are being handled.
Since bdk_redb can handle multiple wallets in a single db file, we donot need to make separate folders for each wallet. Also changed default wallet name from wallet1 to wallet in case of redb for compatibility with sqlite.
Since bdk_redb is now published on Crates.io
Description
We currently only support
sqlite
persistence. This PR adds an alternativeredb
persistence by leveraging Summer Of Bitcoin work onbdk_redb
.Notes to the reviewers
The CI does not pass since
bdk_redb
has a MSRV of 1.85.0 which is in turn due toredb
. Alsobdk_redb
is yet to published as a crate so currently we use the GitHub version of the same.The following script tests a simple scenario of creating a wallet with bitcoind-rpc as chain source , sending funds to an address controlled by the wallet and creating a transaction using the wallet:
the conf is as follows:
Also removedsqlite
from default features since we now have an alternative.Changelog notice
Checklists
All Submissions:
cargo fmt
andcargo clippy
before committingNew Features:
CHANGELOG.md