An independent, Zig-native Solana validator — byte-for-byte
behavior-compatible with the Agave validator by design. The majority of the
tree is original Vexor work; every ported subsystem is declared in
NOTICE and PROVENANCE.md.
Vexor runs its own pure-Zig cryptography (ed25519, blake3, bn254/alt_bn128,
poseidon, LtHash — no Firedancer FFI), a Zig sBPF interpreter stack (the
legacy interpreter was originally ported from Sig and since heavily reworked;
the vex_bpf2 rebuild is an independent spec-for-spec implementation — see
PROVENANCE.md), a conflict-DAG parallel executor, AF_XDP zero-copy
networking, and its own VexLedger blockstore.
Status: testnet-only, 0.9.x pre-production. Mainnet is out of scope —
Vexor does not run there. 1.0.0 is reserved for the production-grade
milestone.
Vexor is an independent implementation, not a fork, reimplemented from
scratch using these Apache-2.0 projects as reference oracles (not
compiled-in code) — except where a subsystem is declared a port in
NOTICE:
- Agave (Anza) — primary reference; no Agave code compiled in.
- Firedancer (Jump) — leaf-crypto reference (no C linked); several SVM/networking modules are declared ports.
- Sig (Syndica) — structure reference; zk-ElGamal and the legacy sBPF interpreter carry declared Sig lineage.
Full provenance: NOTICE · PROVENANCE.md ·
docs site Attribution & License.
"Agave", "Firedancer", "Sig", and "Solana" are trademarks of their respective owners.
- Install Zig 0.15.2 (pinned — other versions are not supported). See ziglang.org/download.
- Clone this repository.
- Build:
zig build -Dprod -Dpure_zig --release=safe-Dprodbundles the canonical production feature-flag set (each flag remains individually overridable, e.g.-Dprod -Dfec_dedup=false).-Dpure_zigis accepted for compatibility with existing recipes but is a no-op — crypto is pure-Zig unconditionally. A production deploy also pins-Dcpu=znver4for the target hardware; portable builds (including CI) use the default target or an explicit-Dcpu=x86_64_v2baseline — see.github/workflows/build.yml. - Debug builds are unsuitable for testnet use; always build
--release=safefor anything that touches the live cluster.
zig build test-migrated
Runs the full aggregate KAT (known-answer-test) suite across every migrated
subsystem. Individual subsystems also expose their own narrower zig build test-<name> steps (see build.zig) for faster iteration on one area.
Cluster-attested, not benchmarks — full detail, methodology, and citations: What We've Accomplished.
- Voting: ~98.7–99% of the 16-credits/slot Timely-Vote-Credit ceiling while operating, on par with the epoch's top validators.
- Block production: ~97%+ of leader slots/full epoch, 100% while up. Blocks are currently empty; transaction-bearing production is under live testing, not shipped.
- Vote execution: ~1.9–2.0 µs/instruction, ~4.4× faster than the predecessor it replaced, byte-identical over 20M+ live instructions with zero mismatches.
- Byte-fidelity gate: every consensus-affecting change passes an offline golden replay (1,992 canonical slots) bank-hash-identical to the cluster before deploy.
- Networking: AF_XDP zero-copy RX, io_uring snapshot writes, tile/core- pinned architecture.
Measured live against the ecosystem's own
firedancer-io/solana-conformance
harness and a version-matched Agave reference — not baked-in expected
outputs. Full methodology, per-family breakdown, and disclosed known gaps:
Conformance.
- Instruction corpus (47,240 fixtures): 85.82% raw, 92.74% under
the harness's consensus-compatibility mode.
system,compute-budget,precompile, andzk_sdkpass 100% raw; the gap is dominated by disclosed known gaps (BPF-loader ELF-loading not yet byte-matched) plus error-code/CU encoding differences the consensus mode recovers. - Syscall/crypto corpus (7,571 fixtures): 99.62% non-known-gap.
Parts of Vexor are developed and published as standalone libraries, useful on their own and open to the same scrutiny as the validator:
zbpf: a standalone sBPF virtual machine in Zig, with the ELF loader, verifier, interpreter, syscalls, CPI, and native builtins. 1065 tests across 31 build steps.zolcrypt: pure-Zig cryptography extracted from the validator, including ed25519 (strict verification by default, matching Agave), secp256k1/r1, bn254, blake3, and the LtHash accumulator.vexor-zig-sdk: an exploratory SDK for writing Solana on-chain programs in Zig, with a constraint DSL, IDL generation, and SPL bindings. Its roadmap starts with a compute-unit-exact program test harness.
Vexor is developed and operated on a single reference machine: AMD EPYC 9374F (32 Zen 4 cores), 512 GB RAM, separate NVMe drives for ledger and snapshots, accounts held on a RAM-backed filesystem, and a Mellanox ConnectX-6 Dx NIC (AF_XDP receive path). Minimum requirements have not been characterized — treat the reference configuration as the only proven one. In particular, the accounts store currently assumes a large-RAM machine, and the AF_XDP fast path assumes a NIC with XDP zero-copy support (there is a standard-socket fallback).
Vexor exists because Agave (Anza), Firedancer (Jump), and Sig (Syndica) were
built in the open — studying their source is how we learned how a live
Solana validator really works, and their implementations served as
reference oracles for byte-for-byte verification. Declared ports/adaptations
are cited in NOTICE and PROVENANCE.md;
everything else is independent, from-scratch work.
Vexor aims to stand alongside the ecosystem's other independent clients, such as Jito-Solana, each taking its own path.
Vexor is licensed under the Apache License 2.0.
Follow Vexor: vexornode.xyz · X @vexornode