Repository navigation
30
A node is alive while some live node hears it, the closure of the node's own observations: two nodes that heard each other and left together no longer keep each other routable, and the addresses in a node's graph record are dialed only while it is alive. Static registry endpoints are dialed always. The status carries the live set, the metrics a mesh_peer_alive gauge, the web page marks a node nobody hears.
The graph rebuilds once a second, on the ticker alone: no more 20 ms recompute whenever a channel reported or a record arrived. A channel starts from the last snapshot and has no ticker of its own; its reports, gossip, registry exchange and silence check follow the snapshot. The incoming UDP reader no longer blocks its socket while a new channel is installed.
A datagram the kernel refuses is a lost datagram: the UDP channel keeps its socket, only silence takes the link down. This ends the redial loop on macOS, where sendto to an absent host fails synchronously.
Compatible with 29.