-
Notifications
You must be signed in to change notification settings - Fork 8
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
Add filter startpoint option (height only) #227
base: master
Are you sure you want to change the base?
Conversation
Hi, apologies I am just getting back from a holiday. I will review this soon |
Filters are keyed by the corresponding block hash. Without such a blockhash, there is no way to construct the filter. Also should be noted that the filter headers commit to the hash of the filter, which in turn commits to the block hash. I am still unclear on the use case. Are you:
|
The use case is this:
|
I see, so the differential between the checkpoint and when the relevant birthday is. May I ask why we must resync from the birthday every time? If you have recovered all your scripts, you may safely sync from the last chain tip you saw. As a side note, I've tested your app and I concur with you that syncing feels slow. I may fork your app and see if I can improve the sync time in other ways. |
Please rebase as there is a new CI script and the testing suite has changed. |
Rebased |
If state has already synced, it's OK to continue from there. Only at the first sync it starts from the hint height, to speed up the process. The typical use case is that you don't have a state, but always start from a new one. This may not be the best suited for kyoto (or compact block filters in general). |
Motivations for this change:
Block headers and filter headers build on each other, and the chain is used to check consistency. It makes sense to require a block hash if one wants to start from a later point. This is not true for filters: they can be started processing from any point, without loss of confidence.
With this change, if one specifies an arbitrary height for filter startpoint:
Anchor checkpoint can be set separately.
Background: This is useful in the 'balance checker' wallet use case, when the user may have the wallet birth height as an info (but no block hash); see Icepeek.