Read Solana history from a compact archive on Cloudflare. The reader runs on your machine, downloads only the bytes it needs, and gives your code ordered blocks and transactions. You need no validator and no RPC node.
git clone --depth 1 https://github.com/FernoLabs/blockzilla.git && cd blockzilla
cargo install --locked --path blockzilla/cli --bin blockzilla --debug
blockzilla stream --epoch 200 --max-blocks 5Start with the quick start, then the user guide: Rust callbacks, token exports, a token SQLite index, program dumps, and the live stream (private beta). For storage details, see file formats.
This repository also contains the tools that build the archive. The CLI and the archive format are pre-1.0, so pin the Git revision that produced an archive. The sections below are for contributors.
| Path | Role |
|---|---|
blockzilla/ |
CLI, archive gateway, and monitor. |
hivezilla/ |
Live capture, replication, protocol, and storage. |
edgezilla/ |
Independently deployed Cloudflare Workers. |
crates/ |
Archive formats, readers, byte sources, and parsers. |
indexer/ |
Index builders, queries, extraction, and audits. |
runtime/ |
Experimental transaction replay. |
examples/ |
Archive reader examples and canonical V3 candidate checks. |
bench/ |
Reader and conversion measurements. |
web/ |
Web applications. |
docs/ |
Format specifications, architecture, and operating guides. |
scripts/ |
Build, benchmark, and operational helpers. |
Archive V3 is the canonical format intended to replace Archive V2. Its converter
candidates can be read locally with ia-read. The IndexerV3Archive API and
standard read-archive-v3-* workloads still read the frozen standalone prototype;
they cannot read canonical converter output. The dedicated V3 reader crate now
owns CanonicalReader, used by ia-read and the converter's index builders.
The common reader interface and HTTP support for canonical V3 remain to be
added, with cross-format fixture checks. See the
workspace structure for crate locations
and the remaining migration work.
For current reader use, start with the format guide and the CAR, V2, or V3 examples. V2 uses a bounded rolling pipeline and can write optional indexed USDC balances with a source-scoped public-key dictionary. The rolling-pipeline comparison records full-epoch output checks for its frozen build. The later dependency retest checks V2 prefixes after the dependency update.
The user read path is:
Blockzilla archive on Cloudflare -> Blockzilla reader -> application or database
The Cloudflare archive serves Compact V2 sample epochs. The live stream is in private beta. A crates.io release and a complete historical catalog are later milestones. Start with the user guide; archive production and fixture checks below are for contributors.
Use a Rust toolchain that meets the workspace rust-version in
Cargo.toml. Clone the repository and inspect the CLI:
git clone https://github.com/FernoLabs/blockzilla.git
cd blockzilla
cargo run --locked -p blockzilla -- --helpBuild one block from the included fixture and read it back:
OUT="$(mktemp -d)"
cargo run --locked -p blockzilla -- \
build-archive-v2-hot-blocks \
crates/old-faithful/of-car-reader/benches/fixtures/epoch-157-biggest.car \
"$OUT" \
--max-blocks 1 \
--no-access
cargo run --locked -p blockzilla -- \
bench-archive-v2-hot-blocks \
"$OUT/archive-v2-blocks.zstd" \
--workers 1 \
--chunk-size 1The fixture is only a smoke test. Full epochs can require hundreds of gigabytes across source, output, and temporary files; use a fresh output directory and keep the source archive immutable.
cargo fmt --all -- --check
cargo check --workspace --all-targets --locked
cargo test --workspace --all-targets --lockedRead the documentation index before working on formats, deployments, or credential-handling code. Cross-cutting future work and product decisions are tracked in the project backlog.
Blockzilla is available under the MIT License.