SatoshiPortal / cyphernode

Modular Bitcoin full-node microservices API server architecture and utilities toolkit to build scalable, secure and featureful apps and services without trusted third parties
MIT License
363 stars 68 forks source link

Support for neutrino clients #221

Open i5hi opened 3 years ago

i5hi commented 3 years ago

The specfic update in this PR is at /cyphernodeconf_docker where a bitcoin_cbf property is added to the schema/config-v0.2.5.json and prompters/900_bitcoin.js to allow a user the option to set peerblockfilters=1 to templates/bitcoin/bitcoin.conf to serve compact block filters for neutrino clients.

i5hi commented 3 years ago

This can be tested using:

docker exec -it dist_bitcoin_1 bitcoin-cli getnetworkinfo | jq -r ".localservicesnames"

[
"NETWORK",
"WITNESS",
"COMPACT_FILTERS",
"NETWORK_LIMITED"
]
Kexkey commented 3 years ago

Thanks for the PR @vmenond ! Sorry for the delay, I was away in the last week or so.

Is the overhead of enabling peerblockfilters a big problem? Do you think it would be a good idea to just enable it by default without asking the user?

i5hi commented 2 years ago

Hey @Kexkey! So sorry about the delay. Just saw your response to this!

There is quite a bit of networking overhead - I haven't tested it but some devs at bdk have and mentioned the overhead can be quite a bit, so might not be a good default.

Will run a few tests on this and share some exact figures.

Kexkey commented 2 years ago

Thanks for your contribution! Can you base your PR on dev? I'd like to try this.