igneum/bench/proof-systems
igneum-labs 7101273dcb exec 0.3.14 app side: the prover exports from one block below and seeds from the account dump; the reorg harness; the 4060 rows
- app/igneum-app/src/prover.rs: igneum_exportSegments [n-1, n] for a shard and [first-1, last] for a segment (never
  from 0: on a restarted node the records below the restart carry zero roots and the exporter refused every cut,
  the fleet 16:02Z); exec_boundary() reads igneum_getExecStatus.restartNumber (or the startedFrom text on a
  0.3.13 node) and the prover never claims a shard or a segment below it
- proving/igneum-prove/export: seeds the port from the export's preState, checks its root against the node's at the
  dump's block and replays from the next segment; the restart-replay path stays for exports without a dump
- tools/exec-sync/reorg.mjs: a 300-chain-block reorg on a private fast-time simnet, two cases (the ring, the
  persisted-generation fallback after a restart), 18 checks; A's lone miner casts no finality vote because one key
  at 83% of the window certified its own branch in the first run and the finality rule refused B's chain, by design
- tools/exec-sync/net.mjs: case 5 (an unreadable flag file blocks loudly, never genesis) and case 6 (the export from
  one block below carries the dump; the exporter cuts from it), 15 checks
- bench/proof-systems: the rented RTX 4060 8 GB rows (46) and the table

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:50:25 +00:00
..
rows exec 0.3.14 app side: the prover exports from one block below and seeds from the account dump; the reorg harness; the 4060 rows 2026-10-06 16:50:25 +00:00
README.md bench/proof-systems: block-72854-empty-block-first is a 23.6 M-cycle shard; the empty shard is block-58927-empty-reward 2026-10-06 13:44:22 +00:00
run.sh bench/proof-systems: a failed run keeps its logs beside the row, labelled rows do not overwrite each other 2026-10-06 12:56:07 +00:00
TABLE.md exec 0.3.14 app side: the prover exports from one block below and seeds from the account dump; the reorg harness; the 4060 rows 2026-10-06 16:50:25 +00:00
table.mjs bench/proof-systems: run.sh portable (GNU time on Linux, host and out paths, a row label, the patched server's HOME), the table keys on the label and fixture 2026-10-06 11:56:22 +00:00

Proof-system watch

One fixed shard, every candidate, one row each. The row says what a 12 GB card and a phone verifier would see; the quarterly run says what moved.

The fixed shard

Four fixtures, shard 0 of each: proving/fixtures/fees-v1-shards2.json (the adopted shard size S_p, 4,717,439 SP1 cycles, "the v1 shard"), proving/fixtures/block-338-shard1.json (one FULL shard at the prototype shard size, 60,415,376 cycles: the heaviest shard the chain ever cut; 30 GB on the stock SP1 server), proving/fixtures/block-72854-empty-block-first.json (despite its name a 23.6 M-cycle shard: the first block after an empty one; 17 s at 20 GB on the stock server) and proving/fixtures/block-58927-empty-reward.json (an empty block, 278,423 RISC Zero cycles, "the empty shard"). The statement is igneum_prove_core::shard::shard_statement; every candidate commits the same ShardOutput bytes. The 12 GB tier is judged on the v1 shard; the prototype shard is the ceiling, not the gate.

The candidates and how each is run

Candidate Binary How Recursion Audit
SP1 stock 6.8.1 (Hypercube: SP1 6.x is the Hypercube prover, docs/analysis/proving-methods.md 1.1) proving/igneum-prove/target/release/igneum-prove-host --mode compressed --shard 0, SP1_PROVER=cpu on the Mac, cuda on PC 2 yes (compressed, aggregator guest) yes (KALOS, Cantina, Zellic, Veridise; docs/plans/funding.md 2a)
SP1 patched server (the prover-floor agent's v3/v4 build) the same host, ~/.sp1/bin/sp1-gpu-server replaced PC 2 only (HOME=/opt/igneum-floor/home); n/a on the Mac (no CUDA) yes the server fork is not audited; the guest and verifier are the stock ones
SP1 Hypercube separate release n/a the stock row is the Hypercube prover; no separate release exists to run
RISC Zero (proof system 2) proving/igneum-prove-r0/target/release/igneum-prove-r0-host --mode compressed --shard 0, Metal on the Mac, CUDA on PC 2 yes (succinct receipt; composition for an aggregator) yes (Veridise, Hexens; funding.md 2a)
Jolt n/a no guest for our shard, no shipped recursion, no Metal release used here (proving-methods.md route F): n/a until a guest is written no no

The row

rows/<date>-<machine>-<candidate>.json: candidate, machine, backend (cpu|cuda|metal), fixture, shard, cycles, wall_s, prove_s, peak_memory_mib (max RSS on the Mac; nvidia-smi memory.used on a CUDA box), proof_bytes, verify_s (one core), recursion, audit, verified (by the pinned verifier), command, source. node table.mjs renders every row into the table below. A cell that was not measured says n/a and why.

Latest table

(rendered by node bench/proof-systems/table.mjs > bench/proof-systems/TABLE.md)