-
Notifications
You must be signed in to change notification settings - Fork 35.7k
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
Allow for rescan using block filters with pruned node #21267
Comments
Related: #19463 |
Also related: #25957 |
I'm not sure how the wallet could initiate the download of the missing blocks considering the Such as:
That might be troublesome if there are a lot of missing blocks though. |
By design there will be false positives so that some privacy can be retained. Those possibly related (not necessarily missing) blocks should then be fetched from different peers to enhance that privacy protection, or even better, fetched through different Tor circuits. |
I'm actually half-way (almost ready with the PoC) through implementing a sync mode that fetches the missing (pruned) blocks from peers based on whether they match or not the filters (by first syncing-up the filters-chain from the network if it was not previously stored on the node). Started it ~2 months ago. |
@furszy are you still working on this? |
Yeah @darosior, thanks for the ping. Let's update this issue. I do have a running version of this. And the complete project extends beyond this use case actually. As is often the case, the working path hasn't been as straight as expected. I have been improving orthogonal components in parallel to make the end result cleaner and more usable. For example, to make the mainnet live tests less painful, have created #26966 which reduces the time it takes for the block filter index to sync from ~7 hours down to less than 45 minutes. Although this sidetracked me from the project's end goal, it was ultimately worth the effort. Also have to add that, while the 'all-in-one' project branch is functional, it still could benefit from some refactoring and consolidation rounds. And to address it, have started decoupling parts of it into sub-projects. The mentioned #26966 is one of them, all the refactoring commits were extracted from that branch (so it would be great if that PR starts getting reviewed). The plan is to keep pushing sub-projects forward so that the overall picture becomes clearer. Just matter of staying on track and continue making progress. |
Two more PRs added to the public ground-work queue:
Will keep pushing progress. |
Is there an initial version for testing, perhaps? |
Not public yet mostly because some of the public PRs decoupled from the all-in-one branch have led to additional improvements and bug fixes throughout the sources. Which has been great for the software as a whole but they have been time consuming. Additionally, I'm not satisfied with the high false-positive rate of the filters (our wallet produces 8k scripts from the beginning), which was one of the motivations behind #27469 and want to do more before sharing it. Essentially, I’m preferring this incremental approach as it sums value to the release cycle, and lets me solidify the bases of the work while incorporate new improvements that arise during the review process. Promise to ping here once the long branch is available. |
After #15946 it should be possible to do a rescan using block filters with a pruned node. Blocks that are not stored could be requested from peers.
The text was updated successfully, but these errors were encountered: