Skip to content

Gossip and discovery

There is no central registry of who is on the network. Nodes learn about each other by gossip: they periodically exchange their view of the world with a few peers, and knowledge spreads.

Bootstrapping

A new node needs one known address to start, called a sentinel. Diffuse ships with built-in sentinels, and you can point at your own with --bootstrap. The node contacts a sentinel, receives its list of known peers, and it is now part of the mesh.

What a peer record holds

Each node advertises a signed record of itself:

  • node id (an Ed25519 public key)
  • daemon and worker endpoints
  • the model it serves and its slice range
  • the model's total layer count
  • a key-exchange public key
  • whether it is directly reachable

The record is signed by the node's identity key, so a peer cannot forge another node's advertisement. Records that fail signature verification are rejected.

Keeping the view fresh

Nodes re-announce themselves periodically and exchange views with a small random fanout of peers. A record carries a last-seen timestamp; a node that stops announcing is pruned after it goes stale. This is what lets the network notice a departure without any coordinator declaring it.

Identity, not address

Peers are keyed by node id, not by network address. Two nodes behind the same NAT announcing the same address stay distinct, and a node that changes address keeps its identity. This avoids a class of bugs where nodes collide or overwrite each other under a shared endpoint.

Next

Diffuse Enterprise is commercial software. Diffuse Open is AGPL-3.0.