igneum/proving
igneum-labs f71af23dcb Proving: aggregator guest, host modes shard and block with per-stage timestamps, exporter with shard plans
Two SP1 programs: the shard guest and the aggregator guest (deferred proof verification of the shard vk). Host modes native (cut, witnesses, chain and sums, three tamper checks, stub), execute (cycles per shard and for the aggregator), shard (execute, core, compressed, each verified), block (compressed proof per shard, aggregation, verified against the shard program id and the claim). Every stage prints a STAGE line and a RESULT line with a UTC timestamp so a silent gap is visible, and the host holds a Tokio runtime for the whole run and drops the proof system inside it, for the sp1-cuda Drop panic (ledger P20). The exporter writes v1 fixtures with the plan and every shard's expected roots, links and witness size; --budget makes a test cut.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 10:05:05 +00:00
..
fixtures Proving v0: SP1 guest and host for one Igneum block, real-block fixtures, versioned ProofSystem trait, WSL2 package for the RTX 5090 run 2026-10-03 22:30:12 +00:00
igneum-prove Proving: aggregator guest, host modes shard and block with per-stage timestamps, exporter with shard plans 2026-10-04 10:05:05 +00:00
windows-wsl2 Prover package: protobuf-compiler in the apt list (the host build's prost crate needs protoc) 2026-10-04 08:46:32 +00:00
README.md Proving v0: SP1 guest and host for one Igneum block, real-block fixtures, versioned ProofSystem trait, WSL2 package for the RTX 5090 run 2026-10-03 22:30:12 +00:00

proving

Igneum proving v0 (3 October 2026): the first SP1 proof of an Igneum block. Plan and scope: docs/plans/proving-v0.md.

  • igneum-prove/: Cargo workspace. core (the block statement, a port of the execution layer's executor), program (the SP1 guest), host (execute, core, compressed modes; the versioned ProofSystem trait with the stub and the SP1 implementation in host/src/proof_system.rs), export (cuts a real block out of an igneum_exportSegments dump and checks the port against the node's state roots).
  • fixtures/: real simnet blocks, block-78-increment.json (the Counter increment(5) call) and block-56-transfers.json (three transfers).
  • windows-wsl2/: SETUP-PROVER.bat, PROVE-BLOCK.bat and the Linux scripts for the project lead's PC; make-package.sh builds the zip.

Build and run on a machine with the SP1 toolchain (curl -L https://sp1up.succinct.xyz | bash && sp1up):

cd proving/igneum-prove
cargo build --release -p igneum-prove-export
./target/release/igneum-prove-export ../../tools/evm-smoke/seq.json 78 ../fixtures/block-78-increment.json
cargo build --release -p igneum-prove-host            # add --features igneum-prove-host/cuda on Linux x86_64 with an NVIDIA card
./target/release/igneum-prove-host ../fixtures/block-78-increment.json --mode execute   # native check + cycle count
SP1_PROVER=cuda ./target/release/igneum-prove-host ../fixtures/block-78-increment.json --mode all --out results.json