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

Support setting one or more user-defined block explorers #4371

Closed
cbeams opened this issue Jul 23, 2020 · 6 comments · Fixed by #4733
Closed

Support setting one or more user-defined block explorers #4371

cbeams opened this issue Jul 23, 2020 · 6 comments · Fixed by #4733

Comments

@cbeams
Copy link
Contributor

cbeams commented Jul 23, 2020

Currently Bisq supports a fixed set of options for which block explorer to use when following links in the application to Bitcoin transactions and addresses. These options are hard-coded at https://github.com/bisq-network/bisq/blob/release/v1.3.6/core/src/main/java/bisq/core/user/Preferences.java#L80-L99 and show up in the application here:

image

Use of any centralized block explorer is a known privacy risk, because the service may be logging queries, including the user's IP address and other unique information and linking them to the Bitcoin addresses and/or transactions being queried. This risk can be mitigated by using a Tor-based block explorer service, but such use is still not ideal. See these two sections of @chris-belcher's Privacy article in the Bitcoin Wiki's for more details.

The ideal approach is to use a private block explorer, i.e. one running on one's own local network that queries one's own Bitcoin Core node. Doing so eliminates the risk of being tracked by other parties as no other parties are involved.

It is easy enough to add one's own block explorer by modifying Preferences.java (see link above), but ideally one would be able to specify one or more custom block explorer URLs in the Settings->Preferences screen above. A precedent for this kind of configuration functionality can be found in the Settings->Network Info screen:

image

Note how, if the user selects the 'Use custom Bitcoin Core nodes' radio button, they can then provide one or more custom node addresses in the input field below. The interaction would need to be different in the case of specifying custom block explorers, because each block explorer requires two URL templates, one for transaction lookups and one for address lookups, but this existing, somewhat similar configuration functionality may be useful as a starting point when considering how to implement this feature.

While it might be easiest to support adding just one custom block explorer, it would be ideal to allow specifying multiple of them, because in the case of an explorer running on one's local network, one might wish to access it via clearnet http when at home and via Tor when remote. This would require specifying two sets of URLs. And of course the user might want to specify any number of additional custom explorer services.

@cbeams
Copy link
Contributor Author

cbeams commented Jul 23, 2020

@bisq-network/bisq-maintainers, this might be a good candidate for labeling as a good first issue.

@chris-belcher
Copy link

I just saw this issue because my name was mentioned.

Having the users own blockchain explorer does preserve privacy, but it also decreases scalability by requiring way higher disk usage. User's cant prune (which adds about 300 GB requirement) plus they must have an extra database with an index containing every address that was ever used on the blockchain (about 100 GB depending).

A much better way to solve this problem of private address lookup is to start watching the address before it's ever used. The bitcoin network will tell you when new transactions for it arrive. IIRC bisq already connects to the bitcoin p2p network via bitcoinj, so it can monitor newly arriving transactions and blocks.

@cbeams
Copy link
Contributor Author

cbeams commented Jul 24, 2020

Thanks, Chris. Bisq does watch the address and indicates to the user in-app whether (and how many) confirmations have occurred. But it also provides block explorer links because the user may want to inspect additional details about the transactions or addresses.

@dcod3d
Copy link
Contributor

dcod3d commented Jul 30, 2020

+1

Currently running https://github.com/janoside/btc-rpc-explorer on my local node as my explorer by modifying the pref file. Would be nice to have it build into the GUI as suggested above.

@cd2357
Copy link
Contributor

cd2357 commented Jul 30, 2020

+1

@wiz
Copy link
Contributor

wiz commented Sep 9, 2020

Now that we have Monero Explorers, in addition to the existing list of Bitcoin Explorers and Bisq Explorers, I think "Trusted Nodes" deserves its own tab in the Settings, with a slider switch to use Tor browser or not, and the ability to add your own to the list. We can also have Bisq round-robin the enabled ones in the list, and have contributor operated explorer nodes enabled by default.

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

Successfully merging a pull request may close this issue.

6 participants