Solana Validator Client Distribution
Solana’s network health depends on having multiple independent validator client implementations. A bug in a single client that controls too much stake could halt the network. This page tracks the distribution of validator clients on Solana mainnet.
Current clients
| Client | Language | Maintainer | Status |
|---|---|---|---|
| Agave | Rust | Anza | Production (mainnet) |
| Firedancer | C | Jump Crypto | Incremental mainnet rollout |
| Frankendancer | C + Rust hybrid | Jump Crypto | Mainnet (Firedancer networking + Agave execution) |
Why client diversity matters
If a single client implementation runs >33% of stake, a bug in that client can prevent the network from reaching consensus. If it runs >66%, a bug can halt the network entirely.
Ideal distribution:
Client A: ~50% stake
Client B: ~50% stake
→ A bug in either one cannot halt the network
Risky distribution:
Client A: >66% stake
Client B: <34% stake
→ A bug in Client A can halt the network
Tracking client distribution
Validator software versions are visible in the cluster gossip data. Tools that track distribution:
- validators.app: Shows validator versions and stake
- Solana Beach: Validator list with version information
- solana validators CLI: Local query of cluster validators
solana validators --url mainnet-beta | head -20
Firedancer rollout progress
Firedancer is rolling out in phases:
- Frankendancer (current): Firedancer’s networking stack with Agave’s runtime. Already running on mainnet with a growing share of validators.
- Full Firedancer: Complete C implementation including the runtime. Progressing toward mainnet readiness through testnet and stress testing.
Developer implications
Client diversity does not change how you build applications. Both clients implement the same RPC interface and execute the same programs identically. However:
- RPC behavior: Minor differences in non-standard RPC behavior may exist between clients. Always code against the official RPC specification.
- Transaction processing: Transaction ordering and priority fee mechanics are identical across clients.
- Geyser plugins: Plugin compatibility may vary. Yellowstone gRPC works with Agave; Firedancer Geyser compatibility is in development.
FAQ
Does it matter which client my RPC provider runs? For most applications, no. The RPC interface is standardized. You may notice minor differences in error messages or non-standard method support, but standard methods behave identically.
How can I check which client a validator runs?
Validator version information is broadcast in gossip. Tools like validators.app display this information. The solana validators CLI command also shows version strings.
What happens if one client has a bug? If the affected client has less than 33% of stake, the network continues without interruption — validators running that client may fail, but consensus continues with the remaining stake. This is the key benefit of client diversity.
Updated: