A Rust workspace of high-performance Antelope state-history tools — the engine behind Hyperion's direct-from-disk indexing and tiered-storage archive (v4.5).
Most tools read the nodeos state-history log straight off disk (or stream SHiP), bypassing
nodeos's single-threaded ship serializer — the historic bottleneck — so throughput scales with CPU
cores instead of one node thread. Decoding uses the pure-Rust
rs_abieos backend, so there is no C++/clang toolchain to
build. The zero-copy deserializer at the core originated in EOS Rio's
fleet-router and ships here as the hyperion-ship library.
Every crate has its own README with full usage, benchmarks, and internals — follow the links.
| crate | status | what it does |
|---|---|---|
| abi-scanner | stable | Extracts every contract ABI version (setabi) across a chain's history into a portable, Elasticsearch-ingestible snapshot — via SHiP or directly off disk. (~168k blk/s on 24 cores.) |
| archive-server | v4.5 | On-demand tiered-storage archive: serves action act.data and contract_row delta values from frozen logs over HTTP, so cold-tier ES docs can drop the heavy payloads and hydrate on read. |
| action-proto | experimental | Direct-from-disk action reader: decodes action_traces into Hyperion-shaped action NDJSON (or straight to Elasticsearch). Next-gen indexer read path. |
| delta-proto | experimental | Direct-from-disk delta reader: decodes contract_row table deltas into Hyperion-shaped delta NDJSON. |
| crate | status | what it does |
|---|---|---|
| snapshot-load | prototype | Decodes active contract-table state straight from an Antelope portable snapshot into Hyperion-shaped NDJSON or MongoDB — no nodeos, no SHiP replay. The deterministic alternative to hyp-control sync. A --tables lightapi preset + --wseg sink build the whole Light-API dataset (incl. a memory-mapped segment) in one pass. |
| light-api | preview | tokio + axum server reproducing the cc32d9 eosio_light_api HTTP API over the per-chain MongoDB snapshot-load writes / Hyperion maintains live. |
| wseg-build | preview | Builds a frozen, memory-mappable columnar segment (.wseg) of the Light-API tables — from the per-chain Mongo, or directly from a snapshot via snapshot-load --wseg — for WormDB to serve the full HTTP + WebSocket Light API at tens-of-MiB resident. |
| crate | status | what it does |
|---|---|---|
| es-load | tooling | Fast, multi-threaded NDJSON → Elasticsearch _bulk loader for measuring the ES write ceiling. Loopback-only by default. |
| slice-log | tooling | Extracts a rebased block-range slice of a state-history ship log (or block log), read-only, for local ground-truth testing of the direct-from-disk tools. |
| crate | what it does |
|---|---|
| hyperion-ship | The shared SHiP read + decode core: the parallel direct-from-disk reader, the zero-copy trace/delta decoders, the block-log reader, and ABI extraction — on the pure-Rust rs_abieos backend. |
Requires a Rust toolchain (1.88+). No C++/clang needed — the pure-Rust abieos backend is used, and
every dependency (including rs_abieos's rust-backend) comes from
crates.io. No git dependencies.
git clone https://github.com/eosrio/hyperion-tools
cd hyperion-tools
cargo build --release
# binaries land in target/release/Build a single tool with cargo build --release --bin <name>. The shared hyperion-ship library lives in
crates/core; each binary is its own crate under crates/.
MIT — see LICENSE.