igneum/bench/proof-systems/README.md

2.7 KiB

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)