Gossip — the Trusted Social Mesh
A peer-to-peer network where every node is a person you've chosen to trust. No servers, no accounts, no central directory — just signed messages flowing between machines that have agreed to be friends. Identity is a key, trust is a graph, and the whole thing persists in your DBFS.
Gossip is AntOS's decentralised network. Where the AI subsystem reaches out to services, gossip reaches sideways — to other Ant64 machines (and anything else speaking the protocol) — to share messages, files, and game state directly, peer to peer.
The scripting API is luau_gossip; the library reference is antos_gossip. This page is the model behind them.
Identity is a key
A node's identity is its Ed25519 public key (32 bytes; shown as a 64-char hex node_id). There is no username, no account, no registration with anyone — you generate a keypair once and that key is you on the mesh. The same key model is crypto's (crypto.keygen/sign/verify), so a gossip identity and a signing key are the same kind of thing.
- The seed behind the identity can be exported and imported (
export_seed/import_seed) — that's how you back up an identity or move it to another machine. Guard it like any secret key: whoever has the seed is that node.
Trust is signed, always
Every packet is signed, and unsigned or tampered packets are silently dropped. There is no unauthenticated traffic on the mesh — if a message arrives, it provably came from the key it claims, unmodified. This is what lets gossip be "trusted" without a central authority: trust is just "do I hold this key as a friend?", checked cryptographically on every packet.
The social graph
Connections are explicit and mutual, like a friends list:
friend(node)sends a friend request; the other side sees it inrequests()and canaccept,decline, or laterundecline.unfriend,block/unblockmanage the graph;friends(),blocked(),declined()enumerate it.- Friend-of-friend introductions — a friend can
introducetwo of their friends to each other, and you canrequest_introduced/ see who's beenintroducedordiscovered.allow_intro/get_allow_introcontrol whether you're introducible. This is how the mesh grows: not by a public directory, but by trusted people vouching for each other.
Finding each other, and getting through
- LAN autodiscovery — nodes announce themselves with a signed UDP broadcast (every ~5 minutes), so Ant64 machines on the same network find each other automatically. The broadcast is signed, so discovery can't be spoofed.
- NAT traversal — across the internet, gossip uses friend-of-friend hole punching: a mutual friend helps two nodes behind NATs establish a direct path. Hairpin NAT is handled (same-LAN peers just use the LAN address directly).
- Address sharing — when a friend's IP changes, their mutual friends are notified, so the graph stays reachable as people move networks.
It all persists in SQLite
All gossip state is stored in SQLite — no flat files. Identity, the friend graph, pending requests, message history, known addresses — all of it lives in the same DBFS-backed database everything else uses (db), so it's shadow-backed and survives reboots and DBFS switches like the rest of your data.
What flows across it
Once two nodes are friends, they can exchange:
- Messages — plain text, structured JSON, or arbitrary blobs; a relay variant carries text via a mutual friend when there's no direct path.
- Game data — dedicated game-event and game-state messages, so a multiplayer game can use the mesh as its transport without reinventing netcode.
- Files —
xfercan run a whole X/Y/Zmodem transfer over a gossip peer (xfer.gossip(node_id)), so the mesh is also a file-transfer path.
Reachability tools (ping, latency) and an inbox (messages / clear_messages) round it out.
How it fits the rest of AntOS
| Uses | For |
|---|---|
crypto |
the Ed25519 identity, signing, and verification model |
net |
signed UDP broadcast (discovery) and the peer transport |
db / DBFS |
all persisted state (identity, graph, messages) |
xfer |
file transfer over a gossip peer |
It's the network embodiment of the AntOS principle: you decide who's trusted, the machine hands you the tools, and nothing sits in the middle. A person-to-person network you actually own.
Related
- luau_gossip — the scripting API · antos_gossip — library reference & native core
- crypto — the shared key model · xfer — transfer over the mesh · AntOS — the OS