Improving the initial gossip sync



Summary:

The current method for retrieving routing tables is becoming impractical on mobile end-user nodes which are often offline and connected to few peers. The proposed solutions include timestamps, bucket hashes, and IBLT filters. While timestamps and bucket hashes are simple to implement and have low overhead, they do not solve the problem of missing announcements. On the other hand, IBLT filters are queryable filters and efficient if the number of differences is small, but more complex to specify and implement. Nodes can send a timestamp or pair of timestamps when connecting to another peer. Routing info can be grouped by buckets, and a hash computed for each bucket. Routing info can also be estimated through exchanging information to build IBLT filters.Bucket hashes are the same for all peers connected to and can be used for consistency checks. However, a single mismatch can invalidate an entire bucket, forcing nodes to send the entire routing table. IBLT filters become peer-specific, similar to server-side vs client-side filtering for SPV clients.Regardless of the solution, requirements include being easy to specify and implement, having low overhead, ability to retrieve missing routing information, and the nice-to-have ability to query multiple peers for consistency checks. If mobile nodes cannot improve initial table sync quickly, they may rely on remote servers to compute routes for them or use specific hacks.


Updated on: 2023-05-24T20:41:12.153921+00:00