Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aggressive Gossip Seeker #7768

Merged
merged 7 commits into from
Nov 21, 2024

Conversation

endothermicdev
Copy link
Collaborator

Important

Open for merging new PRs until the next PR freeze date is confirmed!

Checklist

  • The changelog has been updated in the relevant commit(s) according to the guidelines.
  • Tests have been added or modified to reflect the changes.
  • Documentation has been reviewed and updated as needed.
  • Related issues have been listed and linked, including any that this PR closes.

The gossip seeker has been getting less reliable with nodes often failing to provide a full gossip sync when requested and/or miss gossip when streaming. This PR does several thing to address this:

  1. Increase the number of gossipers we stream from: 5 -> 10.
  2. Ask a random peer for a full resync every hour. Previously this was only once at startup.
  3. Drop the worst performing gossip streamer, not a random one.
  4. Rotate out the worst gossip streaming peer every ~30 minutes (was ~hourly.)

Considering a blackbox test for gossip rotation, but it's probabilistic, which makes it more difficult to test reliably.

@endothermicdev endothermicdev added this to the v24.11 milestone Oct 28, 2024
@endothermicdev endothermicdev mentioned this pull request Nov 8, 2024
4 tasks
Based on gossip sync data from random network peers, listening to only 5
peers will not reliably catch all gossip traffic.  For now, add extra
redundancy.
@endothermicdev endothermicdev force-pushed the aggressive-seeker branch 2 times, most recently from ad0bcf6 to fbb20cd Compare November 8, 2024 17:34
This can help us backfill any missing gossip if our current
peers haven't been the most reliable.

Changelog-Changed: Gossipd requests a full sync from a random peer every hour.
This will be used to drop underperforming gossipers instead
of choosing at random.
Previously they were chosen at random.  We should instead
prefer to strop streaming from the peer who has provided
the least novel gossip.
This will allow all gossipers to be rotated in ~5 hours similar to
how it operated with half as many gossip streaming peers.
in test_gossip_force_broadcast_channel_msgs now that the seeker
is asking for periodic full gossip syncs.
@rustyrussell rustyrussell merged commit ead5dbf into ElementsProject:master Nov 21, 2024
39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants