From fd985bf542b99decefd8d83356235cbffff60d4e Mon Sep 17 00:00:00 2001 From: Han Date: Tue, 30 Dec 2025 21:01:10 +0900 Subject: [PATCH] Update zkVMs (#259) --- .github/scripts/fetch-zkvm-version.sh | 2 +- Cargo.lock | 296 ++++++++++-------- Cargo.toml | 26 +- README.md | 12 +- .../airbender/src/compiler/rust_rv32ima.rs | 2 +- crates/zkvm/openvm/Cargo.toml | 3 + crates/zkvm/openvm/src/zkvm.rs | 3 + crates/zkvm/pico/src/compiler/rust_rv32ima.rs | 2 +- crates/zkvm/pico/src/zkvm/sdk.rs | 2 +- crates/zkvm/sp1/src/zkvm.rs | 2 +- docker/miden/Dockerfile.base | 2 +- docker/openvm/Dockerfile.server | 5 + docker/sp1/Dockerfile.base | 2 +- .../sdk_installers/install_airbender_sdk.sh | 2 +- scripts/sdk_installers/install_nexus_sdk.sh | 7 +- scripts/sdk_installers/install_pico_sdk.sh | 2 +- tests/airbender/basic/src/asm_reduced.S | 2 +- .../pico/stock_nightly_no_std/src/pico_rt.rs | 4 +- 18 files changed, 209 insertions(+), 167 deletions(-) diff --git a/.github/scripts/fetch-zkvm-version.sh b/.github/scripts/fetch-zkvm-version.sh index a637a8a..661510a 100755 --- a/.github/scripts/fetch-zkvm-version.sh +++ b/.github/scripts/fetch-zkvm-version.sh @@ -33,7 +33,7 @@ get_crates_io_latest() { curl -sL -A "EreCI" "https://crates.io/api/v1/crates/$crate" | grep -oP '"max_version":"\K[^"]+' } -LINE=$(grep "$CRATE" Cargo.toml) +LINE=$(grep "$CRATE = " Cargo.toml) if echo "$LINE" | grep -q "git ="; then # Dependency from github.com diff --git a/Cargo.lock b/Cargo.lock index 13da385..decbbb9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1790,7 +1790,7 @@ dependencies = [ [[package]] name = "bigint_with_control" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "prover", "serde", @@ -1976,7 +1976,7 @@ dependencies = [ [[package]] name = "blake2_with_compression" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "prover", "serde", @@ -1998,7 +1998,7 @@ dependencies = [ [[package]] name = "blake2s_u32" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "unroll", ] @@ -2426,7 +2426,7 @@ dependencies = [ [[package]] name = "circuit_common" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "fft", "field", @@ -2899,7 +2899,7 @@ dependencies = [ [[package]] name = "cs" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "arrayvec", "bincode 1.3.3", @@ -3797,7 +3797,7 @@ dependencies = [ [[package]] name = "ere-airbender" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "bincode 2.0.1", @@ -3814,14 +3814,14 @@ dependencies = [ [[package]] name = "ere-build-utils" -version = "0.0.15" +version = "0.0.16" dependencies = [ "cargo_metadata 0.19.2", ] [[package]] name = "ere-common" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-build-utils", "serde", @@ -3830,7 +3830,7 @@ dependencies = [ [[package]] name = "ere-compile-utils" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "cargo_metadata 0.19.2", @@ -3840,7 +3840,7 @@ dependencies = [ [[package]] name = "ere-compiler" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "bincode 2.0.1", @@ -3864,7 +3864,7 @@ dependencies = [ [[package]] name = "ere-dockerized" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "ere-common", @@ -3882,7 +3882,7 @@ dependencies = [ [[package]] name = "ere-io" -version = "0.0.15" +version = "0.0.16" dependencies = [ "bincode 2.0.1", "ciborium", @@ -3893,7 +3893,7 @@ dependencies = [ [[package]] name = "ere-jolt" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "ark-serialize 0.5.0", @@ -3911,7 +3911,7 @@ dependencies = [ [[package]] name = "ere-miden" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "ere-build-utils", @@ -3929,7 +3929,7 @@ dependencies = [ [[package]] name = "ere-nexus" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "bincode 2.0.1", @@ -3948,7 +3948,7 @@ dependencies = [ [[package]] name = "ere-openvm" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "ere-build-utils", @@ -3969,7 +3969,7 @@ dependencies = [ [[package]] name = "ere-pico" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "bincode 2.0.1", @@ -3988,7 +3988,7 @@ dependencies = [ [[package]] name = "ere-platform-airbender" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-platform-trait", "riscv_common", @@ -3996,7 +3996,7 @@ dependencies = [ [[package]] name = "ere-platform-jolt" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-platform-trait", "jolt-sdk", @@ -4005,7 +4005,7 @@ dependencies = [ [[package]] name = "ere-platform-nexus" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-platform-trait", "nexus-rt", @@ -4013,7 +4013,7 @@ dependencies = [ [[package]] name = "ere-platform-openvm" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-platform-trait", "openvm", @@ -4021,7 +4021,7 @@ dependencies = [ [[package]] name = "ere-platform-pico" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-platform-trait", "pico-sdk", @@ -4029,7 +4029,7 @@ dependencies = [ [[package]] name = "ere-platform-risc0" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-platform-trait", "risc0-zkvm", @@ -4038,7 +4038,7 @@ dependencies = [ [[package]] name = "ere-platform-sp1" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-platform-trait", "sp1-zkvm", @@ -4046,14 +4046,14 @@ dependencies = [ [[package]] name = "ere-platform-trait" -version = "0.0.15" +version = "0.0.16" dependencies = [ "digest 0.10.7", ] [[package]] name = "ere-platform-ziren" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-platform-trait", "zkm-zkvm", @@ -4061,7 +4061,7 @@ dependencies = [ [[package]] name = "ere-platform-zisk" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-platform-trait", "ziskos", @@ -4069,7 +4069,7 @@ dependencies = [ [[package]] name = "ere-risc0" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "bincode 2.0.1", @@ -4089,7 +4089,7 @@ dependencies = [ [[package]] name = "ere-server" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "bincode 2.0.1", @@ -4120,7 +4120,7 @@ dependencies = [ [[package]] name = "ere-sp1" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "bincode 2.0.1", @@ -4137,7 +4137,7 @@ dependencies = [ [[package]] name = "ere-test-utils" -version = "0.0.15" +version = "0.0.16" dependencies = [ "ere-io", "ere-platform-trait", @@ -4150,7 +4150,7 @@ dependencies = [ [[package]] name = "ere-ziren" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "bincode 2.0.1", @@ -4166,7 +4166,7 @@ dependencies = [ [[package]] name = "ere-zisk" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "blake3", @@ -4185,7 +4185,7 @@ dependencies = [ [[package]] name = "ere-zkvm-interface" -version = "0.0.15" +version = "0.0.16" dependencies = [ "anyhow", "auto_impl", @@ -4540,7 +4540,7 @@ dependencies = [ [[package]] name = "execution_utils" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "clap", "risc_v_simulator", @@ -4636,7 +4636,7 @@ dependencies = [ [[package]] name = "fft" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "field", "itertools 0.14.0", @@ -4656,7 +4656,7 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "field" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "rand 0.9.2", "seq-macro", @@ -4666,7 +4666,7 @@ dependencies = [ [[package]] name = "final_reduced_risc_v_machine" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "circuit_common", "prover", @@ -5344,6 +5344,15 @@ dependencies = [ "byteorder", ] +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -5398,13 +5407,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" dependencies = [ "atomic-polyfill", - "hash32", + "hash32 0.2.1", "rustc_version 0.4.1", "serde", "spin 0.9.8", "stable_deref_trait", ] +[[package]] +name = "heapless" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af2455f757db2b292a9b1768c4b70186d443bcb3b316252d6b540aec1cd89ed" +dependencies = [ + "hash32 0.3.1", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.4.1" @@ -6619,7 +6638,7 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "machine_without_signed_mul_div" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "circuit_common", "prover", @@ -6859,8 +6878,8 @@ dependencies = [ [[package]] name = "miden-air" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "miden-core", "miden-utils-indexing", @@ -6871,8 +6890,8 @@ dependencies = [ [[package]] name = "miden-assembly" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "log", "miden-assembly-syntax", @@ -6884,8 +6903,8 @@ dependencies = [ [[package]] name = "miden-assembly-syntax" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "aho-corasick", "lalrpop 0.22.2", @@ -6905,8 +6924,8 @@ dependencies = [ [[package]] name = "miden-core" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "derive_more 2.0.1", "itertools 0.14.0", @@ -6924,8 +6943,8 @@ dependencies = [ [[package]] name = "miden-core-lib" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "env_logger", "fs-err", @@ -6982,8 +7001,8 @@ dependencies = [ [[package]] name = "miden-debug-types" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "memchr", "miden-crypto", @@ -7008,8 +7027,8 @@ dependencies = [ [[package]] name = "miden-mast-package" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "derive_more 2.0.1", "miden-assembly-syntax", @@ -7061,8 +7080,8 @@ dependencies = [ [[package]] name = "miden-processor" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "itertools 0.14.0", "miden-air", @@ -7080,8 +7099,8 @@ dependencies = [ [[package]] name = "miden-prover" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "miden-air", "miden-debug-types", @@ -7093,8 +7112,8 @@ dependencies = [ [[package]] name = "miden-utils-core-derive" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "proc-macro2", "quote", @@ -7103,8 +7122,8 @@ dependencies = [ [[package]] name = "miden-utils-diagnostics" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "miden-crypto", "miden-debug-types", @@ -7115,16 +7134,16 @@ dependencies = [ [[package]] name = "miden-utils-indexing" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "thiserror 2.0.12", ] [[package]] name = "miden-utils-sync" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "lock_api", "loom", @@ -7133,8 +7152,8 @@ dependencies = [ [[package]] name = "miden-verifier" -version = "0.20.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.0#17b785770a8630ce9a44a51525d620652c4bec28" +version = "0.20.1" +source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe" dependencies = [ "miden-air", "miden-core", @@ -7479,7 +7498,7 @@ dependencies = [ [[package]] name = "non_determinism_source" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" [[package]] name = "ntapi" @@ -8082,6 +8101,7 @@ dependencies = [ "getset", "itertools 0.14.0", "libc", + "libloading 0.8.7", "memmap2", "openvm-circuit-derive", "openvm-circuit-primitives", @@ -8091,6 +8111,7 @@ dependencies = [ "openvm-cuda-common", "openvm-instructions", "openvm-poseidon2-air", + "openvm-rv32im-transpiler", "openvm-stark-backend", "openvm-stark-sdk", "p3-baby-bear 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb)", @@ -8100,6 +8121,7 @@ dependencies = [ "serde", "serde-big-array", "static_assertions", + "tempfile", "thiserror 1.0.69", "tracing", ] @@ -10410,8 +10432,8 @@ dependencies = [ [[package]] name = "pico-derive" -version = "1.1.8" -source = "git+https://github.com/brevis-network/pico.git?tag=v1.2.0#76a3214ff447568909cd371a1cdab627cfee1335" +version = "1.2.2" +source = "git+https://github.com/brevis-network/pico.git?tag=v1.2.2#57ff6c5c0755f38bfa55a54eda053eae664ebcd2" dependencies = [ "proc-macro2", "quote", @@ -10420,8 +10442,8 @@ dependencies = [ [[package]] name = "pico-patch-libs" -version = "1.1.8" -source = "git+https://github.com/brevis-network/pico.git?tag=v1.2.0#76a3214ff447568909cd371a1cdab627cfee1335" +version = "1.2.2" +source = "git+https://github.com/brevis-network/pico.git?tag=v1.2.2#57ff6c5c0755f38bfa55a54eda053eae664ebcd2" dependencies = [ "bincode 1.3.3", "serde", @@ -10429,8 +10451,8 @@ dependencies = [ [[package]] name = "pico-sdk" -version = "1.1.8" -source = "git+https://github.com/brevis-network/pico.git?tag=v1.2.0#76a3214ff447568909cd371a1cdab627cfee1335" +version = "1.2.2" +source = "git+https://github.com/brevis-network/pico.git?tag=v1.2.2#57ff6c5c0755f38bfa55a54eda053eae664ebcd2" dependencies = [ "anyhow", "bincode 1.3.3", @@ -10455,8 +10477,8 @@ dependencies = [ [[package]] name = "pico-vm" -version = "1.1.8" -source = "git+https://github.com/brevis-network/pico.git?tag=v1.2.0#76a3214ff447568909cd371a1cdab627cfee1335" +version = "1.2.2" +source = "git+https://github.com/brevis-network/pico.git?tag=v1.2.2#57ff6c5c0755f38bfa55a54eda053eae664ebcd2" dependencies = [ "anyhow", "arrayref", @@ -10626,7 +10648,7 @@ dependencies = [ [[package]] name = "poseidon2" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "field", "non_determinism_source", @@ -10644,7 +10666,7 @@ dependencies = [ "crc", "embedded-io 0.4.0", "embedded-io 0.6.1", - "heapless", + "heapless 0.7.17", "paste", "serde", ] @@ -10928,7 +10950,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.12.1", "proc-macro2", "quote", "syn 2.0.101", @@ -10941,7 +10963,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.14.0", "proc-macro2", "quote", "syn 2.0.101", @@ -10977,7 +10999,7 @@ dependencies = [ [[package]] name = "prover" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "bit-set 0.8.0", "blake2s_u32", @@ -11359,7 +11381,7 @@ dependencies = [ [[package]] name = "reduced_risc_v_log_23_machine" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "circuit_common", "prover", @@ -11371,7 +11393,7 @@ dependencies = [ [[package]] name = "reduced_risc_v_machine" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "circuit_common", "prover", @@ -11632,6 +11654,12 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3df6368f71f205ff9c33c076d170dd56ebf68e8161c733c0caa07a7a5509ed53" +[[package]] +name = "ringbuffer" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b0b88a509053cbfd535726dcaaceee631313cef981266119527a1d110f6d2b" + [[package]] name = "ripemd" version = "0.1.3" @@ -11796,7 +11824,7 @@ dependencies = [ "postcard", "rand 0.9.2", "rayon", - "ringbuffer", + "ringbuffer 0.15.0", "risc0-binfmt", "risc0-circuit-rv32im-sys", "risc0-core", @@ -11983,7 +12011,7 @@ dependencies = [ [[package]] name = "risc_v_cycles" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "circuit_common", "prover", @@ -11995,7 +12023,7 @@ dependencies = [ [[package]] name = "risc_v_simulator" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "addr2line 0.22.0", "blake2s_u32", @@ -12006,7 +12034,7 @@ dependencies = [ "object 0.37.3", "poseidon2", "rand 0.9.2", - "ringbuffer", + "ringbuffer 0.16.0", "ruint", "serde", ] @@ -12014,9 +12042,9 @@ dependencies = [ [[package]] name = "riscv_common" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ - "heapless", + "heapless 0.9.2", ] [[package]] @@ -12856,7 +12884,7 @@ dependencies = [ [[package]] name = "setups" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "bigint_with_control", "blake2_with_compression", @@ -13073,9 +13101,9 @@ dependencies = [ [[package]] name = "sp1-build" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7bcc9e463a19749f6080f69ee6410aadda0576115d60bed68d2ebc2d8af3fe4" +checksum = "c6c620b00f468a4eeb6050d5641d971b35aa623d2142ecb55d02fd64840c5f02" dependencies = [ "anyhow", "cargo_metadata 0.18.1", @@ -13087,9 +13115,9 @@ dependencies = [ [[package]] name = "sp1-core-executor" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb8bc70057a88164e479e367e2f83f7e7fba52d66acfbeef3b2174dc98c3627" +checksum = "ca2363566d0d4213d0ffd93cfcc1a5e413e2af8682213d3e65b90ac0af5623e3" dependencies = [ "bincode 1.3.3", "bytemuck", @@ -13126,9 +13154,9 @@ dependencies = [ [[package]] name = "sp1-core-machine" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe446bea36feb189af83cda6ea5420150e877764e2ed4ab4cb2ee5cd3e20355c" +checksum = "1bd3ff75c100e24b89a7b513e082ec3e040c4c9f1cd779b6ba475c5bdc1aa7ad" dependencies = [ "bincode 1.3.3", "cbindgen", @@ -13182,9 +13210,9 @@ dependencies = [ [[package]] name = "sp1-cuda" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae79f89725c6e21dadb62be31a1c218292f5489559a848faf533419c722a3b3b" +checksum = "e7d3b98d9dd20856176aa7048e2da05d0c3e497f500ea8590292ffbd25002ec1" dependencies = [ "bincode 1.3.3", "ctrlc", @@ -13199,9 +13227,9 @@ dependencies = [ [[package]] name = "sp1-curves" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a7ce14c504360349f3eda564a0c9de286c35e1dfbcc979921a3384db02ae82" +checksum = "b7a5dc6007e0c1f35afe334e45531e17b8b347fdf73f6e7786ef5c1bc2218e30" dependencies = [ "cfg-if", "dashu", @@ -13221,9 +13249,9 @@ dependencies = [ [[package]] name = "sp1-derive" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1144840e0b75e988f3b8d24ffd015bc5fd76599f7864bfd994f3eaf2eb261a" +checksum = "83a1ed8d5acbb6cea056401791e79ca3cba7c7d5e17d0d44cd60e117f16b11ca" dependencies = [ "quote", "syn 1.0.109", @@ -13231,9 +13259,9 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1a9935d58cb1dcd757a1b10d727090f5b718f1f03b512d48f0c1952e6ead00" +checksum = "b73b8ff343f2405d5935440e56b7aba5cee6d87303f0051974cbd6f5de502f57" dependencies = [ "bincode 1.3.3", "elliptic-curve", @@ -13243,9 +13271,9 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d2a6187e394c30097ea7a975a4832f172918690dc89a979f0fad67422d3a8b" +checksum = "7e69a03098f827102c54c31a5e57280eb45b2c085de433b3f702e4f9e3ec1641" dependencies = [ "bincode 1.3.3", "blake3", @@ -13263,15 +13291,14 @@ dependencies = [ [[package]] name = "sp1-prover" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfc62e3139fdb1671067987f78ca85a24ea34dbc2f61dbbe3f92b9739e7aa2b9" +checksum = "b66f439f716cfc44c38d2aea975f1c4a9ed2cc40074ca7e4df8a37a3ff3795eb" dependencies = [ "anyhow", "bincode 1.3.3", "clap", "dirs 5.0.1", - "downloader", "enum-map", "eyre", "hashbrown 0.14.5", @@ -13288,6 +13315,7 @@ dependencies = [ "p3-symmetric 0.2.3-succinct", "p3-util 0.2.3-succinct", "rayon", + "reqwest 0.12.15", "serde", "serde_json", "serial_test", @@ -13309,9 +13337,9 @@ dependencies = [ [[package]] name = "sp1-recursion-circuit" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f16af7722bb0f7adabbfc0e60b7fe71ca546959d251c450afb79daaa589c56" +checksum = "9c4a3739e84f154becfc7d2a57d23c825ac83313feec64569b86090395c33fab" dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", @@ -13344,9 +13372,9 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c83564beb23361e0b93d64f3b8d4a503eac8ced246648f727d44b0827165014" +checksum = "06aa784cfdc5c979da22ad6c36fe393e9005b6b57702fa9bdd041f112ead5ec5" dependencies = [ "backtrace", "itertools 0.13.0", @@ -13366,9 +13394,9 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c209fa6e384ff56ea7761ccc65426da08516d72ae55b6d8e4021b58bd4022f8" +checksum = "5be0db07b18f95f4e04f63f7f12a6547efd10601e2ce180aaf7868aa1bd98257" dependencies = [ "backtrace", "cbindgen", @@ -13409,9 +13437,9 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8ca2e82fea312a406f4ad4cba1a11812da4cea806607c56ec1670fd55b2ea6" +checksum = "1b190465c0c0377f3cacfac2d0ac8a630adf8e1bfac8416be593753bfa4f668e" dependencies = [ "quote", "syn 1.0.109", @@ -13419,9 +13447,9 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e146d24ce91c08e36b270a73de9817b9847e759a3d66923b009c67f24a3b9b2" +checksum = "933ef703fb1c7a25e987a76ad705e60bb53730469766363b771baf3082a50fa0" dependencies = [ "anyhow", "bincode 1.3.3", @@ -13445,9 +13473,9 @@ dependencies = [ [[package]] name = "sp1-sdk" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9655067dcadba91f01491729cc78a60ad3a5ffaaf9adab817502f729ddb3761" +checksum = "ed3ae8bc52d12e8fbfdb10c4c8ce7651af04b63d390c152e6ce43d7744bbaf6f" dependencies = [ "alloy-primitives", "alloy-signer", @@ -13498,9 +13526,9 @@ dependencies = [ [[package]] name = "sp1-stark" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40477690a0bb6d7102322947407439a8f1d05aecd535f0081db05e9a31f808f2" +checksum = "0e99d1cc89ba28fc95736afb1e6ad22b9eb689e95a1dbb29cf0e9d1fa4fc2a5c" dependencies = [ "arrayref", "hashbrown 0.14.5", @@ -13532,9 +13560,9 @@ dependencies = [ [[package]] name = "sp1-verifier" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f95bd323fde5d19116873b29e5f8e20da371466d70185732bbfd3511ca0fd31" +checksum = "1904bbb3c2d16a7a11db32900f468149bc66253825e222f2db76f64fb8ffd1ab" dependencies = [ "blake3", "cfg-if", @@ -13547,9 +13575,9 @@ dependencies = [ [[package]] name = "sp1-zkvm" -version = "5.2.3" +version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e767ed85f89b1c8d84188c2cc035833079529bb0ddd8f7bd252de91ce562acc7" +checksum = "d6247de4d980d1f3311fa877cc5d2d3b7e111258878c8196a8bb9728aec98c8c" dependencies = [ "blake3", "cfg-if", @@ -14629,7 +14657,7 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "trace_and_split" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "prover", "serde", @@ -14641,7 +14669,7 @@ dependencies = [ [[package]] name = "trace_holder" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "field", "worker", @@ -14813,7 +14841,7 @@ dependencies = [ [[package]] name = "transcript" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "blake2s_u32", "unroll", @@ -15242,7 +15270,7 @@ dependencies = [ [[package]] name = "verifier_common" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "blake2s_u32", "cs", @@ -15258,7 +15286,7 @@ dependencies = [ [[package]] name = "verifier_generator" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "proc-macro-error2", "proc-macro2", @@ -16033,7 +16061,7 @@ dependencies = [ [[package]] name = "worker" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" +source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.2#b93c285d292891f3c27a3cf0110be09cde30ac4f" dependencies = [ "num_cpus", "rayon", diff --git a/Cargo.toml b/Cargo.toml index 1be3317..b933a1f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,7 +37,7 @@ members = [ resolver = "2" [workspace.package] -version = "0.0.15" +version = "0.0.16" edition = "2024" rust-version = "1.88" license = "MIT OR Apache-2.0" @@ -83,8 +83,8 @@ twirp-build = "0.9.0" wait-timeout = "0.2.1" # Airbender dependencies -airbender_execution_utils = { git = "https://github.com/matter-labs/zksync-airbender", package = "execution_utils", tag = "v0.5.1" } -airbender_riscv_common = { git = "https://github.com/matter-labs/zksync-airbender", package = "riscv_common", tag = "v0.5.1" } +airbender_execution_utils = { git = "https://github.com/matter-labs/zksync-airbender", package = "execution_utils", tag = "v0.5.2" } +airbender_riscv_common = { git = "https://github.com/matter-labs/zksync-airbender", package = "riscv_common", tag = "v0.5.2" } # Jolt dependencies jolt-ark-serialize = { git = "https://github.com/a16z/arkworks-algebra", package = "ark-serialize", branch = "feat/fewer-reductions" } @@ -93,12 +93,12 @@ jolt-core = { git = "https://github.com/a16z/jolt.git", tag = "v0.3.0-alpha" } jolt-sdk = { git = "https://github.com/a16z/jolt.git", tag = "v0.3.0-alpha", default-features = false } # Miden dependencies -miden-assembly = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.0" } -miden-core = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.0" } -miden-processor = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.0" } -miden-prover = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.0" } -miden-core-lib = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.0" } -miden-verifier = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.0" } +miden-assembly = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.1" } +miden-core = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.1" } +miden-processor = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.1" } +miden-prover = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.1" } +miden-core-lib = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.1" } +miden-verifier = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.1" } # Nexus dependencies nexus-core = { git = "https://github.com/nexus-xyz/nexus-zkvm.git", tag = "v0.3.5" } @@ -117,8 +117,8 @@ openvm = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", def # Pico dependencies pico-p3-field = { git = "https://github.com/brevis-network/Plonky3.git", package = "p3-field", rev = "411a80d" } -pico-vm = { git = "https://github.com/brevis-network/pico.git", tag = "v1.2.0" } -pico-sdk = { git = "https://github.com/brevis-network/pico", tag = "v1.2.0" } +pico-vm = { git = "https://github.com/brevis-network/pico.git", tag = "v1.2.2" } +pico-sdk = { git = "https://github.com/brevis-network/pico", tag = "v1.2.2" } # Risc0 dependencies risc0-binfmt = { version = "3.0.3", default-features = false } @@ -128,8 +128,8 @@ risc0-zkvm = { version = "3.0.4", default-features = false } risc0-zkvm-platform = { version = "2.2.1", default-features = false } # SP1 dependencies -sp1-sdk = "5.2.3" -sp1-zkvm = "5.2.3" +sp1-sdk = "5.2.4" +sp1-zkvm = "5.2.4" # Ziren dependencies zkm-sdk = { git = "https://github.com/ProjectZKM/Ziren.git", tag = "v1.2.3" } diff --git a/README.md b/README.md index e35e5a7..e718880 100644 --- a/README.md +++ b/README.md @@ -175,14 +175,14 @@ OutputHashedPlatform::::write_whole_output(&large_output | zkVM | Version | GPU | | --------- | ---------------------------------------------------------------------- | --- | -| Airbender | [`0.5.1`](https://github.com/matter-labs/zksync-airbender/tree/v0.5.1) | Yes | +| Airbender | [`0.5.2`](https://github.com/matter-labs/zksync-airbender/tree/v0.5.2) | Yes | | Jolt | [`0.3.0-alpha`](https://github.com/a16z/jolt/tree/v0.3.0-alpha) | No | -| Miden | [`0.20.0`](https://github.com/0xMiden/miden-vm/tree/v0.20.0) | No | +| Miden | [`0.20.1`](https://github.com/0xMiden/miden-vm/tree/v0.20.1) | No | | Nexus | [`0.3.5`](https://github.com/nexus-xyz/nexus-zkvm/tree/v0.3.5) | No | | OpenVM | [`1.4.2`](https://github.com/openvm-org/openvm/tree/v1.4.2) | Yes | -| Pico | [`1.2.0`](https://github.com/brevis-network/pico/tree/v1.2.0) | No | +| Pico | [`1.2.2`](https://github.com/brevis-network/pico/tree/v1.2.2) | No | | Risc0 | [`3.0.4`](https://github.com/risc0/risc0/tree/v3.0.4) | Yes | -| SP1 | [`5.2.3`](https://github.com/succinctlabs/sp1/tree/v5.2.3) | Yes | +| SP1 | [`5.2.4`](https://github.com/succinctlabs/sp1/tree/v5.2.4) | Yes | | Ziren | [`1.2.3`](https://github.com/ProjectZKM/Ziren/tree/v1.2.3) | No | | Zisk | [`0.13.0`](https://github.com/0xPolygonHermez/zisk/tree/v0.13.0) | Yes | @@ -383,8 +383,8 @@ fn main() -> Result<(), Box> { ## Environment Variables -| Variable | Description | Default | -| ----------------- | --------------------------------------------------------------------------------------------------------------- | ------- | +| Variable | Description | Default | +| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------- | | `ERE_GPU_DEVICES` | Specifies which GPU devices to use when running Docker containers for GPU-enabled zkVMs. The value is passed to Docker's `--gpus` flag. | `all` | Example usage: diff --git a/crates/zkvm/airbender/src/compiler/rust_rv32ima.rs b/crates/zkvm/airbender/src/compiler/rust_rv32ima.rs index f6df14d..d800436 100644 --- a/crates/zkvm/airbender/src/compiler/rust_rv32ima.rs +++ b/crates/zkvm/airbender/src/compiler/rust_rv32ima.rs @@ -9,7 +9,7 @@ use std::{ }; const TARGET_TRIPLE: &str = "riscv32ima-unknown-none-elf"; -// Rust flags according to https://github.com/matter-labs/zksync-airbender/blob/v0.5.1/examples/dynamic_fibonacci/.cargo/config.toml. +// Rust flags according to https://github.com/matter-labs/zksync-airbender/blob/v0.5.2/examples/dynamic_fibonacci/.cargo/config.toml. const RUSTFLAGS: &[&str] = &[ // Replace atomic ops with nonatomic versions since the guest is single threaded. "-C", diff --git a/crates/zkvm/openvm/Cargo.toml b/crates/zkvm/openvm/Cargo.toml index cb2b06d..438704a 100644 --- a/crates/zkvm/openvm/Cargo.toml +++ b/crates/zkvm/openvm/Cargo.toml @@ -24,6 +24,9 @@ openvm-transpiler = { workspace = true, optional = true } ere-compile-utils = { workspace = true, optional = true } ere-zkvm-interface.workspace = true +[target.'cfg(target_arch = "x86_64")'.dependencies] +openvm-sdk = { workspace = true, features = ["aot", "nightly-features"], optional = true } + [dev-dependencies] ere-test-utils = { workspace = true, features = ["host"] } diff --git a/crates/zkvm/openvm/src/zkvm.rs b/crates/zkvm/openvm/src/zkvm.rs index 1b5dfe2..2417302 100644 --- a/crates/zkvm/openvm/src/zkvm.rs +++ b/crates/zkvm/openvm/src/zkvm.rs @@ -188,6 +188,9 @@ impl zkVM for EreOpenVM { }); } + // FIXME: Remove this if the `sdk.prove()` above checks exit code. + CpuSdk::verify_proof(&self.agg_vk, self.app_commit, &proof).map_err(Error::Prove)?; + let public_values = extract_public_values(&proof.user_public_values)?; let proof_bytes = proof .encode_to_vec() diff --git a/crates/zkvm/pico/src/compiler/rust_rv32ima.rs b/crates/zkvm/pico/src/compiler/rust_rv32ima.rs index 825a1d7..bc8ff6b 100644 --- a/crates/zkvm/pico/src/compiler/rust_rv32ima.rs +++ b/crates/zkvm/pico/src/compiler/rust_rv32ima.rs @@ -4,7 +4,7 @@ use ere_zkvm_interface::compiler::Compiler; use std::{env, path::Path}; const TARGET_TRIPLE: &str = "riscv32ima-unknown-none-elf"; -// According to https://github.com/brevis-network/pico/blob/v1.2.0/sdk/cli/src/build/build.rs#L104 +// According to https://github.com/brevis-network/pico/blob/v1.2.2/sdk/cli/src/build/build.rs#L104 const RUSTFLAGS: &[&str] = &[ // Replace atomic ops with nonatomic versions since the guest is single threaded. "-C", diff --git a/crates/zkvm/pico/src/zkvm/sdk.rs b/crates/zkvm/pico/src/zkvm/sdk.rs index 6928aad..28a1cb0 100644 --- a/crates/zkvm/pico/src/zkvm/sdk.rs +++ b/crates/zkvm/pico/src/zkvm/sdk.rs @@ -1,4 +1,4 @@ -// Copied and modified from https://github.com/brevis-network/pico/blob/v1.2.0/sdk/sdk/src/client.rs. +// Copied and modified from https://github.com/brevis-network/pico/blob/v1.2.2/sdk/sdk/src/client.rs. // The `EmbedProver` is removed because we don't need the proof to be verified // on chain. Issue for tracking: https://github.com/eth-act/ere/issues/140. diff --git a/crates/zkvm/sp1/src/zkvm.rs b/crates/zkvm/sp1/src/zkvm.rs index 5c3307e..2a3c855 100644 --- a/crates/zkvm/sp1/src/zkvm.rs +++ b/crates/zkvm/sp1/src/zkvm.rs @@ -28,7 +28,7 @@ pub struct EreSP1 { pk: SP1ProvingKey, /// Verification key vk: SP1VerifyingKey, - // The current version of SP1 (v5.2.3) has a problem where if GPU proving + // The current version of SP1 (v5.2.4) has a problem where if GPU proving // the program crashes in the Moongate container, it leaves an internal // mutex poisoned, which prevents further proving attempts. // This is a workaround to avoid the poisoned mutex issue by creating a new diff --git a/docker/miden/Dockerfile.base b/docker/miden/Dockerfile.base index 5093785..b701275 100644 --- a/docker/miden/Dockerfile.base +++ b/docker/miden/Dockerfile.base @@ -5,6 +5,6 @@ FROM $BASE_IMAGE RUN rustup default 1.90.0 # Miden Configuration -ENV MIDEN_VERSION="v0.20.0" +ENV MIDEN_VERSION="v0.20.1" CMD ["/bin/bash"] diff --git a/docker/openvm/Dockerfile.server b/docker/openvm/Dockerfile.server index 48e61f4..10e0bba 100644 --- a/docker/openvm/Dockerfile.server +++ b/docker/openvm/Dockerfile.server @@ -22,6 +22,11 @@ FROM $RUNTIME_IMAGE AS runtime FROM $RUNTIME_CUDA_IMAGE AS runtime_cuda FROM runtime${CUDA:+_cuda} AS runtime_stage +# Install build-essential for AOT compilation +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + && apt-get clean && rm -rf /var/lib/apt/lists/* + # Copy OpenVM SDK COPY --from=build_stage /root/.openvm/agg_stark.pk /root/.openvm/agg_stark.pk diff --git a/docker/sp1/Dockerfile.base b/docker/sp1/Dockerfile.base index d92da59..06a8856 100644 --- a/docker/sp1/Dockerfile.base +++ b/docker/sp1/Dockerfile.base @@ -10,7 +10,7 @@ COPY --chmod=755 scripts/sdk_installers/install_sp1_sdk.sh /tmp/install_sp1_sdk. # Define where SP1 SDK will be installed within the image. # The install_sp1_sdk.sh script will respect these ENV variables. ENV SP1_DIR="/root/.sp1" \ - SP1_VERSION="v5.2.3" + SP1_VERSION="v5.2.4" # Run the SP1 SDK installation script # It will use the SP1_DIR and SP1_VERSION defined above. diff --git a/scripts/sdk_installers/install_airbender_sdk.sh b/scripts/sdk_installers/install_airbender_sdk.sh index 2d9a161..ea4feda 100755 --- a/scripts/sdk_installers/install_airbender_sdk.sh +++ b/scripts/sdk_installers/install_airbender_sdk.sh @@ -26,7 +26,7 @@ ensure_tool_installed "rustup" "to manage Rust toolchains" ensure_tool_installed "git" "to install airbender-cli from a git repository" ensure_tool_installed "cargo" "to build and install Rust packages" -AIRBENDER_CLI_VERSION_TAG="v0.5.1" +AIRBENDER_CLI_VERSION_TAG="v0.5.2" # Install airbender-cli using the specified toolchain and version tag echo "Installing airbender-cli (version ${AIRBENDER_CLI_VERSION_TAG}) from GitHub repository (matter-labs/zksync-airbender)..." diff --git a/scripts/sdk_installers/install_nexus_sdk.sh b/scripts/sdk_installers/install_nexus_sdk.sh index bc79d0a..ee677b6 100755 --- a/scripts/sdk_installers/install_nexus_sdk.sh +++ b/scripts/sdk_installers/install_nexus_sdk.sh @@ -34,8 +34,11 @@ NEXUS_TOOLCHAIN_VERSION="nightly-2025-04-06" NEXUS_CLI_VERSION_TAG="v0.3.5" # Install the Nexus CLI -echo "Installing Nexus CLI from GitHub repository..." -cargo "+${NEXUS_TOOLCHAIN_VERSION}" install --git https://github.com/nexus-xyz/nexus-zkvm cargo-nexus --tag "$NEXUS_CLI_VERSION_TAG" +WORKSPACE=$(mktemp -d) +git clone --depth 1 --branch "$NEXUS_CLI_VERSION_TAG" https://github.com/nexus-xyz/nexus-zkvm "$WORKSPACE" +cargo update --manifest-path "$WORKSPACE/Cargo.toml" --package serde_json --precise 1.0.145 +cargo "+${NEXUS_TOOLCHAIN_VERSION}" install --locked --path "$WORKSPACE/cli" +rm -rf "$WORKSPACE" # Install Nexus's target rustup "+${NEXUS_TOOLCHAIN_VERSION}" target add riscv32i-unknown-none-elf diff --git a/scripts/sdk_installers/install_pico_sdk.sh b/scripts/sdk_installers/install_pico_sdk.sh index 17ec304..4561e1f 100755 --- a/scripts/sdk_installers/install_pico_sdk.sh +++ b/scripts/sdk_installers/install_pico_sdk.sh @@ -29,7 +29,7 @@ ensure_tool_installed "git" "to install pico-cli from a git repository" ensure_tool_installed "cargo" "to build and install Rust packages" PICO_TOOLCHAIN_VERSION="nightly-2025-08-04" -PICO_CLI_VERSION_TAG="v1.2.0" +PICO_CLI_VERSION_TAG="v1.2.2" # Install the specific nightly toolchain for Pico echo "Installing Pico-specific Rust toolchain: ${PICO_TOOLCHAIN_VERSION}..." diff --git a/tests/airbender/basic/src/asm_reduced.S b/tests/airbender/basic/src/asm_reduced.S index f5c3a0d..90e7dea 100644 --- a/tests/airbender/basic/src/asm_reduced.S +++ b/tests/airbender/basic/src/asm_reduced.S @@ -1,4 +1,4 @@ -/* Copied from https://github.com/matter-labs/zksync-airbender/blob/v0.5.1/examples/scripts/asm/asm_reduced.S */ +/* Copied from https://github.com/matter-labs/zksync-airbender/blob/v0.5.2/examples/scripts/asm/asm_reduced.S */ /* Entry point of all programs (_start). diff --git a/tests/pico/stock_nightly_no_std/src/pico_rt.rs b/tests/pico/stock_nightly_no_std/src/pico_rt.rs index 639729b..11b17f0 100644 --- a/tests/pico/stock_nightly_no_std/src/pico_rt.rs +++ b/tests/pico/stock_nightly_no_std/src/pico_rt.rs @@ -34,9 +34,9 @@ fn __start(_argc: isize, _argv: *const *const u8) -> isize { } /// Halts the program with the given exit code. -/// According to https://github.com/brevis-network/pico/blob/v1.2.0/sdk/sdk/src/riscv_ecalls/halt.rs#L15 +/// According to https://github.com/brevis-network/pico/blob/v1.2.2/sdk/sdk/src/riscv_ecalls/halt.rs#L15 /// TODO: Check what `coprocessor` feature does and integrate here. -/// Contex https://github.com/brevis-network/pico/blob/v1.2.0/sdk/sdk/src/riscv_ecalls/halt.rs#L18 +/// Contex https://github.com/brevis-network/pico/blob/v1.2.2/sdk/sdk/src/riscv_ecalls/halt.rs#L18 #[allow(unused_variables)] pub extern "C" fn syscall_halt(exit_code: u8) -> ! { unsafe {