igneum/proving
2026-10-04 18:49:25 +00:00
..
fixtures Proving fixtures: blocks of one, two and four shards at S_p from a private simnet, plus the v1 cut of the v0 blocks 2026-10-04 10:05:05 +00:00
igneum-prove Prove host: lock file for the serde dependency 2026-10-04 18:17:55 +00:00
windows-wsl2 Prove package: a build gate executes the shard fixture and every block fixture on the Mac before any zip exists 2026-10-04 18:49:25 +00:00
README.md Docs: ledger P12 fixed in the proving code and P20 fixed in the host; spec 7.6 shard statement definitions and the provisional S_p; benchmark standard rows 2026-10-04 10:10:17 +00:00

proving

Igneum proving: v0 (3 October 2026, one SP1 proof per block) and the devnet v4 shards (4 October 2026). Plan, status and measurements: docs/plans/proving-v0.md; numbers: docs/bench-log.md.

  • igneum-prove/: Cargo workspace. core (the port of the execution layer's executor at b7fca5a0; the cutter plan.rs, the partial-trie witnesses trie.rs and witness.rs, the shard statement shard.rs, the block statement agg.rs), program (the shard guest), aggregator (the aggregator guest, SP1 deferred proofs of the shard program), host (modes native, execute, shard, block, all; 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, checks the port against the node's state roots, plans the shards and checks every witness).
  • fixtures/: block-338-shard1, block-341-shards2, block-344-shards4 (one, two and four shards at S_p = 7.5 M pgas, from the private simnet of tools/prove-fixtures), block-78-increment and block-56-transfers (the v0 blocks, one shard each), block-56-transfers-3shards (a test cut at 200 pgas for the CPU multi-shard check).
  • windows-wsl2/: SETUP-PROVER.bat, PROVE-SHARD.bat (the shard at S_p and the two- and four-shard blocks on the GPU), PROVE-BLOCK.bat (the small block) 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 -p igneum-prove-host   # add --features igneum-prove-host/cuda on Linux x86_64 with an NVIDIA card
./target/release/igneum-prove-export ../../tools/prove-fixtures/seq.json 344 ../fixtures/block-344-shards4.json   # replay, plan, witnesses; --budget <pgas> for a test cut
./target/release/igneum-prove-host ../fixtures/block-344-shards4.json --mode native     # cut, witnesses, chain and sums, tamper checks
./target/release/igneum-prove-host ../fixtures/block-344-shards4.json --mode execute    # SP1 cycles per shard and for the aggregator
./target/release/igneum-prove-host ../fixtures/block-338-shard1.json --mode shard --shard 0 --out results.json   # execute, core, compressed, verified
SP1_PROVER=cuda ./target/release/igneum-prove-host ../fixtures/block-344-shards4.json --mode block --out results.json   # shard proofs plus aggregation

Fixtures of real size: tools/prove-fixtures/net.sh start (a one-node simnet on ports 29300+), node tools/prove-fixtures/gen.mjs (bursts of modexp calls, transfers and Counter increments landed in one block, then the export), then the exporter per block.