-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
[WIP] Explore wallet addresses using an embedded bwt electrum server #253
base: master
Are you sure you want to change the base?
Conversation
Another possibility that I did not explore in this PR is using the bwt HTTP API, which would allow to display some additional information, such as:
With this, btc-rpc-explorer could be used not only as a block explorer, but also as a watch-only wallet explorer, which is pretty neat. :) |
What's the advantage of this over just using bitcoin cores watch-only wallet? |
@Kixunil This is using a Bitcoin Core watch-only wallet behind the scenes. But:
So basically, yes, you can do everything directly with Bitcoin Core and without bwt, it'll just require quite a bit more work. |
That's surprising, since the GUI can show history, but never tried with watch-only wallet. Anyway, it makes sense after what you explained. I'm wondering, isn't a limitation of BWT that you have to specify the xpub on the command line? |
Bitcoin Core allows querying for the history of the entire wallet, but not of specific addresses.
Do you mean having to specify an xpub as the limitation, or having to do this on the command line?
Build instructions are available here. |
Having to do it on command line. While having to specify
Oh, that's nice and as that doc says, it's reproducible. The reason I'm asking is I'm trying to understand what kind of overhead merging of this would add to me packaging |
I can add other configuration methods, how would you suggest to do this? (note that everything is already configurable using environment variables, which could be used with the
What are you packaging it for?
If you're packaging |
Definitely via UI. When the feature is enabled, user should have the ability to paste the
Currently x86_64 and (lower priority) arm64 Debian 10 (Buster) via my Deb repository.
That's not a bad option, since it has all architectures I currently care about. From the script:
|
This is definitely something that I'm planning to add to bwt eventually, but it might take me a little while to get there. One complication is that bwt is currently entirely stateless (apart from the state stored by the bitcoin core wallet), similarly to electrum-personal-server and to btc-rpc-explorer, so this would require adding a persistent storage backend first. While not ideal, I think that a configuration file could still be good enough for the initial integration. Users that are running a full node are typically more tech-savvy and used to command line and configuration files, so it would provide value to at least some of the users.
That is correct, it is.
This wasn't quit accurate. While |
I strive to do better than that. I want everyone to be able to run a node as easily as any other app. It can be a stopgap, sure, but not the final solution. This is the exact reason EPS is not packaged in my repository and will not be until this changes. Being stateless may sound nice and flashy to programmers (like "blockchain" ;)) but it's entirely useless if the consequence is 99% of people can't use an application. The storage can be as simple as a CSV file (label, xpub) that gets rewritten (written to a temp file first, then fsync, then move over) when a modification is requested by a user. There can be a few additional authenticated methods for manipulating the list. Then creating UI should be quite easy. Thinking about it, the whole thing should be authenticated because otherwise if someone gets access to BWT, it's possible to start requesting each address from the chain to see which belong to the user. Unfortunately Electrum doesn't support any kind of authentication, so network namespace isolation might be the only possibility. |
Agreed.
Agreed too. But as you said, the Electrum protocol doesn't really provide a proper way to do this. Note, however, that in the setup in this PR, the electrum server is only binding on |
Which is exactly something I like to prevent as well because local isolation is useful too (reducing damage). My repository isolates everything that makes sense for instance. |
I updated to the latest Would love to hear your thoughts @janoside :-) |
@shesek After responding to #279 I see I owe you some feedback here too...sorry. The basic feedback is the same: this is great and I look forward to getting this merged. I took a stab at working on this one recently, but ran into some trouble getting (FYI - Always excited when I see one of your PRs come in, but I also know that they're going to be an investment because you're so prolific! Thanks for all your contributions and I'll keep trying to keep up.) |
Sounds fantastic, thank you! Do you remember what trouble you ran into with |
Ok
Get Outlook for Android<https://aka.ms/AAb9ysg>
…________________________________
From: Jess25051980 ***@***.***>
Sent: Friday, October 18, 2024 7:46:41 PM
To: janoside/btc-rpc-explorer ***@***.***>
Cc: Jacksonearl2468 ***@***.***>; Comment ***@***.***>
Subject: Re: [janoside/btc-rpc-explorer] [WIP] Explore wallet addresses using an embedded bwt electrum server (#253)
@Jess25051980 approved this pull request.
—
Reply to this email directly, view it on GitHub<#253 (review)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/BK5XYGEL7R233OSNQI6VPB3Z4FJRDAVCNFSM6AAAAABPSULCSWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGNZYG43DQMRWGM>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Add support for exploring wallet addresses derived from a set of descriptors/xpubs provided by the user, by running an embedded personal bwt electrum server and pointing btc-rpc-explorer to it.
Example usage:
--address-api bwt --descriptor 'wpkh(xpub69..oP/0/*)' --xpub xpub66..zQ
This is based on the
libbwt
C FFI and thelibbwt-nodejs
package, which are still work-in-progress and not officially released. So this is not quite ready yet, I'm just posting this to gather feedback and see if there's interest.-- which has since been officially released.Some notes:
libbwt
npm package as a dependency. Instead, users are instructed to install it separately if they wish to use it.BWT_
/bwt-
to keep them separated, but this makes them kinda long. Let me know if you prefer something else.