Description
In conversation with @t-bast at lightningdevkit/rust-lightning#1382 (comment), we recently discovered that (at least) CLN and eclair treat gossip_timestamp_filter
messages differently.
Ultimately it comes down to the spec having this to say:
The receiver:
SHOULD send all gossip messages whose timestamp is greater or equal to first_timestamp, and less than first_timestamp plus timestamp_range.
MAY wait for the next outgoing gossip flush to send these.
which seems to say that when you get a gossip_timestamp_filter
you've gotta go do a graph dump at the peer, ala initial-graph-sync. But this is somewhat confusing in that...what's the point of all the gossip queries if we just end up receiving a dump of gossip from the peer anyway (assuming you set the filter to two-weeks-ago to ensure you don't miss updates)?
It seems at least CLN does give you a graph dump, t-bast indicated eclair does not, and I'm not sure about lnd.
Of course at this point I figure we probably all want to just deprecate the gossip sync stuff in favor of something minisketch-based, but it'd be nice to get consistency here in the short-term. At least personally, I'd suggest we keep it as-is and do a graph dump when receiving a timestamp filter message, allowing us to "implement" gossip queries without bothering with the actual queries at all :).