-
Notifications
You must be signed in to change notification settings - Fork 34
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
Revisit tag usage for imported notes #341
Comments
One potential way to do this may be to mark the notes which are missing MMR part of the proof somehow and then, once the client syncs beyond the block in which the note has been created, make a request to So, let's say the client is currently at block 100, and we've imported the note with the inclusion path against block 150. Let's also say that after next |
There's a bunch of variables for scenarios like this. Namely:
There is also the option of the user having set Not all scenarios are interesting, but here are the relevant ones to this issue: For If If If the note has an inclusion proof, but the client does not have MMR data, the client behaves the same way except it could avoid calling So one way to make this all work is to follow @bobbinth's flow, but also potentially getting the note's inclusion proof at sync time as well: After syncing, for any note that does not have an inclusion proof, call |
It feels like we may need to have some more sophisticated strategy here. For example, something like "exponential backoff" - if the expected note hasn't appeared on chain, double the time until the next check. We can also set some upper limit: once the interval exceeds some upper bound, stop checking and mark the note as "stale" or something like that. |
should this be closed considering #375 got merged? |
Currently, for notes that are exported without inclusion proofs on a client$A$ and imported on another client $B$ (where the note is created on a future block compared to client $B$ 's view of the blockchain), the second client faces a potential problem of never getting inclusion proof data from syncs based on whether the note tag are actually of interest to it. To solve this we currently add the tag of non-committed notes at the moment of creating a sync request (in an "ephemeral" manner, meaning they won't get added the time after getting sync data for the note). However, as discussed, this puts more effort on the node and can likely be avoided in a number of different ways (using other RPC calls, etc.).
The text was updated successfully, but these errors were encountered: