Hey Will are you using all the negentropy options that are coded in strfry to sync with relays?
I wonder if we can simplify their Nostr Extension to help other relays and clients implement a range-based set reconciliation over whatever event data structure they already operate on.
For instance, imagine a new stateless relay operation where clients can request hashes of ID sets grouped by week (created_at
on GMT). A client could easily sort the events it received from that relay, group them by week, hash their IDs as well, and then compare with the results from the relay to know which weeks it needs to download from the server again.
Something like this:
REQ: <br>[<br> "WEEKLY-HASHES",<br> <subscription ID string>,<br> <nostr filter>,<br>]<br>
Response<br>[<br> "WEEKLY-HASH",<br> <subscription ID string>,<br> <week>,<br> <hash><br>]<br>
A simple interface like this would allow the app to check if the past is still fully synced without having to download everything again just to be sure.
It's not the most optimal way. But it might just be simple enough that any relay and client can implement it effectively.