From 42f683ef29036c171e5afa05f4d57335acce6ddc Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 6 Jul 2026 15:24:30 +0200 Subject: [PATCH] fix: undo prove feature - install external prover --- .github/actions/install-r0vm/action.yml | 36 + .github/actions/setup-afl/action.yml | 4 + .github/actions/setup-libfuzzer/action.yml | 6 +- .github/workflows/mutants.yml | 5 + fuzz/Cargo.lock | 774 +-------------------- fuzz_props/Cargo.toml | 11 +- 6 files changed, 80 insertions(+), 756 deletions(-) create mode 100644 .github/actions/install-r0vm/action.yml diff --git a/.github/actions/install-r0vm/action.yml b/.github/actions/install-r0vm/action.yml new file mode 100644 index 000000000..07c69a60a --- /dev/null +++ b/.github/actions/install-r0vm/action.yml @@ -0,0 +1,36 @@ +name: Install r0vm +description: > + Install the risc0 `r0vm` executor binary (via rzup) at the version matching the + `risc0-zkvm` crate. The fuzz targets are built WITHOUT the risc0 `prove` feature + (which would add ~45 min of prover-kernel compilation), so `Program::execute` runs + the guest through risc0's `ExternalProver`, which spawns this `r0vm` binary. Without + it, every public-transaction execution fails with ENOENT and is spuriously rejected — + which surfaces as a `ModelAcceptanceAgreement` crash in the lockstep target. + +inputs: + version: + description: > + r0vm version to install. MUST match the `risc0-zkvm` crate version — risc0 looks + up r0vm by exact version via rzup, and checks major/minor server compatibility. + required: false + default: "3.0.5" + +runs: + using: composite + steps: + - name: Install rzup and r0vm ${{ inputs.version }} + shell: bash + env: + # Authenticate rzup's GitHub release lookups to avoid unauthenticated rate limits. + GITHUB_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + curl -L https://risczero.com/install | bash + RZUP="$HOME/.risc0/bin/rzup" + # Install only r0vm (not the guest rust/cpp toolchains) at the pinned version. + "$RZUP" install r0vm "${{ inputs.version }}" + # risc0-zkvm resolves r0vm through the rzup home (~/.risc0); rzup also symlinks + # the binary into ~/.cargo/bin. Export both onto PATH for good measure. + echo "$HOME/.risc0/bin" >> "$GITHUB_PATH" + echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" + "$HOME/.cargo/bin/r0vm" --version || "$RZUP" show diff --git a/.github/actions/setup-afl/action.yml b/.github/actions/setup-afl/action.yml index 65ef59d7b..2946f274c 100644 --- a/.github/actions/setup-afl/action.yml +++ b/.github/actions/setup-afl/action.yml @@ -33,3 +33,7 @@ runs: - name: Install cargo-afl shell: bash run: cargo install cargo-afl --locked + + # The fuzz targets execute guest programs via risc0's ExternalProver, which needs r0vm. + - name: Install r0vm + uses: ./.github/actions/install-r0vm diff --git a/.github/actions/setup-libfuzzer/action.yml b/.github/actions/setup-libfuzzer/action.yml index 3a22d8655..a9b14b91a 100644 --- a/.github/actions/setup-libfuzzer/action.yml +++ b/.github/actions/setup-libfuzzer/action.yml @@ -1,7 +1,7 @@ name: Set up libFuzzer toolchain description: > Install the Rust nightly toolchain (with llvm-tools-preview, required by - cargo-fuzz and llvm-cov) and cargo-fuzz itself. The repository and + cargo-fuzz and llvm-cov), cargo-fuzz, and the r0vm executor. The repository and logos-execution-zone must already be checked out before this runs. runs: @@ -15,3 +15,7 @@ runs: - name: Install cargo-fuzz shell: bash run: cargo install cargo-fuzz + + # The fuzz targets execute guest programs via risc0's ExternalProver, which needs r0vm. + - name: Install r0vm + uses: ./.github/actions/install-r0vm diff --git a/.github/workflows/mutants.yml b/.github/workflows/mutants.yml index 825fff561..27c03314c 100644 --- a/.github/workflows/mutants.yml +++ b/.github/workflows/mutants.yml @@ -136,6 +136,11 @@ jobs: cargo install cargo-fuzz --locked cargo install cargo-mutants --locked + # The corpus oracle runs the fuzz targets, which execute guest programs via + # risc0's ExternalProver — that needs the r0vm binary. + - name: Install r0vm + uses: ./.github/actions/install-r0vm + - name: Make corpus-regression wrapper executable run: chmod +x scripts/mutants-corpus-test.sh diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock index 784407262..4d9382134 100644 --- a/fuzz/Cargo.lock +++ b/fuzz/Cargo.lock @@ -2,33 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addchain" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e33f6a175ec6a9e0aca777567f9ff7c3deefc255660df887e7fa3585e9801d8" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "cpp_demangle", - "fallible-iterator", - "gimli", - "memmap2", - "object", - "rustc-demangle", - "smallvec", - "typed-arena", -] - [[package]] name = "adler2" version = "2.0.1" @@ -202,7 +175,7 @@ dependencies = [ "fnv", "hashbrown 0.15.5", "itertools 0.13.0", - "num-bigint 0.4.6", + "num-bigint", "num-integer", "num-traits", "zeroize", @@ -222,7 +195,7 @@ dependencies = [ "digest 0.10.7", "educe", "itertools 0.13.0", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "paste", "zeroize", @@ -244,7 +217,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-traits", "proc-macro2", "quote", @@ -292,7 +265,7 @@ dependencies = [ "ark-relations", "ark-std", "educe", - "num-bigint 0.4.6", + "num-bigint", "num-integer", "num-traits", "tracing", @@ -320,7 +293,7 @@ dependencies = [ "ark-std", "arrayvec", "digest 0.10.7", - "num-bigint 0.4.6", + "num-bigint", ] [[package]] @@ -516,15 +489,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "atomic-polyfill" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" -dependencies = [ - "critical-section", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -726,18 +690,6 @@ version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" -[[package]] -name = "bitvec" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - [[package]] name = "blake2" version = "0.10.6" @@ -1112,15 +1064,6 @@ dependencies = [ "libc", ] -[[package]] -name = "cpp_demangle" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253" -dependencies = [ - "cfg-if", -] - [[package]] name = "cpufeatures" version = "0.2.17" @@ -1148,12 +1091,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -1163,16 +1100,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - [[package]] name = "crossbeam-epoch" version = "0.9.18" @@ -1399,7 +1326,7 @@ dependencies = [ "asn1-rs", "displaydoc", "nom 7.1.3", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "rusticata-macros", ] @@ -1510,15 +1437,6 @@ dependencies = [ "crypto-common 0.2.2", ] -[[package]] -name = "directories" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d" -dependencies = [ - "dirs-sys", -] - [[package]] name = "dirs" version = "6.0.0" @@ -1574,20 +1492,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" -[[package]] -name = "downloader" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac1e888d6830712d565b2f3a974be3200be9296bc1b03db8251a4cbf18a4a34" -dependencies = [ - "digest 0.10.7", - "futures", - "rand 0.8.6", - "reqwest", - "thiserror 1.0.69", - "tokio", -] - [[package]] name = "dtoa" version = "1.0.11" @@ -1730,26 +1634,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "enum-map" -version = "2.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" -dependencies = [ - "enum-map-derive", -] - -[[package]] -name = "enum-map-derive" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "enum-ordinalize" version = "4.3.2" @@ -1776,17 +1660,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" -[[package]] -name = "erased-serde" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" -dependencies = [ - "serde", - "serde_core", - "typeid", -] - [[package]] name = "errno" version = "0.3.14" @@ -1818,12 +1691,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "fallible-iterator" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" - [[package]] name = "fastrand" version = "2.4.1" @@ -1855,28 +1722,10 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ - "bitvec", - "byteorder", - "ff_derive", "rand_core 0.6.4", "subtle", ] -[[package]] -name = "ff_derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" -dependencies = [ - "addchain", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "fiat-crypto" version = "0.2.9" @@ -1957,12 +1806,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - [[package]] name = "futures" version = "0.3.32" @@ -2121,30 +1964,6 @@ dependencies = [ "testnet_initial_state", ] -[[package]] -name = "gdbstub" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bafc7e33650ab9f05dcc16325f05d56b8d10393114e31a19a353b86fa60cfe7" -dependencies = [ - "bitflags 2.13.0", - "cfg-if", - "log", - "managed", - "num-traits", - "pastey", -] - -[[package]] -name = "gdbstub_arch" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c02bfe7bd65f42bcda751456869dfa1eb2bd1c36e309b9ec27f4888d41cf258" -dependencies = [ - "gdbstub", - "num-traits", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -2216,23 +2035,6 @@ dependencies = [ "polyval", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" -dependencies = [ - "fallible-iterator", - "indexmap 2.14.0", - "stable_deref_trait", -] - -[[package]] -name = "glob" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - [[package]] name = "group" version = "0.13.0" @@ -2263,15 +2065,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "hash32" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" -dependencies = [ - "byteorder", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -2322,20 +2115,6 @@ dependencies = [ "hashbrown 0.15.5", ] -[[package]] -name = "heapless" -version = "0.7.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" -dependencies = [ - "atomic-polyfill", - "hash32", - "rustc_version", - "serde", - "spin", - "stable_deref_trait", -] - [[package]] name = "heck" version = "0.5.0" @@ -2867,15 +2646,6 @@ dependencies = [ "hybrid-array", ] -[[package]] -name = "inventory" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b" -dependencies = [ - "rustversion", -] - [[package]] name = "ipconfig" version = "0.3.4" @@ -2904,15 +2674,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.13.0" @@ -3132,26 +2893,6 @@ dependencies = [ "cc", ] -[[package]] -name = "liblzma" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6033b77c21d1f56deeae8014eb9fbe7bdf1765185a6c508b5ca82eeaed7f899" -dependencies = [ - "liblzma-sys", -] - -[[package]] -name = "liblzma-sys" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a60851d15cd8c5346eca4ab8babff585be2ae4bc8097c067291d3ffe2add3b6" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "libm" version = "0.2.16" @@ -3572,7 +3313,7 @@ checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" dependencies = [ "ark-bn254", "ark-ff", - "num-bigint 0.4.6", + "num-bigint", "thiserror 1.0.69", ] @@ -3655,7 +3396,7 @@ dependencies = [ "logos-blockchain-poq", "logos-blockchain-poseidon2", "logos-blockchain-utils", - "num-bigint 0.4.6", + "num-bigint", "serde", "thiserror 2.0.18", "zeroize", @@ -3831,7 +3572,7 @@ dependencies = [ "logos-blockchain-utxotree", "multiaddr", "nom 8.0.0", - "num-bigint 0.4.6", + "num-bigint", "rpds", "serde", "strum", @@ -3886,7 +3627,7 @@ dependencies = [ "ark-serialize", "generic-array 1.4.3", "hex", - "num-bigint 0.4.6", + "num-bigint", "serde", "serde_json", "thiserror 2.0.18", @@ -3929,7 +3670,7 @@ dependencies = [ "logos-blockchain-poseidon2", "logos-blockchain-utils", "logos-blockchain-zksign", - "num-bigint 0.4.6", + "num-bigint", "rand_core 0.6.4", "serde", "subtle", @@ -3967,7 +3708,7 @@ dependencies = [ "logos-blockchain-pol", "logos-blockchain-utils", "logos-blockchain-utxotree", - "num-bigint 0.4.6", + "num-bigint", "rand 0.8.6", "rpds", "serde", @@ -4068,7 +3809,7 @@ dependencies = [ "logos-blockchain-groth16", "logos-blockchain-log-targets", "logos-blockchain-proofs-error", - "num-bigint 0.4.6", + "num-bigint", "serde", "serde_json", "tracing", @@ -4087,7 +3828,7 @@ dependencies = [ "logos-blockchain-log-targets", "logos-blockchain-proofs-error", "logos-blockchain-utils", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "serde", "serde_json", @@ -4106,7 +3847,7 @@ dependencies = [ "logos-blockchain-log-targets", "logos-blockchain-pol", "logos-blockchain-proofs-error", - "num-bigint 0.4.6", + "num-bigint", "serde", "serde_json", "thiserror 2.0.18", @@ -4121,7 +3862,7 @@ dependencies = [ "ark-bn254", "ark-ff", "jf-poseidon2", - "num-bigint 0.4.6", + "num-bigint", ] [[package]] @@ -4249,7 +3990,7 @@ dependencies = [ "ark-ff", "logos-blockchain-groth16", "logos-blockchain-poseidon2", - "num-bigint 0.4.6", + "num-bigint", "rpds", "serde", "thiserror 2.0.18", @@ -4267,7 +4008,7 @@ dependencies = [ "logos-blockchain-log-targets", "logos-blockchain-poseidon2", "logos-blockchain-proofs-error", - "num-bigint 0.4.6", + "num-bigint", "serde", "serde_json", "thiserror 2.0.18", @@ -4299,64 +4040,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" -[[package]] -name = "malachite" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fbdf9cb251732db30a7200ebb6ae5d22fe8e11397364416617d2c2cf0c51cb5" -dependencies = [ - "malachite-base", - "malachite-float", - "malachite-nz", - "malachite-q", -] - -[[package]] -name = "malachite-base" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea0ed76adf7defc1a92240b5c36d5368cfe9251640dcce5bd2d0b7c1fd87aeb" -dependencies = [ - "hashbrown 0.14.5", - "itertools 0.11.0", - "libm", - "ryu", -] - -[[package]] -name = "malachite-float" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af9d20db1c73759c1377db7b27575df6f2eab7368809dd62c0a715dc1bcc39f7" -dependencies = [ - "itertools 0.11.0", - "malachite-base", - "malachite-nz", - "malachite-q", -] - -[[package]] -name = "malachite-nz" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34a79feebb2bc9aa7762047c8e5495269a367da6b5a90a99882a0aeeac1841f7" -dependencies = [ - "itertools 0.11.0", - "libm", - "malachite-base", -] - -[[package]] -name = "malachite-q" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f235d5747b1256b47620f5640c2a17a88c7569eebdf27cd9cb130e1a619191" -dependencies = [ - "itertools 0.11.0", - "malachite-base", - "malachite-nz", -] - [[package]] name = "malloc_buf" version = "0.0.6" @@ -4366,12 +4049,6 @@ dependencies = [ "libc", ] -[[package]] -name = "managed" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" - [[package]] name = "match-lookup" version = "0.1.2" @@ -4404,16 +4081,6 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" -[[package]] -name = "matrixmultiply" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" -dependencies = [ - "autocfg", - "rawpointer", -] - [[package]] name = "maybe-async" version = "0.2.11" @@ -4431,15 +4098,6 @@ version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" -[[package]] -name = "memmap2" -version = "0.9.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0" -dependencies = [ - "libc", -] - [[package]] name = "merlin" version = "3.0.0" @@ -4609,22 +4267,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "ndarray" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "882ed72dce9365842bf196bdeedf5055305f11fc8c03dee7bb0194a6cad34841" -dependencies = [ - "matrixmultiply", - "num-complex", - "num-integer", - "num-traits", - "portable-atomic", - "portable-atomic-util", - "rawpointer", - "rayon", -] - [[package]] name = "netdev" version = "0.31.0" @@ -4773,17 +4415,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.4.6" @@ -4810,32 +4441,12 @@ dependencies = [ "zeroize", ] -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - [[package]] name = "num-conv" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "num-integer" version = "0.1.46" @@ -4887,15 +4498,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "nvtx" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2e855e8019f99e4b94ac33670eb4e4f570a2e044f3749a0b2c7f83b841e52c" -dependencies = [ - "cc", -] - [[package]] name = "objc" version = "0.2.7" @@ -4905,17 +4507,6 @@ dependencies = [ "malloc_buf", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "flate2", - "memchr", - "ruzstd", -] - [[package]] name = "oid-registry" version = "0.8.1" @@ -5097,12 +4688,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pastey" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" - [[package]] name = "pem" version = "3.0.6" @@ -5185,12 +4770,6 @@ dependencies = [ "spki 0.8.0", ] -[[package]] -name = "pkg-config" -version = "0.3.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" - [[package]] name = "polling" version = "3.11.0" @@ -5223,15 +4802,6 @@ version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" -[[package]] -name = "portable-atomic-util" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" -dependencies = [ - "portable-atomic", -] - [[package]] name = "postcard" version = "1.1.3" @@ -5241,7 +4811,6 @@ dependencies = [ "cobs", "embedded-io 0.4.0", "embedded-io 0.6.1", - "heapless", "serde", ] @@ -5450,20 +5019,6 @@ dependencies = [ "prost 0.13.5", ] -[[package]] -name = "puffin" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9dae7b05c02ec1a6bc9bcf20d8bc64a7dcbf57934107902a872014899b741f" -dependencies = [ - "anyhow", - "byteorder", - "cfg-if", - "itertools 0.10.5", - "once_cell", - "parking_lot", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -5569,12 +5124,6 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - [[package]] name = "rand" version = "0.8.6" @@ -5649,32 +5198,6 @@ dependencies = [ "rand_core 0.9.5", ] -[[package]] -name = "rawpointer" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" - -[[package]] -name = "rayon" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - [[package]] name = "rcgen" version = "0.13.2" @@ -5830,12 +5353,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "ringbuffer" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df6368f71f205ff9c33c076d170dd56ebf68e8161c733c0caa07a7a5509ed53" - [[package]] name = "risc0-binfmt" version = "3.0.4" @@ -5882,20 +5399,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "risc0-build-kernel" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaaa3e04c71e4244354dd9e3f8b89378cfecfbb03f9c72de4e2e7e0482b30c9a" -dependencies = [ - "cc", - "directories", - "hex", - "rayon", - "sha2", - "tempfile", -] - [[package]] name = "risc0-circuit-keccak" version = "4.0.5" @@ -5904,34 +5407,14 @@ checksum = "5f543c60287fece797a5da4209384ab1bfebd9644fcfe591e11b1aa85f1a02f8" dependencies = [ "anyhow", "bytemuck", - "cfg-if", - "keccak 0.1.6", - "liblzma", "paste", - "rayon", "risc0-binfmt", - "risc0-circuit-keccak-sys", "risc0-circuit-recursion", "risc0-core", - "risc0-sys", "risc0-zkp", "tracing", ] -[[package]] -name = "risc0-circuit-keccak-sys" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8eae53a7bf1c09828dfd46ed5c942cefbf4bef3c4400f6758001569a834c462" -dependencies = [ - "cc", - "derive_more", - "glob", - "risc0-build-kernel", - "risc0-core", - "risc0-sys", -] - [[package]] name = "risc0-circuit-recursion" version = "4.0.4" @@ -5940,33 +5423,11 @@ checksum = "2347e909c6b2a65584b5898f3802eec5b8c1b4b45329edfdd8587b6a04dd3357" dependencies = [ "anyhow", "bytemuck", - "cfg-if", - "downloader", "hex", - "lazy-regex", "metal", - "rand 0.9.4", - "rayon", - "risc0-circuit-recursion-sys", "risc0-core", - "risc0-sys", "risc0-zkp", - "serde", - "sha2", "tracing", - "zip", -] - -[[package]] -name = "risc0-circuit-recursion-sys" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "132be7ccca4b39ec957cc37d5083ca2aee171407922352002c9812452a890b39" -dependencies = [ - "glob", - "risc0-build-kernel", - "risc0-core", - "risc0-sys", ] [[package]] @@ -5978,43 +5439,13 @@ dependencies = [ "anyhow", "bit-vec", "bytemuck", - "byteorder", - "cfg-if", "derive_more", - "enum-map", - "gdbstub", - "gdbstub_arch", - "malachite", - "num-derive", - "num-traits", "paste", - "postcard", - "rand 0.9.4", - "rayon", - "ringbuffer", "risc0-binfmt", - "risc0-circuit-rv32im-sys", "risc0-core", - "risc0-sys", "risc0-zkp", "serde", - "smallvec", "tracing", - "wide", -] - -[[package]] -name = "risc0-circuit-rv32im-sys" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d677ec41e475534e18e58889ef0626dcdabf5e918804ef847da0c0bbf300b3" -dependencies = [ - "cc", - "derive_more", - "glob", - "risc0-build-kernel", - "risc0-core", - "risc0-sys", ] [[package]] @@ -6024,8 +5455,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5b956a976b8ce4713694dcc6c370b522a42ccef4ba45da5b6e57dbf26cdb7b1" dependencies = [ "bytemuck", - "nvtx", - "puffin", "rand_core 0.9.5", ] @@ -6042,28 +5471,12 @@ dependencies = [ "ark-groth16", "ark-serialize", "bytemuck", - "cfg-if", "hex", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "risc0-binfmt", - "risc0-core", "risc0-zkp", - "rzup", "serde", - "serde_json", - "tempfile", - "tracing", -] - -[[package]] -name = "risc0-sys" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960c8295fbb87e1e73e332f8f7de2fba0252377575042d9d3e9a4eb50a38e078" -dependencies = [ - "anyhow", - "risc0-build-kernel", ] [[package]] @@ -6089,18 +5502,12 @@ dependencies = [ "bytemuck", "cfg-if", "digest 0.10.7", - "ff", "hex", "hex-literal", "metal", - "ndarray", - "parking_lot", "paste", - "rand 0.9.4", "rand_core 0.9.5", - "rayon", "risc0-core", - "risc0-sys", "risc0-zkvm-platform", "serde", "sha2", @@ -6114,7 +5521,6 @@ version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22b7eafb5d85be59cbd9da83f662cf47d834f1b836e14f675d1530b12c666867" dependencies = [ - "addr2line", "anyhow", "bincode", "bonsai-sdk", @@ -6122,20 +5528,9 @@ dependencies = [ "bytemuck", "bytes", "derive_more", - "elf", - "enum-map", - "gdbstub", - "gdbstub_arch", - "gimli", "hex", - "keccak 0.1.6", "lazy-regex", - "num-bigint 0.4.6", - "num-traits", - "object", "prost 0.13.5", - "rand 0.9.4", - "rayon", "risc0-binfmt", "risc0-build", "risc0-circuit-keccak", @@ -6147,7 +5542,6 @@ dependencies = [ "risc0-zkp", "risc0-zkvm-platform", "rrs-lib", - "rustc-demangle", "rzup", "semver", "serde", @@ -6155,7 +5549,6 @@ dependencies = [ "stability", "tempfile", "tracing", - "typetag", ] [[package]] @@ -6282,16 +5675,10 @@ dependencies = [ "anyhow", "cc", "chkstk_stub", - "num-bigint 0.4.6", + "num-bigint", "num-traits", ] -[[package]] -name = "rustc-demangle" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" - [[package]] name = "rustc-hash" version = "2.1.2" @@ -6383,15 +5770,6 @@ dependencies = [ "wait-timeout", ] -[[package]] -name = "ruzstd" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad02996bfc73da3e301efe90b1837be9ed8f4a462b6ed410aa35d00381de89f" -dependencies = [ - "twox-hash", -] - [[package]] name = "rw-stream-sink" version = "0.4.0" @@ -6428,15 +5806,6 @@ dependencies = [ "yaml-rust2", ] -[[package]] -name = "safe_arch" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" -dependencies = [ - "bytemuck", -] - [[package]] name = "schemars" version = "0.9.0" @@ -6766,9 +6135,6 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] [[package]] name = "spki" @@ -6960,12 +6326,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - [[package]] name = "tar" version = "0.4.46" @@ -7505,58 +6865,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "twox-hash" -version = "1.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" -dependencies = [ - "cfg-if", - "static_assertions", -] - -[[package]] -name = "typed-arena" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" - -[[package]] -name = "typeid" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" - [[package]] name = "typenum" version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" -[[package]] -name = "typetag" -version = "0.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a897b12c6c1151ad0b138b8db50252dc301f93bc3b027db05eec82aeed298c" -dependencies = [ - "erased-serde", - "inventory", - "once_cell", - "serde", - "typetag-impl", -] - -[[package]] -name = "typetag-impl" -version = "0.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf808357c6ed7e13ba0f3277ec8d8f21b2d501274895104263985330c726c1c5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "uint" version = "0.10.0" @@ -7897,16 +7211,6 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "wide" -version = "0.7.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" -dependencies = [ - "bytemuck", - "safe_arch", -] - [[package]] name = "widestring" version = "1.2.1" @@ -8251,15 +7555,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - [[package]] name = "x25519-dalek" version = "2.0.1" @@ -8457,37 +7752,8 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "zip" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" -dependencies = [ - "arbitrary", - "crc32fast", - "crossbeam-utils", - "displaydoc", - "flate2", - "indexmap 2.14.0", - "memchr", - "thiserror 2.0.18", - "zopfli", -] - [[package]] name = "zmij" version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" - -[[package]] -name = "zopfli" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" -dependencies = [ - "bumpalo", - "crc32fast", - "log", - "simd-adler32", -] diff --git a/fuzz_props/Cargo.toml b/fuzz_props/Cargo.toml index 438513800..392d6d258 100644 --- a/fuzz_props/Cargo.toml +++ b/fuzz_props/Cargo.toml @@ -11,7 +11,14 @@ fuzzer-libfuzzer = [] fuzzer-afl = [] [dependencies] -nssa = { workspace = true, features = ["prove"] } +# NOTE: `prove` is deliberately NOT enabled here. Enabling it drags risc0's STARK +# prover backend (C++/CUDA kernels + heavy circuit codegen) into the fuzz-target +# build, blowing "cargo fuzz build" from ~6 min to ~50 min — all to compile a prover +# that `Program::execute` never calls (it executes, it does not prove). Instead the +# fuzz targets use risc0's `ExternalProver`, which runs the guest via an external +# `r0vm` binary installed in CI (see .github/actions/install-r0vm). It is still +# enabled under [dev-dependencies] so `cargo test` runs the guest in-process. +nssa = { workspace = true } nssa_core = { workspace = true } common = { workspace = true } borsh = { workspace = true } @@ -28,3 +35,5 @@ system_accounts = { workspace = true } [dev-dependencies] proptest = "1.4" +# In-process guest execution for the test suite (no external r0vm needed under `cargo test`). +nssa = { workspace = true, features = ["prove"] }