This is the source-of-truth workflow guide for ere-hosts.
ere-hosts consumes canonical EEST fixtures, resolves guest binaries, runs benchmarks across selected zkVMs, and optionally persists or verifies proofs.
Inspect the current CLI surface from the repository root:
cargo run -p ere-hosts -- --helpPrerequisites:
- Docker is required because zkVM hosts are managed through
ere-dockerized. - Execute and prove actions require an explicit
--input-folderpointing to a canonical EEST JSON file, a directory of EEST JSON files, or an EEST checkout containingblockchain_tests/. - Verification reads proofs and does not require
--input-folder. A supplied verification input path is accepted and ignored for backward compatibility.
Run the stateless validator with Reth:
cargo run -p ere-hosts --release -- --zkvms sp1 \
stateless-validator --execution-client reth \
--input-folder /path/to/eest-fixturesRun it with Ethrex:
cargo run -p ere-hosts --release -- --zkvms openvm \
stateless-validator --execution-client ethrex \
--input-folder /path/to/eest-fixturesZesu remains a valid --execution-client value, but every Zesu invocation is
temporarily rejected before default, local, or URL artifact resolution. Its
Amsterdam routing and ZisK compatibility logic remain in place for the
forthcoming tests-zkevm v0.6.2-compatible artifact:
cargo run -p ere-hosts --release -- --zkvms zisk \
stateless-validator --execution-client zesu \
--input-folder /path/to/amsterdam-fixturesUntil the artifact is published and the availability gate is enabled, this
command returns a targeted temporarily unavailable error.
Run directly from an EEST fixture checkout:
cargo run -p ere-hosts --release -- --zkvms sp1 \
stateless-validator --execution-client reth \
--input-folder /path/to/execution-specs/fixturesWhen the path contains a blockchain_tests/ subdirectory, only that subtree is used. A direct EEST JSON file is also accepted.
Filter selected fixtures by prefix:
cargo run -p ere-hosts --release -- --zkvms sp1 \
stateless-validator --execution-client reth \
--input-folder /path/to/eest-fixtures \
--fixture test_sha256.py::test_sha256 \
--fixture test_memory.py::test_mcopyere-hosts supports three actions:
--action execute: execute the guest only. This is the default and requires--input-folder.--action prove: execute, generate a proof, and require--input-folder.--action verify: verify proofs loaded from disk or a downloaded.tar.gzarchive. Input fixtures are not read.
Input presence and path existence for execute/prove are checked before guest artifact resolution. Verification may omit the option; when --input-folder is supplied with verify, its value is ignored even if that path no longer exists.
Timeouts are action-scoped:
- Default execute timeout:
5m - Default prove timeout:
15m - Default verify timeout:
2s
Override the selected action's timeout:
cargo run -p ere-hosts --release -- --zkvms sp1 \
--timeout 90s \
stateless-validator --execution-client reth \
--input-folder /path/to/eest-fixtures- Metrics output folder default:
zkevm-metrics/ - Verification proof folder default:
zkevm-fixtures-proofs/ - ZisK profile output folder default:
zisk-profiles/
Use the focused references for exact schemas and file layouts:
- Benchmark Execution Inputs describes canonical input discovery, filtering, client compatibility, and explicit legacy-format rejection.
- Benchmark Execution Output describes metrics JSON,
hardware.json, proof files, input dumps, and workload metadata.
Dump the raw serialized guest inputs used for a run:
cargo run -p ere-hosts --release -- --zkvms sp1 \
--dump-inputs debug-inputs \
stateless-validator --execution-client reth \
--input-folder /path/to/eest-fixturesThese input dumps are zkVM-independent, so each fixture input is written once even if multiple zkVMs are selected.
Generate and save proofs:
cargo run -p ere-hosts --release -- --zkvms sp1 \
--action prove \
--save-proofs my-proofs \
stateless-validator --execution-client reth \
--input-folder /path/to/eest-fixturesVerify proofs from a local folder without fixture input:
cargo run -p ere-hosts --release -- --zkvms sp1 \
--action verify \
--proofs-folder my-proofs \
stateless-validator --execution-client rethVerify proofs from a remote archive:
cargo run -p ere-hosts --release -- --zkvms sp1 \
--action verify \
--proofs-url https://example.com/proofs.tar.gz \
stateless-validator --execution-client rethWhen --proofs-url is used, the archive is downloaded, extracted to a temporary directory, and cleaned up after verification.
Default Reth and Ethrex guests use the ere-guests artifact resolver. Tagged dependencies use release assets for that tag; commit or branch dependencies use GitHub Actions artifacts for the resolved commit and require GITHUB_TOKEN or GH_TOKEN.
Use local artifacts with --bin-path <DIRECTORY>, or provide a compatible remote directory with --guest-artifact-base-url <URL>. Those options remain mutually exclusive.
Zesu is gated before this resolver for every artifact source. Re-enabling it requires publishing the compatible guest, updating its version pin, enabling the availability gate, and confirming the supported zkVM matrix.
- Use
--force-rerunto ignore existing metrics and rerun a workload. Without it, fixtures with existing output files are skipped. --resource gpuselects GPU proving resources where supported.--zisk-profileonly works with--zkvms ziskand--action execute.--save-proofsis only valid with--action prove.--proofs-urlis only valid with--action verify.