AILEENA MACHINA

Infrastructure · 2026.05.27

Five Validator Clients, One Pipeline, No Full-FPGA

Agave, Jito-Solana, Frankendancer, Firedancer, Sig — five clients, one pipeline. Jump has a working FPGA verify engine doing 1M signatures per second. They still didn't ship a full-FPGA validator. Here's why the math doesn't close, and where FPGA actually wins.

Solana · Validator · Firedancer · FPGA · Architecture

▸ Narrated reading · 2026.05.27

Five Validator Clients, One Pipeline, No Full-FPGA

Press play for a narrated reading — English-accent female where available.

0:00
0:00

Five validator implementations target the Solana protocol in 2026. Three are running real stake on mainnet today, one is partial-production, one is testnet. Each one is a different bet about which part of the validator was the bottleneck. The interesting question isn't which one is fastest — it's what each team chose not to do, and what that tells you about where the next 10× actually lives.

The 2026 client landscape

ClientTeamLanguageStatus (2026)What it bets on
AgaveAnza (ex-Solana Labs)RustReference. Majority stake.Correctness, runtime stability
Jito-SolanaJito LabsRust (Agave fork)78% of validators run itMEV: bundles, block-engine, ShredStream
FrankendancerJump / Firedancer teamC + Rust (hybrid)Production on mainnet, growing stakeFiredancer network + Agave runtime
Firedancer (full)Jump / Firedancer teamC, from scratchTestnet, partial mainnetTotal rewrite, tile architecture
SigSyndicaZigRPC node + partial validator (testnet)Read path, indexer-grade RPC

The split that matters: Agave and its fork Jito-Solana share one codebase and 98% of mainnet stake. Frankendancer is the Jump team's production stepping stone — their networking and block-production tiles bolted onto the Agave runtime. Firedancer is the full Jump rewrite, still finishing its execution layer. And Sig is the Syndica bet that the read-side (RPC, indexing) was always the misallocated half of the validator.

What a validator client actually is

Strip away the marketing and a Solana validator is a single linear pipeline. A transaction enters at the network card and leaves as bytes in the ledger, having passed through nine distinct stages. Every client implements the same stages. The differences are which stages they fuse, which they parallelize, and where they spend their CPU budget.

NIC → net → quic → verify → dedup → pack → bank → poh → shred → store
       └─────┬─────┘  └─┬─┘  └─┬─┘  └─┬─┘  └─┬─┘  └─┬─┘ └─┬─┘  └─┬─┘
       packet in     dup    ord   exec   PoH   FEC   disk
       sig check     drop   pack  txn    hash  out   write

Agave runs this pipeline as one process with threads. Firedancer runs each stage as a dedicated tile — a single-purpose process pinned to a single CPU core, talking to its neighbours only through shared-memory ring buffers, never blocking, never sleeping, busy-polling the input ring on every cycle. The tile model is what makes Firedancer fast. It's also what makes the FPGA (field-programmable gate array — reconfigurable hardware you can rewire after it's manufactured) question interesting.

Firedancer's tile architecture, in five rules

The architecture reads like an FPGA design document translated into userspace C. Five rules govern every tile:

  • One job per tile. A verify tile only verifies signatures. A pack tile only orders transactions. There's no general-purpose scheduler — no thread pool, no work-stealing queue. Each tile is a fixed-function module.
  • Memory is preallocated, never freed. Tiles allocate all their working memory at startup using huge pages. No malloc in the hot path. The arena allocator is the only memory primitive.
  • Tiles never sleep. Busy-polling, every tile, always. The cost is one core fully consumed per tile; the payoff is zero scheduler jitter.
  • Kernel bypass on the network path. The net tile uses Linux AF_XDP in drv mode where the NIC supports it — DMA straight to userspace, no syscall per packet, no kernel routing.
  • Zero syscalls in the hot tiles. Verify, dedup, pack, and poh make zero system calls during normal operation. seccomp enforces it: each tile ships with an explicit syscall blacklist.

Swap "tile" for "module" and "ring buffer" for "wire" and this is, verbatim, how you'd describe a modern FPGA validator. Jump didn't reinvent FPGA design as a metaphor — they built the FPGA architecture in C, on commodity CPUs, because the FPGA card was the part they could remove.

The three pieces that make the architecture work

AF_XDP, in drv mode. The net tile binds the NIC's receive queues directly into userspace memory using Linux's AF_XDP socket family. In drv mode the NIC writes packets straight into a userspace ring buffer with DMA, skipping the kernel routing stack, the per-packet syscall, and the copy a normal Linux socket would force. The tile busy-polls the ring on its dedicated core and wakes the kernel only about 20,000 times per second to batch RX/TX completions — small enough to be free, large enough to keep packets flowing. The skb fallback exists for NICs without driver-mode support, at the cost of giving up the zero-copy.

SIMD-vectorised Ed25519. SIMD (single instruction, multiple data — one instruction does the work of many) speeds up Ed25519, the signature scheme Solana uses. The verify tile runs signature verification in batches of eight using AVX-512 lanes. One AVX-512 instruction does the work of eight scalar instructions, so one verify tile does the work of eight scalar cores. Tile count is a runtime parameter — spin up four verify tiles and you get 32× scalar throughput on a single socket. That horizontal scaling is what keeps a pure-CPU verify path competitive with the FPGA path on the workloads the network actually sees.

fd_quic, custom QUIC. Jump couldn't find a C QUIC library that cleared their licence + performance + reliability bar, so they wrote one. On a single CPU core the custom stack pushes 5.8 Gbps, hits 270k TPS on large-transaction workloads and 1.4M TPS on small-transaction workloads. The library is conservative about allocation — every datastructure pre-sized at startup, no growth in the hot path — which is the same memory discipline you'd see in any production FPGA pipeline.

Security as a side effect

The tile model shrinks the attack surface almost by accident. Linux exposes more than 200 syscalls, and every one is an entry point for a kernel exploit reachable from validator code. By design, the hot tiles — quic, verify, dedup, pack, poh — issue zero syscalls during steady-state operation. Firedancer enforces this with a seccomp blacklist generated per tile, so a tile that tries to call execve or open gets killed by the kernel before it can do any damage. The architecture chased performance and got security thrown in.

The FPGA temptation Jump actually tested

In a 2023 live demo, the Firedancer team showed a single FPGA verifying 1 million Ed25519 signatures per second. Eight FPGAs scaled linearly to 8 million/sec. For reference, peak mainnet signature throughput today rarely exceeds 200k/sec. So one FPGA card has five times the headroom of the entire network.

So why is the production verify tile written in C with AVX-512 intrinsics instead of running on an FPGA? Because signature verification is the easy case. It's a pure stream, no state, embarrassingly parallel, identical 32-byte payloads. Of course an FPGA wins. The interesting question is what an FPGA does on the other eight tiles.

Where the pipeline stops being FPGA-friendly

Run through the tiles one at a time and the FPGA story falls apart:

  • net / quic. Packet I/O, congestion-window arithmetic, retransmission timers. Borderline FPGA territory — SmartNICs already do most of this, with DPU products from Nvidia (BlueField), AMD (Pensando), Intel (IPU). FPGA-on-PCIe loses to SmartNIC-on-NIC because the NIC is one PCIe hop closer.
  • verify. The clean win. Ed25519 is a fixed instruction sequence on opaque 32-byte inputs. FPGA at 1M sigs/sec/card, easily justified at scale, hard to justify at 200k sigs/sec network-wide.
  • dedup. A hash-table membership test, memory-bandwidth-bound on the CPU side. FPGA can win on lookup latency but loses on the cost of getting transactions into FPGA memory and back.
  • pack. Scheduling. This is where Firedancer's actual edge lives — picking which transactions to include, in what order, given account-conflict constraints and fee-priority. It's irregular, state-dependent, branchy. FPGAs are bad at branchy code. CPUs with branch predictors are good at it.
  • bank. Transaction execution. Loads accounts from RocksDB, runs SVM (Solana Virtual Machine) bytecode, writes accounts back. Every instruction can read or write arbitrary state. The compute is unpredictable, the data dependencies are unpredictable, the I/O is unpredictable. FPGAs need predictability. CPUs eat unpredictability for breakfast.
  • poh. A tight SHA-256 chain. FPGA wins on raw hash rate by a large margin, but poh is already so fast on CPU that it isn't the bottleneck — adding FPGA here saves nothing in practice.
  • shred. Reed-Solomon FEC (forward error correction) encoding. Pure stream, no state, fixed math. This is the second FPGA-friendly tile after verify. SmartNICs increasingly include FEC offload in hardware.
  • store. RocksDB writes to NVMe. Storage hardware, not compute. FPGA isn't the question; the question is which storage engine to use.

Two clean wins (verify, shred). Two borderline (net, quic — better served by SmartNICs). One actively bad fit (bank). One bottleneck that isn't one (poh). One that isn't compute at all (store).

A full-FPGA validator would replace two-and-a-half tiles. The rest would still need a CPU. So would the operating system, the monitoring, the snapshot machinery, the RPC layer, the catchup logic, the fork-choice rule. The FPGA card ends up an accelerator card, not a validator — which is exactly the design Jump shipped, just with the accelerator written in C+AVX-512 instead of Verilog.

Why the economics close against FPGA

Pretend the engineering closed. The economics still don't. A Xilinx Alveo U250 is a $15k card. A serious validator-grade server CPU (Epyc Genoa-X, 96 cores, AVX-512) lands at $8k, and that CPU does the entire pipeline, verify and shred included. The FPGA replaces one tile and still demands the same CPU sit next to it as host. So you're paying $23k for the FPGA build versus $8k for the pure-CPU build, to win on a tile that isn't currently the bottleneck on any production validator.

Then there's the talent moat. A senior systems engineer who can read Firedancer's C tile code and ship is a $300k–$500k hire, and maybe a few hundred people globally can do it. An FPGA engineer who can ship a production Ed25519 core, debug it on Alveo silicon, and maintain it across protocol upgrades is a $500k+ hire, and maybe a few dozen globally can do it. The talent pool for the FPGA path is an order of magnitude smaller, the salaries an order of magnitude higher, and the bus factor of any team running FPGA validators is roughly one.

The hidden constraint: protocol velocity

Even if the cost penciled out, the timing wouldn't. Solana ships protocol-affecting changes monthly: new SIMD-numbered proposals, new transaction formats, new system program features, new commitment levels, new gossip primitives. Agave and Firedancer absorb these in days — recompile, test, push. An FPGA bitstream takes weeks to lay out, synthesize, place-and-route, and verify against silicon. A protocol change that touches signature batching or shred layout invalidates the bitstream and resets the clock.

The CPU + SIMD answer absorbs protocol churn by recompiling. The FPGA answer absorbs it by lagging. In a chain whose whole competitive edge is fast iteration, lagging is the disqualifying property.

Where FPGA still wins

None of this argues against FPGA for the parts that are stream-friendly. The honest answer is narrow and specific:

  • Off-validator co-processors — searchers running their own simulation farms, RPC providers offering signature-verify-as-a-service, ShredStream operators encoding FEC at line rate. Jump's 1M-sig demo lives here naturally.
  • Cryptographic primitives one layer up — BLS pairings for proof verification (see the Zcash Foundation Pairing VM), proof generation for ZK rollups settling to Solana, custom oracle aggregation circuits.
  • SmartNIC + DPU offload — the practical path. AF_XDP today, SmartNIC offload tomorrow, FPGA-on-NIC where the workload justifies it. This keeps the FPGA on the network side of PCIe, where it actually saves a round trip.

Production numbers from a real switchover

Figment cut their primary Solana validator over to Frankendancer at epoch 871 on October 30, 2025. The early performance numbers were unambiguously positive:

  • Gross stake-weighted reward rate (SRR) up +18 basis points right after the switch, climbing to +28 bps (basis points; 1 bps = 0.01%) in some later epochs.
  • Median block production time up 12% — from 355.7 ms to 398.4 ms. Counter-intuitively, that's the whole point. The pack tile's smarter scheduling lets each block soak up more high-priority transactions and more MEV before it has to close.
  • Client diversity arrived as a side effect. Before Frankendancer, the Jito-Solana fork ran on 78% of validators, where a single critical vulnerability could potentially expose 88% of total stake. An independent codebase decorrelates that risk the way multiple aircraft-engine manufacturers do.

The takeaway: Frankendancer ships measurable rewards today, on commodity hardware, with no FPGA in the loop. And the pack-tile scheduling — the single most aggressively un-FPGA-friendly part — is doing most of the work.

What Firedancer actually proves

Jump's contribution isn't that they considered FPGA. It's that they showed the FPGA-shaped solution doesn't need FPGA silicon. The tile architecture, busy polling, kernel bypass, preallocated arenas, SIMD verification, seccomp lockdown — every one of these is an FPGA design constraint implemented in software. Frankendancer is in production today running this architecture on commodity Epyc and Genoa boxes, with the +18-to-+28 bps SRR delta over plain Agave to prove it.

The validator client question for 2026 isn't which one is fastest — it's which architecture absorbs the next protocol change without a rewrite. Agave and Firedancer both clear that bar, and Sig is betting it can do so for the read path. FPGA validators, in the "replace the whole machine with silicon" sense, don't. The math hasn't changed since Jump first ran the numbers, and they're the team most qualified to know.

The honest roadmap, if you still want hardware

If a team or shop wants to ride the curve from "CPU validator" toward "hardware-accelerated", the order matters. Each step has a fundamentally different cost/benefit profile, and the cheap wins come first:

HorizonMoveWhat you getRisk
NowSwitch to Frankendancer on Epyc/Genoa+18 to +28 bps SRR, client diversityLow — production-validated
NearRead the Firedancer tile source, build mental modelKnowing where the actual seams areZero — it's reading
MidSmartNIC / DPU offload for the net tile (Nvidia BlueField, AMD Pensando)Network-layer latency cut without bespoke siliconMedium — driver-level work
MidReplace AF_XDP with DPDK underneath the net tileSlightly more aggressive bypass, marginal gainMedium — divergence from Firedancer mainline
LongFPGA verify tile on Xilinx Alveo U250 — Ed25519 as lookup tablesUp to 1M sigs/sec/card, validated by Jump's demoHigh — bitstream churn, talent scarcity
LongFPGA shred tile — Reed-Solomon FEC in hardwareLine-rate FEC, useful for ShredStream operatorsHigh — narrow audience justifies the build

The pattern is the same across every row: each step keeps the rest of the CPU validator intact. Even the long-horizon FPGA work is a tile replacement, not a re-platforming. That's exactly what the tile architecture was designed to allow.

The takeaway

Five clients, one pipeline. Two of them (Agave, Jito-Solana) hold the stake. One (Frankendancer) is the practical performance upgrade. One (Firedancer) is the long bet. One (Sig) is the read-side outlier. The shared trajectory is more concurrency, more kernel bypass, more SIMD, more cores — not more silicon. Solana isn't an FPGA chain. It's a CPU chain that learned to think like an FPGA, and the only honest FPGA use cases are tile-shaped: one stream, one function, one card.

← Back to Archive
← Home