21 lines
2.7 KiB
Markdown
21 lines
2.7 KiB
Markdown
# 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.
|