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
Compact filters balance example #211
Conversation
I think it makes sense to add |
e681bd8
to
82f9c9f
Compare
@RCasatta rust-bitcoin/rust-bitcoin#529 is merged |
Once #190 is in we can merge this one as well |
82f9c9f
to
5aa4a7a
Compare
34a96c6
to
0671294
Compare
I've still got errors with local bitcoin node on testnet:
even if I have |
bitcoin node requires also |
0671294
to
dbb7cc0
Compare
dbb7cc0
to
db5e663
Compare
Everything works fine now, about a minute to compute the balance, result balance is the same with electrum backend
|
FYI I created a little program to search all the public testnet seed nodes and I found two that are supporting compact filters:
I then tested your CF balance example with
Time to full sync: 00:31:50 |
Hi @wpaulino, do you have any data from Neutrino about how long a single node testnet sync takes? Or maybe other compact block filter related performance tests we should look at? The |
@notmandatory haven't done any tests recently, but we were doing 5 min mainnet syncs with checkpoints and 2-3 peers last year on an iPhone. Testnet would take around 10 mins. |
With checkpoints meaning that you would skip parts of the blockchain? Our time is for syncing the headers first and then downloading all the cf headers, cf themselves, processing them, downloading blocks, processing those, etc.. The wallet we are using to test doesn't really have that many UTXOs, so I don't think downloading/processing blocks is the bottleneck here. Mostly just syncing the headers and filters |
Also, @notmandatory: did you compile in release or debug mode? Because especially for the "processing" part of compact filters I'd expect we could gain some time by using release mode, if you haven't done so already.. probably nothing major but it might help |
Our time is just for syncing the block and filter header chains, no blocks were downloaded/processed. We use checkpoints to determine how big each batch of headers we request is, but we don't skip any. |
I did an updated test (two runs) with Run 1: Time to full sync: 00:07:57 Not a perfect comparison since I had to use a different peer node, but still a good indication that with a Run 1
Run 2
|
Fix incorrect doc links
Alekos and I tested compact filters with bitcoin core 0.21 rc2, where compact filters are enabled at the p2p layer, it doesn't work at the moment because of rust-bitcoin/rust-bitcoin#529,
Maybe we will need this example to quickly test once things are deployed, however, it should probably be integrated into the repl to be merged