Why Vexor Is Different¶
Docs-site note (2026-06-25, refreshed 2026-07-16): This is an early authored page of the planned Vexor documentation site, modeled on the structure and feel of docs.anza.xyz / anza.xyz. The site itself will be built out when Vexor is production-ready across testnet and mainnet; this page is written now so the project's thesis is documented while it is fresh. Style: clean headings, plain language, claims grounded in source + live measurement, status tagged DONE / PARTIAL / PLANNED so nothing reads as shipped before it is.
The thesis — client diversity matters, and Vexor is independent¶
Every major Solana outage to date has traced back, in one way or another, to a consensus monoculture: when almost the entire network runs the same client, a single implementation bug can halt the chain. The agreed remedy across the ecosystem is client diversity — multiple, independently-implemented validators that reach the same consensus answer by different code paths, so that no single bug can stop everyone at once.
Vexor exists to be one of those independent implementations. It is a from-scratch, 100% Zig-native Solana
validator client — not a fork of Agave, and not a thin binding around someone else's engine. It is a clean-room
implementation that reaches the same bank_hash as the live cluster through its own consensus, runtime, sBPF
VM, networking, and blockstore code.
That word independent is the whole point. A diversity client only reduces monoculture risk if its bugs are different bugs. A fork inherits the upstream implementation and therefore inherits the upstream bug class; a language binding inherits the bound engine's behavior. Vexor shares almost no implementation lineage with Agave, so a latent bug in one is unlikely to exist in the other — which is exactly the property the network needs.
An honest framing up front (we do not oversell):
- "Zig" is not our wedge. Sig (Syndica) is also written in Zig; "a Zig validator" is not unique. Our differentiation is independence proven by byte-exact correctness against the live cluster, plus the tooling we built to get there — not the language and not raw speed.
- "Fastest" is not us. Firedancer is the raw-performance client. We do not claim that title.
- "100% Zig-native" — now true without caveat. There is no Rust FFI on any consensus path, and as of the
pure-Zig crypto rewrite (build flag
-Dpure_zig, the canonical production default) the binary links zero Firedancer code at runtime either: ed25519, BLAKE3, BN254/alt_bn128, and Poseidon all run through Vexor's ownsrc/vex_crypto/, verified byte-exact against known-answer test vectors and live cluster parity. An earlier build option still exists to link Firedancer'sballetAVX-512 leaf crypto instead, kept as a reference configuration, but it is not what the production binary ships with. Consensus, runtime, VM, blockstore, networking, and now leaf crypto — all Zig.
How Vexor differs from each existing client¶
Today Solana has a small set of validated clients. Vexor aims to be a genuine fourth independent implementation alongside them. Here is how it relates to each:
| Language | Lineage | Blockstore | Focus | Vexor's relation | |
|---|---|---|---|---|---|
| Agave (Anza) | Rust | Reference impl | RocksDB (C++ LSM) | The incumbent; the monoculture to diversify | Vexor is a clean-room behavioral drop-in, not a fork; reaches the same bank_hash by independent code |
| Firedancer (Jump) | C / C++ | Independent | Custom fd_blockstore (no persistence — rebuilds shreds from the network on restart) |
Raw-performance king | Vexor shares FD's "no RocksDB" storage discipline but adds persistence + crash recovery + offline replay |
| Jito-Agave (Jito) | Rust | Agave fork (MEV: bundles, block-engine, BAM) | RocksDB (inherited) | MEV / restaking on top of Agave | Not an independent client — a fork; Vexor's independence is the contrast |
| Sig (Syndica) | Zig | Independent | rocksdb-zig binding (RocksDB under a Zig binding) |
Historically RPC / read / gossip / accountsdb; maturing toward full consensus | Both are Zig, but Vexor's blockstore is its own Zig append-segment store (no RocksDB), and Vexor is consensus/voting-first |
A few clarifications, stated fairly:
- Sig is not "read-only." It began read / RPC / gossip / AccountsDB-focused and is actively maturing toward
full consensus. The accurate distinction is storage and focus, not capability ceiling: Sig uses a
rocksdb-zigbinding (RocksDB underneath, via Zig), whereas Vexor's blockstore — VexLedger — is a ground-up Zig append-segment store with no RocksDB at all (see VexLedger). - Jito is a fork, not a separate client. It is Agave plus MEV machinery; it inherits Agave's consensus implementation (and bug class). It does not add implementation diversity.
- Firedancer made the same blockstore call we did — both abandoned RocksDB — but FD deliberately skips persistence (it rebuilds shreds from the network on restart). Vexor keeps them, which is what unlocks offline replay and the divergence-forensics capabilities below.
Differentiators that are shipped and proven (DONE)¶
Everything in this section is confirmed either by being deployed and voting bank-exact on live testnet, by offline-replay bank-exact parity against a cluster-attested chain, or by KAT / golden-vector for feature-gated code, per the canonical status doc (2026-06-23).
VexLedger — a live, Zig-native, byte-audited blockstore — DONE¶
Vexor's blockstore is VexLedger, a purpose-built 100% Zig append-segment store that replaces Agave's RocksDB entirely. It is live on testnet today as the voting node's blockstore, stays bank-exact under load, and adds negligible overhead with ~1× write amplification (versus RocksDB's multi-× LSM compaction overhead).
Every interop-facing record is validated byte-for-byte against the Agave reference implementation, currently
anchored to the newest testnet release (v4.2.0-beta.0 — Vexor re-anchors this audit to each new release as it
ships), with a verdict of zero known drift — every column-family name, every big-endian key, and every value
codec (wincode for the meta families, protobuf for transaction_status / rewards) matches canonical Agave, and
RPC JSON output byte-matches the reference. Full detail on the VexLedger page.
Bank-exact voting at the live tip — DONE¶
Vexor votes on the live testnet cluster and produces the same bank_hash as the cluster, byte-for-byte. This
is the load-bearing claim behind "independent and correct": reaching parity was earned the hard way — a long
series of distinct consensus "carrier" bugs were found and closed along the way using Vexor's own per-slot parity
tooling.
Offline bank-exact replay (carrier / divergence forensics) — DONE¶
Because VexLedger persists shreds and can re-replay them, any rooted slot can be re-replayed offline, with no
network, and reproduces the cluster's bank_hash exactly (proven 6/6 on a pinned rooted slot range). This
offline-replay engine is the foundation of Vexor's divergence-forensics tooling: pin a diverging slot, replay it
offline, and isolate the exact diverging program / account / field. This is the machinery that found and closed
the carrier bugs above, and it is also what the always-on, real-time divergence alarm now wires onto —
see DONE above.
Block production (empty blocks) proven and cluster-accepted — DONE¶
Vexor produces blocks in its leader window that the cluster accepts (verified via public oracle: the produced
slots appear in getBlocks / getBlock and getBlockProduction reflects them). The fix that made this work was
feeding real epoch stake weights into the turbine broadcast tree.
Precision: the empty-block production path is the part proven live and cluster-accepted. Tx-bearing block production — the full transaction-inclusion gate (sequential fee-payer running-balance + blockhash-age + in-block dedup + cross-block status cache + cost-model) — is built but gated and revertible, not yet live-proven. It is listed under Partial, not here.
Own canonical sBPF interpreter VM (Firedancer-parity) — DONE¶
Vexor has its own clean-room Zig sBPF VM — a byte-/bank-exact interpreter mirror of solana-sbpf, validated
against the anchored Agave reference (v4.2.0-beta.0) and at interpreter-parity with Firedancer (FD also
interprets; JIT is Agave-only, so "no JIT" is not a gap relative to FD). It supports sBPF v0/v1/v2/v3, and the syscall surface is implemented natively
in Zig — including ZK ElGamal proof verification (confidential transfer, SIMD-0153) and the
bn254 / alt_bn128 / poseidon / BLS12-381 crypto syscalls — as real Zig/native ports, not FFI shims into
someone else's runtime.
Real-time divergence alarm — DONE (armed live, soaking)¶
Combining the flight recorder with the offline-replay engine, a background alarm thread now runs live: a
non-blocking freeze-tap enqueues every frozen slot's {slot, bank_hash} for comparison against a cluster RPC
oracle, and on a mismatch it automatically triggers an offline re-replay of the suspect slot and narrows the
divergence to one of the bank hash's four inputs (parent hash, signature count, PoH hash, or the accounts
lt-hash). The replay thread itself never does RPC or blocking work, so the alarm has zero effect on bank hash or
consensus timing. Status: wired live and running in production, currently in its soak period — it has not
yet fired against a real production divergence, so its live catch-and-replay path is proven by design and by
test, not yet by an actual incident. See Reliability & Conformance.
Kernel-bypass networking + native QUIC votes + FEC dedup — DONE¶
- AF_XDP zero-copy networking — kernel-bypass RX (zero-copy, proven live) plus a real TX ring.
- Native Zig QUIC vote submission — a full client-auth QUIC TPU path (mTLS identity cert, ALPN
solana-tpu, correctmax_streams_uniflow-control handling). Most independent setups lean on Agave's QUIC stack; this is Vexor's own. - FEC-set ed25519 sigverify dedup — bank-hash-neutral signature-verification dedup across erasure sets, proven correct on live shreds (0 false rejects, bank-exact).
Operational differentiators — DONE¶
- Explicit tile→core topology with a per-deploy runtime verifier. Every thread has a declared core home, and
the deploy path reads
/procto prove the live thread→core map and flag any floater on a consensus core. No mainstream validator self-verifies its pinning at deploy time. - Canonical RPC minimal/full tier split. The voting node serves exactly the Agave "Minimal-12" RPC footprint; heavier RPC is gated behind an explicit mode — byte-faithful to the anchored Agave reference, with clean consensus/RPC separation.
- Productionized build/deploy. One blessed canonical build with hard gates on divergence-critical flags and instant rollback binaries.
Capabilities that are partial (PARTIAL)¶
These are built and present but not yet live-proven on the consensus path, or implemented-but-dormant by default. We label them honestly rather than counting them as shipped.
| Capability | Status | What's true today |
|---|---|---|
| Tx-bearing block production | PARTIAL | Full inclusion gate built (fee-payer balance + blockhash-age + dedup + status cache + cost-model), gated and revertible; empty-block production is the part proven live |
| Flight recorder (per-slot consensus fingerprint into VexLedger) | PARTIAL | Implemented; dormant by default behind a config flag (VEX_LEDGER_FLIGHT=1), zero effect on consensus when off |
| VexLedger content / archival RPC (getBlock / getTransaction history) | PARTIAL | Content path built + audited byte-clean against the anchored Agave reference, deployed but opt-in / dormant by default |
| Pruning + tunable fsync telemetry | PARTIAL | Implemented and gated; rolling out on a maintenance build |
Moats that are designed or planned (PLANNED)¶
These are the longer-term differentiators. They are design-complete or proposed, not shipped. We mark them so explicitly — a designed moat is not a shipped moat. (The real-time divergence alarm that used to be tracked here has shipped and is armed live — see DONE above.)
SnapStream — cross-client restart coordination — mixed: shipped distribution + PLANNED autopilot¶
SnapStream is Vexor's snapshot / recovery infrastructure. Be precise about which layers exist:
- SHIPPED: cross-client, integrity-verified snapshot + increment distribution for any client (C-ABI), on the time-to-recovery critical path.
- SHIPPED: a custom QUIC server with MASQUE (RFC 9298) transport hardening (endpoint obfuscation, smaller DDoS / correlation surface).
- PLANNED (proposed, with proven PoCs): an opt-in, threshold-authorized, cross-client restart-coordination
autopilot — a coordinator publishes agreed restart params (slot, expected bank hash, shred version, hard-fork,
snapshot) once, and every opted-in client of any language auto-provisions and relaunches, collapsing
time-to-supermajority after a halt. The cryptographic authorization model is de-risked by PoC (FROST
threshold Ed25519, verifiable under stock ed25519; plus a stake-weighted, role-diverse governance policy), but
the autopilot itself is not shipped. It complements — does not replace — Agave's
wen_restart/ SIMD-0046.
zseglog — extractable open-source storage engine — PLANNED (specified)¶
VexLedger's generic storage core (a bounded, prunable, crash-safe, std-only Zig append-segment store) is specified for extraction as a standalone, MIT, open-source Zig package — zseglog — with the Solana-specific column families layered on top. It fills a real gap in the Zig ecosystem (a maintained, embeddable KV / segment store) and is a planned shipped public good. Specified, not yet released.
At a glance — shipped vs planned¶
| Differentiator | Status |
|---|---|
| Independent, clean-room, Zig-native validator | DONE |
| Bank-exact voting at the live testnet tip | DONE |
| VexLedger append-segment blockstore (live, byte-audited zero-drift) | DONE |
| Offline bank-exact replay (carrier forensics, 6/6 proven) | DONE |
| Own canonical sBPF interpreter VM (FD-parity) + native crypto syscalls | DONE |
| AF_XDP zero-copy RX + native QUIC votes + FEC dedup | DONE |
| Per-deploy tile→core pinning verifier; canonical RPC tier split | DONE |
| Empty-block production (cluster-accepted) | DONE |
| Real-time divergence alarm | DONE (armed live, soaking — not yet real-incident-proven) |
| Tx-bearing block production (inclusion gate) | PARTIAL (gated) |
| Flight recorder; content/archival RPC | PARTIAL (dormant) |
| SnapStream restart-coordination autopilot | PLANNED (proposed; PoCs proven) |
| zseglog open-source extraction | PLANNED (specified) |
Status (2026-06-25)¶
- Independent Zig validator, voting bank-exact on live testnet — the core diversity claim, proven.
- VexLedger live + byte-audited zero-drift against the anchored Agave reference (v4.2.0-beta.0); offline replay 6/6 bank-exact; own sBPF VM at FD-parity.
- Empty-block production proven cluster-accepted; tx-bearing production built but gated.
- The real-time divergence alarm has shipped — armed live, non-blocking, currently soaking in production.
- Remaining moats (SnapStream restart autopilot, zseglog) are proposed / specified — clearly not yet shipped.
- Re-confirm any "DONE" against the live binary before relying on it; the canonical status doc is the source of truth, and this page mirrors it.