Hello again!
Following up on my previous post. Sync as a replacement for Filter and Light push - #3 by SionoiS
My goal is to improve our stack by holistically looking at what technologies and protocols we use currently. I will detail how we could replace Waku Relay with a RBSR based protocol.
To propagate messages in the network each node would have to continuously sync with others. At message creation only 1 node has it then after a sync 2 then 4, until all nodes have it. So far, very similar to GossipSub except that there’s no fixed propagation degree, latency is increased and bandwidth is reduced because duplicated messages are never sent. Quantifying those values would be a good research project but in theory there’s is no reason for it to be magnitude slower than GossipSub. Hybrids of sync and pubsub could also work (PubSyncing?) if the latency of syncing is a deal breaker. RLN epochs also lend themselves well as the range of time to sync for Relay purposes.
In the context of Waku we have RLN as an arbiter of valid messages. We can allow 1 sync session per peer and for invalid responses, simply disconnect. No drawback so far with the added advantage that each node can use the amount of bandwidth desired by varying the sync rate, no need to relay every messages under the penalty of our score being lowered and we are still protected from simple attacks. We could keep a peer scoring mechanism for parameters like latency, bandwidth, and reliability as it would help choosing who to sync with. By syncing we would also be able to limit ourselves to specific content topics we are interested in.
What about privacy? By using the same content topic or shard we can increase k-anonymity at the cost of bandwidth just like we do now. As for sender anonymity, syncing with random peers would make tracing a message to it’s origin difficult for non-global observers.
Discovery would be critical, as it is now, for finding peers with the same content topic interests or shards.
Let me know what you think below. Thank you.