Message Propagation Replay
The propagation replay is the centerpiece of the visualizer. It shows, in real time, how a single gossip message spreads from its origin through the network to our observer’s peers.
The Radial Layout
The visualization uses a radial layout with the observer node at the center:
- Angular position — determined by the peer’s community (e.g., known hub operators, implementation groups). Each community occupies a proportional angular slice.
- Radial position — determined by the peer’s average arrival percentile (
avg_arrival_pct). Peers that consistently receive messages early sit closer to the center; slower peers sit near the edge.
The formula:
radius = maxR × (0.15 + 0.85 × avg_arrival_pct)
This ensures even the fastest peers have some distance from the center (the 0.15 floor), while slow peers extend to the full radius.
The Wavefront Ring
An orange expanding ring sweeps outward from the center during playback. This represents the passage of time — as the ring reaches each peer’s radial position, that peer should be receiving the message around that moment.
The ring’s radius at any point is:
ring_radius = (elapsed_ms / time_spread_ms) × maxR
Note: the ring is a time metaphor, not a geometric boundary. Peers light up based on their actual recorded arrival time, which may not perfectly align with the ring.
Peer States
Each peer dot transitions through states during playback:
| State | Color | Meaning |
|---|---|---|
| Waiting | Dim gray | Hasn’t received the message yet |
| Received | Bright community color | Just received the message |
| Faded | Muted color | Received earlier, fading to background |
What You Can Learn
By watching multiple messages play out, patterns emerge:
- Some peers consistently light up first — they’re well-connected or close to common originators
- Clusters of peers that light up together suggest shared network paths
- Peers that are always last may have poor connectivity or be behind rate limiters