feat: Add SP1 and Zisk kernel proving backends#411
Draft
samuelburnham wants to merge 5 commits into
Draft
Conversation
554d76d to
735d07c
Compare
aa40635 to
1076c91
Compare
Convert the crate to a Cargo workspace with subcrates and add the SP1 and Zisk kernel proving backends. Make aiur::vk_codec::aiur_system_to_bytes public so the FFI layer (crates/ffi/src/aiur/protocol.rs) can serialize the verifying key.
Port the kernel-sharding profiler and partitioner into the workspace and build the proving pipeline on top of it: - manifest-driven sharding for the Zisk host (drops --topo/stats scaffolding) - budget-driven shard count from a per-shard cycle cap, recalibrated cycles-per-heartbeat (208k->215k), and auto-sizing from machine RAM - emit the bisection tree and carry it in the .ixes manifest - tree-aligned aggregation with in-circuit assumption discharge - cross-run proof reuse on the shard-plan path (drops the legacy reuse path) - store-aware planning: partition only novel work, resolve the rest by reuse
- add NatSuccMode::Stuck cache to prove ByteArray.utf8DecodeChar?_utf8EncodeChar_append - cargo fmt and clippy fixes in the shard examples
- publish the blake3 precompile fork, fix the SP1 guest build, and document proving - add CI
1076c91 to
73be557
Compare
- vk_codec: drop the always-Ok `Result` wrapper from `to_bytes` (clippy `unnecessary_wraps`); callers updated. - README: document the Zisk shard-proving path — profile → shard → prove via `--shard-plan`, and the resumable proof store (`--store-dir`/`--no-reuse`/`--require-closed`). - ci: scope the riscv-zkvm-execute job to `--only-const myReflEq` so it certifies one constant (Init deps become Claim assumptions) instead of typechecking all of Init, which never finished.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request adds RISC-V zkVM proving backends for the Rust kernel — Zisk as the primary target (single process, single GPU), SP1 as an experimental alternative — together with the host pipeline that makes whole-environment Ix proving practical: RAM-aware sharding, tree aggregation with in-circuit assumption discharge, and cross-run proof reuse. Guest runs are validated by the shard's committed
failurespublics word; cycle counts are deterministicziskemustep counts.Key Results
.ixesmanifest) → leaf proofs → tree-aligned aggregation to a single proof with no dangling assumptionsByteArray.utf8DecodeChar?_utf8EncodeChar_append— the most expensive proof inInit— provable via theNatSuccMode::Stuckcache