Skip to content

27

Choose a tag to compare

@pg83 pg83 released this 15 Sep 12:58
· 69 commits to master since this release

Gossip sends a record to a peer only until the peer's version vector shows it: every node publishes the versions of the records it holds, vectors travel through the mesh like records, and each second a channel carries one small compressed bundle of vectors instead of every record. A peer whose vector never arrives still gets everything every second. Records and bundles are zstd frames.

Routes are chosen by link cost with Dijkstra: UDP beats WebSocket on the same pair, equal costs prefer fewer hops. A WebSocket connection that receives nothing for five seconds, or fails a read or write, closes as a whole and is redialed at once instead of after the kernel's TCP timeout. A node dials a target only from the interface whose network contains it or through which the system routes it. Status exports routes to peers only.

The embedded SSH server delivers the output still in the pty when a command exits, and the web page shows only endpoints linked to other nodes.

Nodes on releases before 27 exchange no graph records with this release; update peers together.