radicle-heartwood-lfs/radicle-node/src
cloudhead 0834e0fc7d
node: Implement staggered broadcast for gossip
We use the *staggered broadcast* technique when relaying gossip messages
to reduce message amplification. In our basic simulation, it brings
amplification down from 3.5 to 1.5.

The idea is simply to accumulate gossip messages and relay them after a fixed
interval of time. This has two effects:

1) Old messages that haven't been sent yet are replaced by newer ones,
   so only one message is sent after the delay.
2) Because nodes have their own intervals, messages are not all sent at
   the same time, which reduces the chance of messages crossing paths.

For now we only turn this on for inventory messages, since this is the
least likely to be noticed by users, and also the most problematic
currently.
2024-05-24 16:44:22 +02:00
..
runtime cli: Add `rad node debug` command 2024-05-21 16:00:30 +02:00
service node: Implement staggered broadcast for gossip 2024-05-24 16:44:22 +02:00
test node: Implement staggered broadcast for gossip 2024-05-24 16:44:22 +02:00
tests fetch: remove `.keep` files 2024-05-16 15:47:14 +02:00
wire node: Set TCP_KEEPALIVE on sockets 2024-05-22 14:46:08 +02:00
worker node: reduce default upload-pack timeout 2024-05-17 21:05:50 +02:00
bounded.rs node: Use inventory cache for checking missing 2024-05-13 16:37:02 +02:00
control.rs cli: Add `rad node debug` command 2024-05-21 16:00:30 +02:00
deserializer.rs node: Use `BoundedVec` for inbox 2024-05-07 14:49:02 +02:00
lib.rs signals: Move signal handling to its own crate 2024-05-03 14:30:51 +02:00
main.rs radicle: Fix file limit setting for FreeBSD 2024-05-21 13:48:44 +02:00
runtime.rs radicle: move Emitter to events module 2024-05-15 10:07:56 +01:00
service.rs node: Implement staggered broadcast for gossip 2024-05-24 16:44:22 +02:00
test.rs radicle: expose shared logger 2023-12-20 15:11:10 +01:00
tests.rs node: Implement staggered broadcast for gossip 2024-05-24 16:44:22 +02:00
wire.rs node: Ignore messages from newer protocol versions 2024-05-22 13:56:47 +02:00
worker.rs node: reduce default upload-pack timeout 2024-05-17 21:05:50 +02:00