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). |
|
With the recent performance improvements I think using the checkpoints should be sufficient enough, and the extra handful of filter messages is the cost of having simple logic internally. |
|
In the end I think we will add something like this via #605, except it specifies only give me the last |
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.