Skip to content
propagation

How does the Solana gossip protocol work?

Solana gossip is the cluster's signed metadata distribution system. Validators store CRDS values, push recent updates to selected peers, pull values they appear to lack, and prune redundant paths. Gossip advertises identities, network endpoints, votes, and availability context. It supplies Turbine's peer map, but it does not carry the full high-rate stream of block shreds.

network desk · updated 2026-08-31

Gossip is the control plane

Solana needs a shared view of a changing validator set. Nodes restart, addresses move, software versions change, votes advance, and new identities appear. A central membership server would create an availability and trust dependency. Gossip spreads that information among the validators themselves.

The protocol is a control plane. It distributes signed records that help a node understand who exists, how to contact them, and what selected cluster state they report. Turbine then uses parts of that view to move shreds on the data plane. Repair uses related network knowledge to find peers that may hold missing data.

The distinction matters for latency work. Joining gossip does not subscribe a machine to every transaction or every shred. Gossip traffic contains metadata and some vote-related information, not a full replica of the leader's block stream. The earliest transaction bytes arrive through the shred propagation path.

CRDS is the shared data model

CRDS stands for cluster replicated data store. Each node maintains a local table of typed, signed values. Records are associated with validator identities and labels that define how newer values replace or coexist with older ones.

The table can include contact information, version information, vote-related records, epoch slots, snapshot and accounts-hash announcements, duplicate-shred evidence, restart data, and other client-defined values. The exact set evolves with releases.

CRDS is replicated rather than globally transacted. There is no cluster-wide lock around one canonical table. A validator accepts valid values, resolves replacements according to type and timestamp rules, and exchanges missing updates with peers.

That design favors availability. It also means two honest nodes can hold different CRDS contents for a period. Any subsystem consuming the table must tolerate eventual convergence, stale entries, and records that disappear through purge rules.

Every value has an origin

CRDS values are signed by the identity that publishes them. Signature verification prevents another peer from silently rewriting a validator's contact record or claiming its vote as its own.

Authentication does not make the claim true in every operational sense. A validator can sign an unreachable address, advertise a stale endpoint, or publish information that becomes obsolete moments later. Consumers still apply age, address, version, and policy checks.

Values also carry timing or version context used to compare updates. Wall-clock fields help select newer records and purge stale ones, but they are not consensus time. A misconfigured clock can make a node's announcements difficult for peers to use.

For observability, preserve the publisher, label, local receive time, advertised wall clock, and replacement reason. A snapshot of only the final table cannot show how long peers disagreed or why a route changed.

ContactInfo makes a validator reachable

ContactInfo records advertise the socket addresses and identity context needed for cluster protocols. A validator can expose distinct endpoints for gossip, Turbine traffic, repair, transaction forwarding, RPC, and other services, subject to client version and configuration.

The record is an advertisement, not a reachability proof. Firewalls, network address translation, stale DNS, provider routing, and process state can make a syntactically valid endpoint unusable. Clients filter addresses and learn from failed interactions.

Turbine tree construction begins with this contact view, then applies eligibility and stake rules. If an early-ranked validator advertises a dead shred endpoint, an assigned branch can receive late or rely on coding recovery. Accurate gossip data is therefore part of data-plane performance.

Operators changing addresses should expect a convergence interval. Updating one local process does not synchronously replace every peer's cached record.

Push spreads fresh values

The push path sends recently accepted CRDS values toward selected peers. Recipients validate the values, insert useful updates, and can forward them onward.

Uncontrolled flooding would create duplicate traffic proportional to every path through the cluster. Solana selects active push peers and uses pruning to reduce redundant senders. Stake-aware choices can favor paths that are harder to flood with cheap identities.

Push is efficient for new information because the origin does not wait for each remote node to ask. A contact change or newly published value begins moving soon after creation. The trade is duplication: several peers may send the same value before the overlay adapts.

Receivers track value hashes and origin information so known records can be ignored or used to refine the overlay. The protocol is continuous. There is no one moment when every node commits the same CRDS batch.

Pull repairs missing metadata

Push alone can miss nodes or updates. The pull path lets a validator ask a peer for CRDS values that appear absent locally.

Sending a complete table on every request would waste bandwidth. Pull filters summarize what the requester already knows, commonly using probabilistic membership structures. The responder returns values that do not appear in the summary. False positives can delay one missing value, but later rounds and other peers provide more opportunities.

Pull also helps a restarting node rebuild its view. Entrypoints introduce it to the overlay, after which exchanges with multiple peers fill the local table. The process is gradual rather than a single authoritative download.

For incident analysis, pull traffic explains why an isolated node can recover metadata even when it missed the original push wave. It does not recover missing ledger shreds. That job belongs to repair.

Prune removes redundant paths

Gossip push can form loops and duplicate routes. A node that receives the same origin's values from several peers can send prune messages, telling selected senders to stop forwarding that origin along those edges.

Pruning shapes an efficient overlay without building one permanent spanning tree. Paths can change as peers, stakes, and observed traffic change. Redundancy is reduced rather than eliminated because some path diversity is useful under loss and churn.

Stake can influence prune decisions and peer selection. The aim is to preserve useful high-trust propagation while limiting amplification from many cheap identities. Exact scoring and thresholds are implementation details.

A prune is scoped. It does not ban the peer from all gossip or consensus activity. It adjusts which origin's updates should traverse a particular push relationship. Misreading prune logs as general peer eviction can send an investigation in the wrong direction.

Peer sampling resists static failure

Gossip nodes communicate with a subset of the cluster at any moment. Peer selection rotates so metadata can reach distant portions of the overlay and a fixed failed neighbor does not isolate the node indefinitely.

Sampling is influenced by stake, liveness, duplicate paths, and client policy. Uniform selection across every advertised identity would be vulnerable to Sybil flooding. A hostile party could create many identities and occupy most neighbor slots without acquiring corresponding economic weight.

Stake-aware sampling raises that cost, though it does not remove hosting or routing concentration. Ten well-staked validators in one facility can still share one failure domain.

The overlay should be evaluated as a time-varying graph. Static screenshots show who was known, but packet captures and peer-selection history show how information actually moved.

Eventual consistency is a design property

CRDS does not promise that all nodes see one update at the same instant. Propagation delay, packet loss, peer sampling, pull filters, and local load create temporary differences.

Systems using gossip must fail soft under those differences. Turbine can send according to a local eligible set. Repair can try another peer. Leader verification can use schedule state from the bank rather than treating gossip as sole authority.

The convergence window is usually acceptable for metadata that changes more slowly than shreds. Contact records and stake views do not need a consensus round per packet. Requiring that agreement would place a slower control-plane dependency in the block-production path.

The cost appears during churn. Stale endpoints waste transmissions, and conflicting views make offline topology reconstruction uncertain. Measurement should describe that uncertainty rather than pretend the network has one instantaneous membership list.

Gossip carries votes, but not every block byte

Vote-related CRDS values can help disseminate recent voting information, and clients use several paths for votes depending on context and version. That fact does not turn gossip into the full ledger data plane.

Blocks contain vote transactions alongside non-vote transactions. Their serialized bytes still appear in data shreds when the leader records them. Turbine distributes those shreds. Gossip records about votes serve a different propagation and availability role.

Engineers should identify which representation they consume. A gossip vote value, a vote transaction sent toward a leader, and the same vote transaction included in a shred have different timestamps and guarantees.

For market data, included transaction order comes from block entries and shreds. Gossip cannot substitute for that sequence because it does not publish the complete ordered block payload.

Gossip feeds Turbine inputs

Turbine needs identities and reachable shred endpoints. Gossip supplies the current contact records from which the validator derives eligible peers. Stake data and slot context then weight and seed the packet-specific ordering.

The relationship is indirect. Gossip does not send a completed Turbine tree to every node. Each validator computes destinations locally from its current inputs and client rules. Equal inputs produce compatible results; short-lived input differences can produce divergent edges.

This explains a common propagation failure. The network link can be healthy while a stale ContactInfo record points traffic at the wrong socket. The symptom is missing shreds, but the cause began in control-plane convergence.

Joint telemetry is valuable. Correlate CRDS replacements and peer eligibility changes with packet-loss and fec-set readiness. Separate a dead advertised address from congestion on a live path.

Entrypoints bootstrap, not govern

A new validator needs at least one known address to enter the gossip overlay. Configured entrypoints provide that first contact. They help the node discover additional peers and populate CRDS.

An entrypoint is not a central membership authority. After discovery, the node exchanges signed records with the broader cluster and can maintain several gossip relationships. The entrypoint cannot validly forge another validator's signed values.

Operational dependence still exists during startup. If every configured entrypoint is unreachable, a fresh process lacks a route to discover peers. Mature deployments configure and monitor appropriate bootstrap paths.

Once joined, block propagation does not route every shred through the entrypoint. Turbine constructs its own packet-specific forwarding relationships from the discovered cluster view. Confusing bootstrap with steady-state routing overstates the entrypoint's role.

Gossip has its own attack surface

A public gossip endpoint accepts traffic from untrusted networks. Attackers can send invalid signatures, stale values, oversized update sets within protocol limits, or many low-value identities. The receiver must validate early and bound CPU, memory, and outbound amplification.

Stake-aware peer selection and pruning make identity flooding more expensive to convert into influence. Rate limits, packet validation, address checks, purge rules, and bounded tables provide other defenses. Exact mechanisms change as clients respond to observed attacks.

Signed data does not prevent denial of service. Verification itself costs work, and a valid identity can publish unhelpful but authentic updates within allowed rules. Network isolation, capacity planning, and software updates remain required.

External analytics nodes should avoid exposing unnecessary validator services. Observing gossip is useful, but copying a validator's public surface without its defenses creates risk without improving shred latency.

Measuring gossip health

Useful metrics include CRDS table size by value type, age distribution, accepted and rejected values, push duplicates, pull responses, prune rates, active peer churn, packet drops, and signature-validation cost.

No single count proves health. A large table can contain stale records. A high push rate can indicate useful churn or wasteful duplication. A low pull response can mean convergence or poor connectivity.

Synthetic tests can publish a controlled signed update from a test identity and measure arrival across observation points. Production analysis should group by origin stake and network region to reveal overlay bias.

For Turbine impact, measure how quickly contact changes become usable and whether stale high-stake endpoints correlate with shred gaps. The goal is not zero gossip delay. It is sufficiently fresh cluster metadata to keep time-sensitive data-plane paths productive.

What a shred consumer needs from gossip

A raw shred decoder can parse packet headers without running a complete voting validator. It still benefits from schedule and identity context needed to identify the expected leader and verify signatures.

A separate trusted source can provide that context. Running gossip locally can reduce dependency and improve visibility into contact changes, but it adds protocol surface, state management, clock requirements, and exposure to hostile input.

The feed and gossip have different capacity profiles. shredstream.sh's published stream averages 54.3 Mbps and 5,585 packets per second over its measurement window. Gossip is metadata traffic and should not be sized or queued as if it were the same stream.

Keep the pipelines separate. A burst of CRDS validation should not starve raw shred receive loops. Join their records asynchronously for topology analysis and leader context.

In practice

Validator A changes its Turbine address at 12:00:00 and signs a new ContactInfo value. Three peers receive the push within 80 milliseconds. A fourth misses that wave, but a pull exchange returns the value at 12:00:01.400.

During the 1.4 second disagreement, one retransmitter uses the old address for two shreds. Its descendants recover both from coding shreds 6 and 9 milliseconds later than their usual direct arrivals. No consensus round fails, and the later CRDS update replaces the stale contact record.

The incident appears as a data-plane latency tail. Joining packet timestamps with CRDS replacement history identifies the control-plane cause.

What this does not cover

This page describes the stable architecture of gossip rather than one release's packet formats, CRDS value enum, peer scoring, pull-filter dimensions, timeouts, or rate limits. Those details evolve and must be read from the validator client being operated.

Gossip visibility does not prove an endpoint is reachable, that a validator is honest, or that a block will become canonical. CRDS is eventually consistent, and an external snapshot cannot reconstruct every node's historical view. Gossip also does not provide the complete ordered transaction stream carried by Turbine shreds.

Related questions

What does CRDS stand for in Solana?
CRDS stands for cluster replicated data store. Each validator keeps a local table of typed, signed records and exchanges missing or recent values through gossip push and pull. The table is eventually consistent, so nodes can temporarily disagree without running a consensus transaction for every metadata update.
Does Solana gossip carry transactions?
Gossip is not the complete ordered transaction or block stream. It carries cluster metadata and selected vote-related records. Transactions included by a leader are serialized into entries and data shreds, then distributed through Turbine. A market-data system needs the shred path to observe block contents in production order.
Why does gossip use both push and pull?
Push moves fresh signed values without waiting for requests, which reduces update delay. Pull helps nodes recover records missed through packet loss, isolation, or restart. Pruning reduces duplicate push paths. Together, the mechanisms provide timely dissemination and eventual repair without sending every complete CRDS table continuously.
Are gossip entrypoints central Solana servers?
No. Entrypoints give a starting node one known address from which it can discover the broader gossip overlay. They help bootstrap peer knowledge but do not issue an authoritative membership list or carry every steady-state shred. Configuring multiple reachable entrypoints reduces startup dependence on one machine.
How does gossip affect Turbine latency?
Gossip supplies contact records used to build Turbine's eligible peer view. Stale or unreachable shred addresses can waste early retransmissions and delay assigned descendants until coding recovery or repair. Gossip does not determine all propagation latency, but control-plane freshness can materially affect the data-plane path.

Read next