I was thinking the phone generates the tree and sends it to the server. The server simply checks if the id is in the tree or not.

Am I missing something?

Reply to this note

Please Login to reply.

Discussion

I thought phones requesting a block of notes would be more efficient. Even if the node doesn't have it all, the phone/node knows how to complete it by requesting sub trees.

But let's say the phone already has 95% of the block and needs only the extra 5% (the phone doesn't know how much is left) because there was some type of connectivity issue.

The majority of the time, the phone already has everything. We just need new things and the things that were missed due to some connectivity issue or busy relay.

The first time a client subs all your follows to all your relays demands a lot of bandwidth because the client has no information about the status or location of notes.

But if the client remembers which relays first served notes from a particular pubkey and stored that in a table… on ALL SUBSEQUENT subscriptions of the session the client could just ask the fastest relay for the notes of a each pubkey to provide the notes for that particular pubkey.

This would reduce the bandwidth by a factor of n relays.

Wouldn't a bloom filter be better suited for that? (i am just guessing here)