A torn notebook page with hand-drawn arrows connecting validator nodes in a mesh

Every validator needs to know who else is in the network, what slots they have, and where to ask for missing data. Solana uses a gossip protocol for this. Rather than flooding every message to every node, it builds a structured mesh where each node keeps a small table of contacts and exchanges compact records called crds values.

ContactInfo

The most important crds value is ContactInfo. It tells other validators where this node lives: its IP, ports, identity public key, and which shred version it is running. A node that does not publish fresh ContactInfo quickly becomes invisible. New nodes learn about it indirectly, from peers that already have it.

Pull, not push

Most gossip traffic is pull-based. A node periodically asks a few peers, "What crds values do you have that are newer than mine?" The peers reply with a filtered list. This keeps bandwidth low and lets the requester choose what to fetch. Push messages still exist for urgent events, like a new ContactInfo after a restart, but they are the exception.

Entry points

A fresh node cannot gossip in a vacuum. It needs an entry point, a known host it can ask for initial peers. Mainnet entry points are published by Solana Labs and other operators. Once the node connects, it builds its own peer table from ContactInfo records and stops relying on the bootstrap.

Why this matters

If your validator falls behind, the first thing to check is often gossip health. Is it publishing ContactInfo? Is it pulling from peers that are actually current? A validator can be online yet isolated, holding an old fork because its gossip mesh no longer reaches the majority stake. The protocol gives you visibility; you just have to know where to look.

Back to the log