chore: upgrade zkvm versions (#281)

Co-authored-by: han0110 <tinghan0110@gmail.com>
This commit is contained in:
brech1
2026-02-02 06:21:30 -03:00
committed by GitHub
parent 6036794245
commit aaf2efcc78
18 changed files with 403 additions and 316 deletions

372
Cargo.lock generated
View File

@@ -579,12 +579,6 @@ dependencies = [
"tracing",
]
[[package]]
name = "android-tzdata"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]]
name = "android_system_properties"
version = "0.1.5"
@@ -674,12 +668,12 @@ dependencies = [
[[package]]
name = "ark-bn254"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"ark-ec",
"ark-ff 0.5.0",
"ark-r1cs-std",
"ark-serialize 0.5.0",
"ark-std 0.5.0",
]
@@ -719,11 +713,11 @@ dependencies = [
[[package]]
name = "ark-ec"
version = "0.5.0"
source = "git+https://github.com/a16z/arkworks-algebra?branch=feat%2Ffewer-reductions#ad2e2866e87c513353838b911ca502f4aa1500e5"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"ahash",
"ark-ff 0.5.0",
"ark-poly 0.5.0 (git+https://github.com/a16z/arkworks-algebra?branch=feat%2Ffewer-reductions)",
"ark-poly 0.5.0 (git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout)",
"ark-serialize 0.5.0",
"ark-std 0.5.0",
"educe 0.6.0",
@@ -778,7 +772,7 @@ dependencies = [
[[package]]
name = "ark-ff"
version = "0.5.0"
source = "git+https://github.com/a16z/arkworks-algebra?branch=feat%2Ffewer-reductions#ad2e2866e87c513353838b911ca502f4aa1500e5"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"allocative",
"ark-ff-asm 0.5.0",
@@ -819,7 +813,7 @@ dependencies = [
[[package]]
name = "ark-ff-asm"
version = "0.5.0"
source = "git+https://github.com/a16z/arkworks-algebra?branch=feat%2Ffewer-reductions#ad2e2866e87c513353838b911ca502f4aa1500e5"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"quote",
"syn 2.0.101",
@@ -853,7 +847,7 @@ dependencies = [
[[package]]
name = "ark-ff-macros"
version = "0.5.0"
source = "git+https://github.com/a16z/arkworks-algebra?branch=feat%2Ffewer-reductions#ad2e2866e87c513353838b911ca502f4aa1500e5"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"num-bigint 0.4.6",
"num-traits",
@@ -877,6 +871,17 @@ dependencies = [
"ark-std 0.5.0",
]
[[package]]
name = "ark-grumpkin"
version = "0.5.0"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"ark-bn254",
"ark-ec",
"ark-ff 0.5.0",
"ark-std 0.5.0",
]
[[package]]
name = "ark-poly"
version = "0.5.0"
@@ -895,7 +900,7 @@ dependencies = [
[[package]]
name = "ark-poly"
version = "0.5.0"
source = "git+https://github.com/a16z/arkworks-algebra?branch=feat%2Ffewer-reductions#ad2e2866e87c513353838b911ca502f4aa1500e5"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"ahash",
"ark-ff 0.5.0",
@@ -959,9 +964,9 @@ dependencies = [
[[package]]
name = "ark-serialize"
version = "0.5.0"
source = "git+https://github.com/a16z/arkworks-algebra?branch=feat%2Ffewer-reductions#ad2e2866e87c513353838b911ca502f4aa1500e5"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"ark-serialize-derive 0.5.0 (git+https://github.com/a16z/arkworks-algebra?branch=feat%2Ffewer-reductions)",
"ark-serialize-derive 0.5.0 (git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout)",
"ark-std 0.5.0",
"arrayvec",
"digest 0.10.7",
@@ -983,7 +988,7 @@ dependencies = [
[[package]]
name = "ark-serialize-derive"
version = "0.5.0"
source = "git+https://github.com/a16z/arkworks-algebra?branch=feat%2Ffewer-reductions#ad2e2866e87c513353838b911ca502f4aa1500e5"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"proc-macro2",
"quote",
@@ -2167,18 +2172,18 @@ dependencies = [
[[package]]
name = "bytemuck"
version = "1.23.1"
version = "1.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422"
checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
dependencies = [
"bytemuck_derive",
]
[[package]]
name = "bytemuck_derive"
version = "1.8.1"
version = "1.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a"
checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff"
dependencies = [
"proc-macro2",
"quote",
@@ -2374,15 +2379,16 @@ dependencies = [
[[package]]
name = "chrono"
version = "0.4.41"
version = "0.4.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118"
dependencies = [
"android-tzdata",
"iana-time-zone",
"js-sys",
"num-traits",
"serde",
"windows-link 0.1.3",
"wasm-bindgen",
"windows-link 0.2.1",
]
[[package]]
@@ -2560,8 +2566,9 @@ checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
[[package]]
name = "common"
version = "0.2.0"
source = "git+https://github.com/a16z/jolt.git?tag=v0.3.0-alpha#5101ad2143039de6f279613810414c3d071d1f8f"
source = "git+https://github.com/a16z/jolt.git?rev=6dcd401#6dcd401375efbf1a0e70079088745bacd55d4e88"
dependencies = [
"allocative",
"ark-serialize 0.5.0",
"derive_more 2.0.1",
"serde",
@@ -3457,9 +3464,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccf673e0848ef09fa4aeeba78e681cf651c0c7d35f76ee38cec8e55bc32fa111"
[[package]]
name = "dory"
version = "1.0.0"
source = "git+https://github.com/spaceandtimefdn/sxt-dory?branch=feat%2Ffewer-reductions#cfd4e8540c13f6b7e98c83a4af79b0df4a0f6f69"
name = "dory-derive"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c16f2dd35390487818e07efb4459ee0a5c2c65761081ee632d531442a980c97b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.101",
]
[[package]]
name = "dory-pcs"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccf838baede4d71cdbfeb618e36b98ead4c37b1e4b29fa266abd854f0a496732"
dependencies = [
"ark-bn254",
"ark-ec",
@@ -3469,13 +3488,12 @@ dependencies = [
"bincode 1.3.3",
"blake2",
"digest 0.10.7",
"jolt-optimizations",
"rand_chacha 0.3.1",
"dory-derive",
"rand_core 0.6.4",
"rayon",
"serde",
"thiserror 2.0.12",
"tracing",
"tracing-subscriber 0.3.20",
]
[[package]]
@@ -3998,6 +4016,7 @@ dependencies = [
name = "ere-platform-jolt"
version = "0.1.0"
dependencies = [
"common",
"ere-platform-trait",
"jolt-sdk",
"postcard",
@@ -6149,23 +6168,27 @@ dependencies = [
[[package]]
name = "jolt-core"
version = "0.1.0"
source = "git+https://github.com/a16z/jolt.git?tag=v0.3.0-alpha#5101ad2143039de6f279613810414c3d071d1f8f"
source = "git+https://github.com/a16z/jolt.git?rev=6dcd401#6dcd401375efbf1a0e70079088745bacd55d4e88"
dependencies = [
"allocative",
"anyhow",
"ark-bn254",
"ark-ec",
"ark-ff 0.5.0",
"ark-grumpkin",
"ark-serialize 0.5.0",
"ark-serialize-derive 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ark-std 0.5.0",
"bincode 1.3.3",
"blake2",
"bytemuck",
"bytemuck_derive",
"chrono",
"clap",
"common",
"derive_more 2.0.1",
"dirs 5.0.1",
"dory",
"dory-pcs",
"eyre",
"fixedbitset 0.5.7",
"indicatif",
@@ -6174,13 +6197,11 @@ dependencies = [
"jolt-inlines-sha2",
"jolt-optimizations",
"jolt-platform",
"lazy_static",
"memory-stats",
"num",
"num-derive",
"num-integer",
"num-traits",
"once_cell",
"paste",
"postcard",
"rand 0.8.5",
@@ -6205,7 +6226,7 @@ dependencies = [
[[package]]
name = "jolt-inlines-keccak256"
version = "0.1.0"
source = "git+https://github.com/a16z/jolt.git?tag=v0.3.0-alpha#5101ad2143039de6f279613810414c3d071d1f8f"
source = "git+https://github.com/a16z/jolt.git?rev=6dcd401#6dcd401375efbf1a0e70079088745bacd55d4e88"
dependencies = [
"ctor 0.2.9",
"tracer",
@@ -6215,7 +6236,7 @@ dependencies = [
[[package]]
name = "jolt-inlines-sha2"
version = "0.1.0"
source = "git+https://github.com/a16z/jolt.git?tag=v0.3.0-alpha#5101ad2143039de6f279613810414c3d071d1f8f"
source = "git+https://github.com/a16z/jolt.git?rev=6dcd401#6dcd401375efbf1a0e70079088745bacd55d4e88"
dependencies = [
"ctor 0.2.9",
"tracer",
@@ -6225,13 +6246,14 @@ dependencies = [
[[package]]
name = "jolt-optimizations"
version = "0.5.0"
source = "git+https://github.com/a16z/arkworks-algebra?branch=feat%2Ffewer-reductions#ad2e2866e87c513353838b911ca502f4aa1500e5"
source = "git+https://github.com/a16z/arkworks-algebra?branch=dev%2Ftwist-shout#76bb3a4518928f1ff7f15875f940d614bb9845e6"
dependencies = [
"ark-bn254",
"ark-ec",
"ark-ff 0.5.0",
"ark-serialize 0.5.0",
"ark-std 0.5.0",
"arrayvec",
"num-bigint 0.4.6",
"num-integer",
"num-rational",
@@ -6242,7 +6264,7 @@ dependencies = [
[[package]]
name = "jolt-platform"
version = "0.1.0"
source = "git+https://github.com/a16z/jolt.git?tag=v0.3.0-alpha#5101ad2143039de6f279613810414c3d071d1f8f"
source = "git+https://github.com/a16z/jolt.git?rev=6dcd401#6dcd401375efbf1a0e70079088745bacd55d4e88"
dependencies = [
"getrandom 0.2.16",
"getrandom 0.3.3",
@@ -6252,7 +6274,7 @@ dependencies = [
[[package]]
name = "jolt-sdk"
version = "0.1.0"
source = "git+https://github.com/a16z/jolt.git?tag=v0.3.0-alpha#5101ad2143039de6f279613810414c3d071d1f8f"
source = "git+https://github.com/a16z/jolt.git?rev=6dcd401#6dcd401375efbf1a0e70079088745bacd55d4e88"
dependencies = [
"ark-bn254",
"ark-ec",
@@ -6261,13 +6283,14 @@ dependencies = [
"jolt-platform",
"jolt-sdk-macros",
"postcard",
"serde",
"tracer",
]
[[package]]
name = "jolt-sdk-macros"
version = "0.1.0"
source = "git+https://github.com/a16z/jolt.git?tag=v0.3.0-alpha#5101ad2143039de6f279613810414c3d071d1f8f"
source = "git+https://github.com/a16z/jolt.git?rev=6dcd401#6dcd401375efbf1a0e70079088745bacd55d4e88"
dependencies = [
"common",
"proc-macro2",
@@ -6881,8 +6904,8 @@ dependencies = [
[[package]]
name = "miden-air"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"miden-core",
"miden-utils-indexing",
@@ -6893,8 +6916,8 @@ dependencies = [
[[package]]
name = "miden-assembly"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"log",
"miden-assembly-syntax",
@@ -6906,8 +6929,8 @@ dependencies = [
[[package]]
name = "miden-assembly-syntax"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"aho-corasick",
"lalrpop 0.22.2",
@@ -6927,8 +6950,8 @@ dependencies = [
[[package]]
name = "miden-core"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"derive_more 2.0.1",
"itertools 0.14.0",
@@ -6946,8 +6969,8 @@ dependencies = [
[[package]]
name = "miden-core-lib"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"env_logger",
"fs-err",
@@ -7004,8 +7027,8 @@ dependencies = [
[[package]]
name = "miden-debug-types"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"memchr",
"miden-crypto",
@@ -7030,8 +7053,8 @@ dependencies = [
[[package]]
name = "miden-mast-package"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"derive_more 2.0.1",
"miden-assembly-syntax",
@@ -7083,8 +7106,8 @@ dependencies = [
[[package]]
name = "miden-processor"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"itertools 0.14.0",
"miden-air",
@@ -7102,8 +7125,8 @@ dependencies = [
[[package]]
name = "miden-prover"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"miden-air",
"miden-debug-types",
@@ -7115,8 +7138,8 @@ dependencies = [
[[package]]
name = "miden-utils-core-derive"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"proc-macro2",
"quote",
@@ -7125,8 +7148,8 @@ dependencies = [
[[package]]
name = "miden-utils-diagnostics"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"miden-crypto",
"miden-debug-types",
@@ -7137,16 +7160,16 @@ dependencies = [
[[package]]
name = "miden-utils-indexing"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"thiserror 2.0.12",
]
[[package]]
name = "miden-utils-sync"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"lock_api",
"loom",
@@ -7155,8 +7178,8 @@ dependencies = [
[[package]]
name = "miden-verifier"
version = "0.20.1"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.1#858f4cf58bab03d342ed2677fcc95ac755128dfe"
version = "0.20.4"
source = "git+https://github.com/0xPolygonMiden/miden-vm.git?tag=v0.20.4#2e66bd28d4b0f6cc785c712323a77cfe8fd7678e"
dependencies = [
"miden-air",
"miden-core",
@@ -7927,8 +7950,8 @@ dependencies = [
[[package]]
name = "openvm"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"bytemuck",
"getrandom 0.2.16",
@@ -7942,8 +7965,8 @@ dependencies = [
[[package]]
name = "openvm-algebra-circuit"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"blstrs",
"cfg-if",
@@ -7975,8 +7998,8 @@ dependencies = [
[[package]]
name = "openvm-algebra-complex-macros"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-macros-common",
"quote",
@@ -7985,8 +8008,8 @@ dependencies = [
[[package]]
name = "openvm-algebra-guest"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"halo2curves-axiom",
"num-bigint 0.4.6",
@@ -8001,8 +8024,8 @@ dependencies = [
[[package]]
name = "openvm-algebra-moduli-macros"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"num-bigint 0.4.6",
"num-prime",
@@ -8013,8 +8036,8 @@ dependencies = [
[[package]]
name = "openvm-algebra-transpiler"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-algebra-guest",
"openvm-instructions",
@@ -8027,8 +8050,8 @@ dependencies = [
[[package]]
name = "openvm-bigint-circuit"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"cfg-if",
"derive-new 0.6.0",
@@ -8053,8 +8076,8 @@ dependencies = [
[[package]]
name = "openvm-bigint-guest"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-platform",
"strum_macros 0.26.4",
@@ -8062,8 +8085,8 @@ dependencies = [
[[package]]
name = "openvm-bigint-transpiler"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-bigint-guest",
"openvm-instructions",
@@ -8077,8 +8100,8 @@ dependencies = [
[[package]]
name = "openvm-build"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"cargo_metadata 0.18.1",
"eyre",
@@ -8089,8 +8112,8 @@ dependencies = [
[[package]]
name = "openvm-circuit"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"abi_stable",
"backtrace",
@@ -8131,8 +8154,8 @@ dependencies = [
[[package]]
name = "openvm-circuit-derive"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"itertools 0.14.0",
"proc-macro2",
@@ -8142,8 +8165,8 @@ dependencies = [
[[package]]
name = "openvm-circuit-primitives"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"derive-new 0.6.0",
"itertools 0.14.0",
@@ -8160,8 +8183,8 @@ dependencies = [
[[package]]
name = "openvm-circuit-primitives-derive"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"itertools 0.14.0",
"quote",
@@ -8170,8 +8193,8 @@ dependencies = [
[[package]]
name = "openvm-continuations"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"derivative",
"openvm-circuit",
@@ -8185,8 +8208,8 @@ dependencies = [
[[package]]
name = "openvm-cuda-backend"
version = "1.2.2"
source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.2#972f5dbecb6ab3ff7e3e978e9087235ad17c1de9"
version = "1.2.3"
source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.3#abd3c8508bac5409deca284928fc37219448403a"
dependencies = [
"bincode 2.0.1",
"bincode_derive",
@@ -8217,8 +8240,8 @@ dependencies = [
[[package]]
name = "openvm-cuda-builder"
version = "1.2.2"
source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.2#972f5dbecb6ab3ff7e3e978e9087235ad17c1de9"
version = "1.2.3"
source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.3#abd3c8508bac5409deca284928fc37219448403a"
dependencies = [
"cc",
"glob",
@@ -8226,8 +8249,8 @@ dependencies = [
[[package]]
name = "openvm-cuda-common"
version = "1.2.2"
source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.2#972f5dbecb6ab3ff7e3e978e9087235ad17c1de9"
version = "1.2.3"
source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.3#abd3c8508bac5409deca284928fc37219448403a"
dependencies = [
"bytesize",
"ctor 0.5.0",
@@ -8241,7 +8264,7 @@ dependencies = [
[[package]]
name = "openvm-custom-insn"
version = "0.1.0"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"proc-macro2",
"quote",
@@ -8250,8 +8273,8 @@ dependencies = [
[[package]]
name = "openvm-ecc-circuit"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"blstrs",
"cfg-if",
@@ -8283,8 +8306,8 @@ dependencies = [
[[package]]
name = "openvm-ecc-guest"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"ecdsa",
"elliptic-curve",
@@ -8302,8 +8325,8 @@ dependencies = [
[[package]]
name = "openvm-ecc-sw-macros"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-macros-common",
"quote",
@@ -8312,8 +8335,8 @@ dependencies = [
[[package]]
name = "openvm-ecc-transpiler"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-ecc-guest",
"openvm-instructions",
@@ -8326,8 +8349,8 @@ dependencies = [
[[package]]
name = "openvm-instructions"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"backtrace",
"derive-new 0.6.0",
@@ -8343,8 +8366,8 @@ dependencies = [
[[package]]
name = "openvm-instructions-derive"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"quote",
"syn 2.0.101",
@@ -8352,8 +8375,8 @@ dependencies = [
[[package]]
name = "openvm-keccak256-circuit"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"cfg-if",
"derive-new 0.6.0",
@@ -8380,16 +8403,16 @@ dependencies = [
[[package]]
name = "openvm-keccak256-guest"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-platform",
]
[[package]]
name = "openvm-keccak256-transpiler"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-instructions",
"openvm-instructions-derive",
@@ -8402,16 +8425,16 @@ dependencies = [
[[package]]
name = "openvm-macros-common"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"syn 2.0.101",
]
[[package]]
name = "openvm-mod-circuit-builder"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"cuda-runtime-sys",
"itertools 0.14.0",
@@ -8431,8 +8454,8 @@ dependencies = [
[[package]]
name = "openvm-native-circuit"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"cfg-if",
"derive-new 0.6.0",
@@ -8462,8 +8485,8 @@ dependencies = [
[[package]]
name = "openvm-native-compiler"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"backtrace",
"itertools 0.14.0",
@@ -8484,8 +8507,8 @@ dependencies = [
[[package]]
name = "openvm-native-compiler-derive"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"quote",
"syn 2.0.101",
@@ -8493,8 +8516,8 @@ dependencies = [
[[package]]
name = "openvm-native-recursion"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"cfg-if",
"itertools 0.14.0",
@@ -8517,8 +8540,8 @@ dependencies = [
[[package]]
name = "openvm-native-transpiler"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-instructions",
"openvm-transpiler",
@@ -8527,8 +8550,8 @@ dependencies = [
[[package]]
name = "openvm-pairing-circuit"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"cfg-if",
"derive-new 0.6.0",
@@ -8558,8 +8581,8 @@ dependencies = [
[[package]]
name = "openvm-pairing-guest"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"blstrs",
"halo2curves-axiom",
@@ -8580,8 +8603,8 @@ dependencies = [
[[package]]
name = "openvm-pairing-transpiler"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-instructions",
"openvm-pairing-guest",
@@ -8593,8 +8616,8 @@ dependencies = [
[[package]]
name = "openvm-platform"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"critical-section",
"embedded-alloc",
@@ -8605,8 +8628,8 @@ dependencies = [
[[package]]
name = "openvm-poseidon2-air"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"derivative",
"lazy_static",
@@ -8623,8 +8646,8 @@ dependencies = [
[[package]]
name = "openvm-rv32-adapters"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"derive-new 0.6.0",
"itertools 0.14.0",
@@ -8640,8 +8663,8 @@ dependencies = [
[[package]]
name = "openvm-rv32im-circuit"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"cfg-if",
"derive-new 0.6.0",
@@ -8667,8 +8690,8 @@ dependencies = [
[[package]]
name = "openvm-rv32im-guest"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-custom-insn",
"p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb)",
@@ -8677,8 +8700,8 @@ dependencies = [
[[package]]
name = "openvm-rv32im-transpiler"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-instructions",
"openvm-instructions-derive",
@@ -8693,8 +8716,8 @@ dependencies = [
[[package]]
name = "openvm-sdk"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"bitcode",
"bon",
@@ -8748,8 +8771,8 @@ dependencies = [
[[package]]
name = "openvm-sha256-air"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-circuit-primitives",
"openvm-stark-backend",
@@ -8759,8 +8782,8 @@ dependencies = [
[[package]]
name = "openvm-sha256-circuit"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"cfg-if",
"derive-new 0.6.0",
@@ -8785,16 +8808,16 @@ dependencies = [
[[package]]
name = "openvm-sha256-guest"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-platform",
]
[[package]]
name = "openvm-sha256-transpiler"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"openvm-instructions",
"openvm-instructions-derive",
@@ -8807,8 +8830,8 @@ dependencies = [
[[package]]
name = "openvm-stark-backend"
version = "1.2.2"
source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.2#972f5dbecb6ab3ff7e3e978e9087235ad17c1de9"
version = "1.2.3"
source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.3#abd3c8508bac5409deca284928fc37219448403a"
dependencies = [
"bitcode",
"cfg-if",
@@ -8835,8 +8858,8 @@ dependencies = [
[[package]]
name = "openvm-stark-sdk"
version = "1.2.2"
source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.2#972f5dbecb6ab3ff7e3e978e9087235ad17c1de9"
version = "1.2.3"
source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.3#abd3c8508bac5409deca284928fc37219448403a"
dependencies = [
"dashmap",
"derivative",
@@ -8872,8 +8895,8 @@ dependencies = [
[[package]]
name = "openvm-transpiler"
version = "1.4.2"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7"
version = "1.4.3"
source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.3#e8feb93717200e6f334b4f368dd2d0a143f69436"
dependencies = [
"elf",
"eyre",
@@ -14707,7 +14730,7 @@ dependencies = [
[[package]]
name = "tracer"
version = "0.2.0"
source = "git+https://github.com/a16z/jolt.git?tag=v0.3.0-alpha#5101ad2143039de6f279613810414c3d071d1f8f"
source = "git+https://github.com/a16z/jolt.git?rev=6dcd401#6dcd401375efbf1a0e70079088745bacd55d4e88"
dependencies = [
"addr2line 0.25.1",
"ark-serialize 0.5.0",
@@ -14717,7 +14740,6 @@ dependencies = [
"fnv",
"itertools 0.10.5",
"jolt-platform",
"lazy_static",
"object 0.36.7",
"paste",
"postcard",

View File

@@ -49,7 +49,7 @@ anyhow = "1.0.98"
auto_impl = "1.3.0"
bincode = { version = "2.0.1", default-features = false }
blake3 = "1.8.2"
bytemuck = "1.23.1"
bytemuck = "1.24.0"
cargo_metadata = "0.19.0"
ciborium = { version = "0.2.2", default-features = false }
ciborium-io = { version = "0.2.2", default-features = false }
@@ -87,18 +87,18 @@ airbender_execution_utils = { git = "https://github.com/matter-labs/zksync-airbe
airbender_riscv_common = { git = "https://github.com/matter-labs/zksync-airbender", package = "riscv_common", tag = "v0.5.2", default-features = false }
# Jolt dependencies
jolt-ark-serialize = { git = "https://github.com/a16z/arkworks-algebra", package = "ark-serialize", branch = "feat/fewer-reductions" }
jolt-common = { git = "https://github.com/a16z/jolt.git", package = "common", tag = "v0.3.0-alpha", default-features = false }
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 }
jolt-ark-serialize = { git = "https://github.com/a16z/arkworks-algebra", package = "ark-serialize", branch = "dev/twist-shout" }
jolt-common = { git = "https://github.com/a16z/jolt.git", package = "common", rev = "6dcd401", default-features = false }
jolt-core = { git = "https://github.com/a16z/jolt.git", rev = "6dcd401" }
jolt-sdk = { git = "https://github.com/a16z/jolt.git", rev = "6dcd401", default-features = false }
# Miden dependencies
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" }
miden-assembly = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.4" }
miden-core = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.4" }
miden-processor = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.4" }
miden-prover = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.4" }
miden-core-lib = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.4" }
miden-verifier = { git = "https://github.com/0xPolygonMiden/miden-vm.git", tag = "v0.20.4" }
# Nexus dependencies
nexus-core = { git = "https://github.com/nexus-xyz/nexus-zkvm.git", tag = "v0.3.6" }
@@ -108,13 +108,13 @@ nexus-vm-prover = { git = "https://github.com/nexus-xyz/nexus-zkvm.git", tag = "
nexus-rt = { git = "https://github.com/nexus-xyz/nexus-zkvm.git", tag = "v0.3.6", default-features = false }
# OpenVM dependencies
openvm-build = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2" }
openvm-circuit = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2" }
openvm-continuations = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2" }
openvm-sdk = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2" }
openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.2" }
openvm-transpiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2" }
openvm = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false }
openvm-build = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.3" }
openvm-circuit = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.3" }
openvm-continuations = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.3" }
openvm-sdk = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.3" }
openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.3" }
openvm-transpiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.3" }
openvm = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.3", default-features = false }
# Pico dependencies
pico-p3-field = { git = "https://github.com/brevis-network/Plonky3.git", package = "p3-field", rev = "411a80d" }
@@ -176,8 +176,8 @@ ere-test-utils = { path = "crates/test-utils" }
[patch.crates-io]
# These patches are only needed by Jolt
ark-ff = { git = "https://github.com/a16z/arkworks-algebra", branch = "feat/fewer-reductions" }
ark-ec = { git = "https://github.com/a16z/arkworks-algebra", branch = "feat/fewer-reductions" }
jolt-optimizations = { git = "https://github.com/a16z/arkworks-algebra", branch = "feat/fewer-reductions" }
ark-serialize = { git = "https://github.com/a16z/arkworks-algebra", branch = "feat/fewer-reductions" }
ark-bn254 = { git = "https://github.com/a16z/arkworks-algebra", branch = "dev/twist-shout" }
ark-ff = { git = "https://github.com/a16z/arkworks-algebra", branch = "dev/twist-shout" }
ark-ec = { git = "https://github.com/a16z/arkworks-algebra", branch = "dev/twist-shout" }
ark-serialize = { git = "https://github.com/a16z/arkworks-algebra", branch = "dev/twist-shout" }
allocative = { git = "https://github.com/facebookexperimental/allocative", rev = "85b773d85d526d068ce94724ff7a7b81203fc95e" }

View File

@@ -176,10 +176,10 @@ OutputHashedPlatform::<OpenVMPlatform, Sha256>::write_whole_output(&large_output
| zkVM | Version | GPU |
| --------- | ---------------------------------------------------------------------- | --- |
| 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.1`](https://github.com/0xMiden/miden-vm/tree/v0.20.1) | No |
| Jolt | [`6dcd401`](https://github.com/a16z/jolt/tree/6dcd401) | No |
| Miden | [`0.20.4`](https://github.com/0xMiden/miden-vm/tree/v0.20.4) | No |
| Nexus | [`0.3.6`](https://github.com/nexus-xyz/nexus-zkvm/tree/v0.3.6) | No |
| OpenVM | [`1.4.2`](https://github.com/openvm-org/openvm/tree/v1.4.2) | Yes |
| OpenVM | [`1.4.3`](https://github.com/openvm-org/openvm/tree/v1.4.3) | Yes |
| 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.4`](https://github.com/succinctlabs/sp1/tree/v5.2.4) | Yes |

View File

@@ -9,6 +9,7 @@ license.workspace = true
postcard = { workspace = true, features = ["alloc"] }
# Jolt dependencies
jolt-common.workspace = true
jolt-sdk.workspace = true
# Local dependencies

View File

@@ -3,84 +3,65 @@
extern crate alloc;
use core::{marker::PhantomData, ops::Deref};
use jolt_common::constants::{
DEFAULT_MAX_INPUT_SIZE, DEFAULT_MAX_OUTPUT_SIZE, DEFAULT_MAX_TRUSTED_ADVICE_SIZE,
DEFAULT_MAX_UNTRUSTED_ADVICE_SIZE, DEFAULT_MEMORY_SIZE, DEFAULT_STACK_SIZE,
};
use jolt_common::jolt_device::{MemoryConfig, MemoryLayout};
pub use ere_platform_trait::{Digest, OutputHashedPlatform, Platform};
pub use jolt_sdk as jolt;
// FIXME: Because the crate `jolt-common` is not `no_std` compatible, so we have
// to temporarily copy-paste these contant and memory layout calculation.
pub const RAM_START_ADDRESS: u64 = 0x80000000;
pub const DEFAULT_MEMORY_SIZE: u64 = 32 * 1024 * 1024;
pub const DEFAULT_STACK_SIZE: u64 = 4096;
pub const DEFAULT_MAX_INPUT_SIZE: u64 = 4096;
pub const DEFAULT_MAX_OUTPUT_SIZE: u64 = 4096;
pub const DEFAULT_MAX_TRACE_LENGTH: u64 = 1 << 24;
pub struct JoltMemoryLayout {
max_input_size: u64,
max_output_size: u64,
input_start: u64,
output_start: u64,
}
// According to https://github.com/a16z/jolt/blob/6dcd401/common/src/jolt_device.rs
pub trait JoltMemoryConfig {
const MAX_INPUT_SIZE: u64;
const MAX_TRUSTED_ADVICE_SIZE: u64;
const MAX_UNTRUSTED_ADVICE_SIZE: u64;
const MAX_OUTPUT_SIZE: u64;
const STACK_SIZE: u64;
const MEMORY_SIZE: u64;
// According to https://github.com/a16z/jolt/blob/v0.3.0-alpha/common/src/jolt_device.rs#L181.
fn memory_layout() -> JoltMemoryLayout {
let max_input_size = Self::MAX_INPUT_SIZE.next_multiple_of(8);
let max_output_size = Self::MAX_OUTPUT_SIZE.next_multiple_of(8);
let io_region_bytes = max_input_size
.checked_add(max_output_size)
.unwrap()
.checked_add(16)
.unwrap();
let io_region_words = (io_region_bytes / 8).next_power_of_two();
let io_bytes = io_region_words.checked_mul(8).unwrap();
let input_start = RAM_START_ADDRESS.checked_sub(io_bytes).unwrap();
let output_start = input_start.checked_add(max_input_size).unwrap();
JoltMemoryLayout {
max_input_size,
max_output_size,
input_start,
output_start,
}
fn memory_layout() -> MemoryLayout {
MemoryLayout::new(&MemoryConfig {
max_input_size: Self::MAX_INPUT_SIZE,
max_trusted_advice_size: Self::MAX_TRUSTED_ADVICE_SIZE,
max_untrusted_advice_size: Self::MAX_UNTRUSTED_ADVICE_SIZE,
max_output_size: Self::MAX_OUTPUT_SIZE,
stack_size: Self::STACK_SIZE,
memory_size: Self::MEMORY_SIZE,
program_size: Some(0),
})
}
}
pub struct DefaulJoltMemoryConfig;
pub struct DefaultJoltMemoryConfig;
impl JoltMemoryConfig for DefaulJoltMemoryConfig {
impl JoltMemoryConfig for DefaultJoltMemoryConfig {
const MAX_INPUT_SIZE: u64 = DEFAULT_MAX_INPUT_SIZE;
const MAX_TRUSTED_ADVICE_SIZE: u64 = DEFAULT_MAX_TRUSTED_ADVICE_SIZE;
const MAX_UNTRUSTED_ADVICE_SIZE: u64 = DEFAULT_MAX_UNTRUSTED_ADVICE_SIZE;
const MAX_OUTPUT_SIZE: u64 = DEFAULT_MAX_OUTPUT_SIZE;
const STACK_SIZE: u64 = DEFAULT_STACK_SIZE;
const MEMORY_SIZE: u64 = DEFAULT_MEMORY_SIZE;
}
/// Jolt [`Platform`] implementation.
pub struct JoltPlatform<C = DefaulJoltMemoryConfig>(PhantomData<C>);
pub struct JoltPlatform<C = DefaultJoltMemoryConfig>(PhantomData<C>);
impl<C: JoltMemoryConfig> Platform for JoltPlatform<C> {
fn read_whole_input() -> impl Deref<Target = [u8]> {
let memory_layout = C::memory_layout();
let input_ptr = memory_layout.input_start as *const u8;
let max_input_len = memory_layout.max_input_size as usize;
assert!(max_input_len > 4);
let len_bytes = unsafe { core::slice::from_raw_parts(input_ptr, 4) };
let untrusted_advice_ptr = memory_layout.untrusted_advice_start as *const u8;
let max_untrusted_advice_len = memory_layout.max_untrusted_advice_size as usize;
assert!(max_untrusted_advice_len > 4);
let len_bytes = unsafe { core::slice::from_raw_parts(untrusted_advice_ptr, 4) };
let len = u32::from_le_bytes(len_bytes.try_into().unwrap()) as usize;
assert!(
len <= max_input_len - 4,
len <= max_untrusted_advice_len - 4,
"Maximum input size is {} bytes, got {len}",
max_input_len - 4,
max_untrusted_advice_len - 4,
);
unsafe { core::slice::from_raw_parts(input_ptr.add(4), len) }.to_vec()
unsafe { core::slice::from_raw_parts(untrusted_advice_ptr.add(4), len) }.to_vec()
}
fn write_whole_output(output: &[u8]) {
@@ -95,7 +76,7 @@ impl<C: JoltMemoryConfig> Platform for JoltPlatform<C> {
);
let output_slice = unsafe { core::slice::from_raw_parts_mut(output_ptr, len + 4) };
output_slice[..4].copy_from_slice(&(output.len() as u32).to_le_bytes());
output_slice[4..].copy_from_slice(&output);
output_slice[4..].copy_from_slice(output);
}
fn print(message: &str) {

View File

@@ -7,7 +7,7 @@ use jolt_common::constants::{
use std::{env, path::Path};
const TARGET_TRIPLE: &str = "riscv64imac-unknown-none-elf";
// According to https://github.com/a16z/jolt/blob/v0.3.0-alpha/jolt-core/src/host/program.rs#L82
// According to https://github.com/a16z/jolt/blob/6dcd401/jolt-core/src/host/program.rs#L96
const RUSTFLAGS: &[&str] = &[
"-C",
"passes=lower-atomic",

View File

@@ -1,4 +1,4 @@
/* Copied from https://github.com/a16z/jolt/blob/v0.3.0-alpha/jolt-core/src/host/mod.rs#L28 */
/* Copied from https://github.com/a16z/jolt/blob/6dcd401/jolt-core/src/host/mod.rs#L30 */
MEMORY {
program (rwx) : ORIGIN = 0x80000000, LENGTH = {EMULATOR_MEMORY}
@@ -18,13 +18,23 @@ SECTIONS {
} > program
.bss (NOLOAD) : {
*(.bss)
__bss_start = .;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(8);
__bss_end = .;
} > program
/DISCARD/ : {
*(.eh_frame*)
*(.eh_frame_hdr*)
}
. = ALIGN(8);
_STACK_END = .;
. = . + {STACK_CANARY};
. = . + {STACK_SIZE};
. = ALIGN(8);
_STACK_PTR = .;
. = ALIGN(8);

View File

@@ -1,6 +1,6 @@
use crate::{
program::JoltProgram,
zkvm::sdk::{JoltProof, JoltSdk},
zkvm::sdk::{JoltConfig, JoltProof, JoltSdk},
};
use anyhow::bail;
use ere_zkvm_interface::zkvm::{
@@ -26,7 +26,7 @@ impl EreJolt {
if !matches!(resource, ProverResourceType::Cpu) {
panic!("Network or GPU proving not yet implemented for Miden. Use CPU resource type.");
}
let sdk = JoltSdk::new(program.elf());
let sdk = JoltSdk::new(program.elf(), JoltConfig::from_env());
Ok(EreJolt { sdk })
}
}
@@ -162,22 +162,22 @@ mod tests {
#[test]
fn test_prove() {
let _guard = PROVE_LOCK.lock().unwrap();
let program = basic_program();
let zkvm = EreJolt::new(program, ProverResourceType::Cpu).unwrap();
let _guard = PROVE_LOCK.lock().unwrap();
let test_case = BasicProgram::<BincodeLegacy>::valid_test_case();
run_zkvm_prove(&zkvm, &test_case);
}
#[test]
fn test_prove_invalid_test_case() {
let _guard = PROVE_LOCK.lock().unwrap();
let program = basic_program();
let zkvm = EreJolt::new(program, ProverResourceType::Cpu).unwrap();
let _guard = PROVE_LOCK.lock().unwrap();
for input in [
Input::new(),
BasicProgram::<BincodeLegacy>::invalid_test_case().input(),

View File

@@ -15,6 +15,9 @@ pub enum Error {
ExecutionPanic,
// Verify
#[error("Failed to verify proof: {0}")]
VerifyProofFailed(#[from] ProofVerifyError),
#[error("Failed to construct verifier: {0}")]
VerifierInitFailed(#[from] ProofVerifyError),
#[error("Verification failed: {0}")]
VerifyFailed(anyhow::Error),
}

View File

@@ -3,28 +3,72 @@ use core::{array::from_fn, cmp::min};
use ere_zkvm_interface::zkvm::PublicValues;
use jolt_ark_serialize::{self as ark_serialize, CanonicalDeserialize, CanonicalSerialize};
use jolt_common::constants::{
DEFAULT_MAX_INPUT_SIZE, DEFAULT_MAX_OUTPUT_SIZE, DEFAULT_MAX_TRACE_LENGTH, DEFAULT_MEMORY_SIZE,
DEFAULT_MAX_INPUT_SIZE, DEFAULT_MAX_OUTPUT_SIZE, DEFAULT_MAX_TRACE_LENGTH,
DEFAULT_MAX_TRUSTED_ADVICE_SIZE, DEFAULT_MAX_UNTRUSTED_ADVICE_SIZE, DEFAULT_MEMORY_SIZE,
DEFAULT_STACK_SIZE,
};
use jolt_core::{
poly::commitment::commitment_scheme::CommitmentScheme, transcripts::Blake2bTranscript as FS,
utils::math::Math, zkvm::witness::DTH_ROOT_OF_K,
};
use jolt_sdk::{
F, Jolt, JoltDevice, JoltProverPreprocessing, JoltRV64IMAC, JoltVerifierPreprocessing,
MemoryConfig, MemoryLayout, PCS,
F, JoltDevice, JoltProverPreprocessing, JoltSharedPreprocessing, JoltVerifierPreprocessing,
MemoryConfig, MemoryLayout, PCS, RV64IMACProof, RV64IMACProver, RV64IMACVerifier,
guest::program::{decode, trace},
};
use std::env;
#[derive(CanonicalSerialize, CanonicalDeserialize)]
pub struct JoltProof {
proof: jolt_sdk::JoltProof<F, PCS, FS>,
// FIXME: Remove `inputs` when Jolt supports proving with private input.
// Issue for tracking: https://github.com/eth-act/ere/issues/4.
inputs: Vec<u8>,
proof: RV64IMACProof,
outputs: Vec<u8>,
}
#[derive(Debug, Clone, Copy)]
pub struct JoltConfig {
max_input_size: u64,
max_trusted_advice_size: u64,
max_untrusted_advice_size: u64,
max_output_size: u64,
stack_size: u64,
memory_size: u64,
max_trace_length: u64,
}
impl JoltConfig {
pub fn from_env() -> Self {
#[rustfmt::skip]
let envs = [
("JOLT_MAX_INPUT_SIZE", DEFAULT_MAX_INPUT_SIZE),
("JOLT_MAX_TRUSTED_ADVICE_SIZE", DEFAULT_MAX_TRUSTED_ADVICE_SIZE),
("JOLT_MAX_UNTRUSTED_ADVICE_SIZE", DEFAULT_MAX_UNTRUSTED_ADVICE_SIZE),
("JOLT_MAX_OUTPUT_SIZE", DEFAULT_MAX_OUTPUT_SIZE),
("JOLT_STACK_SIZE", DEFAULT_STACK_SIZE),
("JOLT_MEMORY_SIZE", DEFAULT_MEMORY_SIZE),
("JOLT_MAX_TRACE_LENGTH", DEFAULT_MAX_TRACE_LENGTH),
];
let [
max_input_size,
max_trusted_advice_size,
max_untrusted_advice_size,
max_output_size,
stack_size,
memory_size,
max_trace_length,
] = envs.map(|(key, default)| {
env::var(key)
.ok()
.and_then(|val| val.parse().ok())
.unwrap_or(default)
});
Self {
max_input_size,
max_trusted_advice_size,
max_untrusted_advice_size,
max_output_size,
stack_size,
memory_size,
max_trace_length,
}
}
}
pub struct JoltSdk {
elf: Vec<u8>,
memory_config: MemoryConfig,
@@ -33,27 +77,29 @@ pub struct JoltSdk {
}
impl JoltSdk {
pub fn new(elf: &[u8]) -> Self {
pub fn new(elf: &[u8], config: JoltConfig) -> Self {
let (bytecode, memory_init, program_size) = decode(elf);
let memory_config = MemoryConfig {
max_input_size: DEFAULT_MAX_INPUT_SIZE,
max_output_size: DEFAULT_MAX_OUTPUT_SIZE,
stack_size: DEFAULT_STACK_SIZE,
memory_size: DEFAULT_MEMORY_SIZE,
max_input_size: config.max_input_size,
max_trusted_advice_size: config.max_trusted_advice_size,
max_untrusted_advice_size: config.max_untrusted_advice_size,
max_output_size: config.max_output_size,
stack_size: config.stack_size,
memory_size: config.memory_size,
program_size: Some(program_size),
};
let memory_layout = MemoryLayout::new(&memory_config);
let max_trace_length = DEFAULT_MAX_TRACE_LENGTH as usize;
let pk = {
// FIXME: Use public trusted setup or switch to other transparent PCS.
let max_trace_length = max_trace_length.next_power_of_two();
let generators = PCS::setup_prover(DTH_ROOT_OF_K.log_2() + max_trace_length.log_2());
let shared = JoltRV64IMAC::shared_preprocess(bytecode, memory_layout, memory_init);
JoltProverPreprocessing { generators, shared }
};
// FIXME: Use public trusted setup or switch to other transparent PCS.
let shared = JoltSharedPreprocessing::new(
bytecode,
memory_layout,
memory_init,
config.max_trace_length as usize,
);
let pk = JoltProverPreprocessing::new(shared);
let vk = JoltVerifierPreprocessing::from(&pk);
Self {
elf: elf.to_vec(),
memory_config,
@@ -63,40 +109,64 @@ impl JoltSdk {
}
pub fn execute(&self, input: &[u8]) -> Result<(PublicValues, u64), Error> {
let (cycles, _, io) = trace(&self.elf, None, input, &self.memory_config);
// Use untrusted advice (aka private input) instead of input of Jolt device,
// which is public to verifier.
let untrusted_advice = input;
let (trace_iter, materialized_trace, _memory, io) = trace(
&self.elf,
None,
&[],
untrusted_advice,
&[],
&self.memory_config,
);
if io.panic {
return Err(Error::ExecutionPanic);
}
let num_cycles = materialized_trace.len() + trace_iter.count();
let public_values = extract_public_values(&io.outputs)?;
Ok((public_values, cycles.len() as _))
Ok((public_values, num_cycles as _))
}
pub fn prove(&self, input: &[u8]) -> Result<(PublicValues, JoltProof), Error> {
let (proof, io, _) = JoltRV64IMAC::prove(&self.pk, &self.elf, input);
// Use untrusted advice (aka private input) instead of input of Jolt device,
// which is public to verifier.
let untrusted_advice = input;
let prover = RV64IMACProver::gen_from_elf(
&self.pk,
&self.elf,
&[],
untrusted_advice,
&[],
None,
None,
);
let io = prover.program_io.clone();
if io.panic {
return Err(Error::ExecutionPanic);
}
let (proof, _debug_info) = prover.prove();
let public_values = extract_public_values(&io.outputs)?;
let proof = JoltProof {
proof,
inputs: io.inputs,
outputs: io.outputs,
};
Ok((public_values, proof))
}
pub fn verify(&self, proof: JoltProof) -> Result<PublicValues, Error> {
JoltRV64IMAC::verify(
&self.vk,
proof.proof,
JoltDevice {
inputs: proof.inputs.clone(),
outputs: proof.outputs.clone(),
panic: false,
memory_layout: MemoryLayout::new(&self.memory_config),
},
None,
)?;
let io_device = JoltDevice {
outputs: proof.outputs.clone(),
panic: false,
memory_layout: MemoryLayout::new(&self.memory_config),
..Default::default()
};
let verifier = RV64IMACVerifier::new(&self.vk, proof.proof, io_device, None, None)
.map_err(Error::VerifierInitFailed)?;
verifier.verify().map_err(Error::VerifyFailed)?;
let public_values = extract_public_values(&proof.outputs)?;
Ok(public_values)
}

View File

@@ -7,7 +7,7 @@ use ere_zkvm_interface::compiler::Compiler;
use std::{env, path::Path};
const TARGET_TRIPLE: &str = "riscv32ima-unknown-none-elf";
// Rust flags according to https://github.com/openvm-org/openvm/blob/v1.4.2/crates/toolchain/build/src/lib.rs#L291
// Rust flags according to https://github.com/openvm-org/openvm/blob/v1.4.3/crates/toolchain/build/src/lib.rs#L291
const RUSTFLAGS: &[&str] = &[
// Replace atomic ops with nonatomic versions since the guest is single threaded.
"-C",

View File

@@ -52,7 +52,7 @@ impl EreOpenVM {
let app_config = if let Some(value) = program.app_config() {
toml::from_str(value).map_err(Error::InvalidAppConfig)?
} else {
// The default `AppConfig` copied from https://github.com/openvm-org/openvm/blob/v1.4.2/crates/cli/src/default.rs#L35.
// The default `AppConfig` copied from https://github.com/openvm-org/openvm/blob/v1.4.3/crates/cli/src/default.rs#L35.
AppConfig {
app_fri_params: FriParameters::standard_with_100_bits_conjectured_security(
DEFAULT_APP_LOG_BLOWUP,

View File

@@ -5,6 +5,6 @@ FROM $BASE_IMAGE
RUN rustup default 1.90.0
# Miden Configuration
ENV MIDEN_VERSION="v0.20.1"
ENV MIDEN_VERSION="v0.20.4"
CMD ["/bin/bash"]

View File

@@ -28,13 +28,13 @@ ensure_tool_installed "rustup" "to manage Rust toolchains (though Jolt uses defa
ensure_tool_installed "git" "to install Jolt from a git repository"
ensure_tool_installed "cargo" "to build and install Rust packages"
JOLT_VERSION_TAG="v0.3.0-alpha"
JOLT_VERSION_TAG="6dcd401"
# Install Jolt CLI using cargo install with +nightly
# This installs the 'jolt' binary directly to $HOME/.cargo/bin
# The ere-base image should have a compatible default nightly toolchain.
echo "Installing Jolt CLI from GitHub repository (a16z/jolt)..."
cargo +nightly install --git https://github.com/a16z/jolt --force --bins jolt --tag "$JOLT_VERSION_TAG"
cargo +nightly install --git https://github.com/a16z/jolt --force --bins jolt --rev "$JOLT_VERSION_TAG"
# Install Jolt's toolchain
jolt install-toolchain

View File

@@ -28,7 +28,7 @@ ensure_tool_installed "rustup" "to manage Rust toolchains"
ensure_tool_installed "git" "to install cargo-openvm from a git repository"
ensure_tool_installed "cargo" "to build and install Rust packages"
OPENVM_CLI_VERSION_TAG="v1.4.2"
OPENVM_CLI_VERSION_TAG="v1.4.3"
# Install cargo-openvm using the specified toolchain and version tag
echo "Installing cargo-openvm (version ${OPENVM_CLI_VERSION_TAG}) from GitHub repository (openvm-org/openvm)..."

View File

@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
ere-platform-jolt = { path = "../../../crates/zkvm/jolt/platform" }
ere-platform-jolt = { path = "../../../crates/zkvm/jolt/platform", features = ["guest-std"] }
ere-test-utils = { path = "../../../crates/test-utils" }
[features]

View File

@@ -3,11 +3,11 @@ use core::{
panic::PanicInfo,
};
// According to https://github.com/a16z/jolt/blob/v0.3.0-alpha/common/src/jolt_device.rs#L139
const DEFAULT_TERMINATION_ADDR: usize = 2147475464;
const DEFAULT_PANIC_ADDR: usize = 2147475456;
// According to https://github.com/a16z/jolt/blob/6dcd401/common/src/jolt_device.rs#L189
const DEFAULT_TERMINATION_ADDR: usize = 0x7FFFC008;
const DEFAULT_PANIC_ADDR: usize = 0x7FFFC000;
// According to https://github.com/a16z/jolt/blob/v0.3.0-alpha/jolt-sdk/macros/src/lib.rs#L545
// According to https://github.com/a16z/jolt/blob/6dcd401/jolt-sdk/macros/src/lib.rs#L808
core::arch::global_asm!(
r#"
.global _start
@@ -26,7 +26,7 @@ pub extern "C" fn main() {
unsafe { core::ptr::write_volatile(DEFAULT_TERMINATION_ADDR as *mut u8, 1) };
}
// According to https://github.com/a16z/jolt/blob/v0.3.0-alpha/jolt-sdk/macros/src/lib.rs#L594
// According to https://github.com/a16z/jolt/blob/6dcd401/jolt-sdk/macros/src/lib.rs
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
unsafe { core::ptr::write_volatile(DEFAULT_PANIC_ADDR as *mut u8, 1) };
@@ -36,7 +36,7 @@ fn panic(_info: &PanicInfo) -> ! {
#[global_allocator]
static ALLOCATOR: BumpAllocator = BumpAllocator;
// According to https://github.com/a16z/jolt/blob/v0.3.0-alpha/jolt-platform/src/alloc.rs
// According to https://github.com/a16z/jolt/blob/6dcd401/jolt-platform/src/alloc.rs
pub struct BumpAllocator;
unsafe impl GlobalAlloc for BumpAllocator {

View File

@@ -35,7 +35,7 @@ fn __start(_argc: isize, _argv: *const *const u8) -> isize {
unreachable!()
}
// According to https://github.com/openvm-org/openvm/blob/v1.4.2/crates/toolchain/openvm/src/process.rs
// According to https://github.com/openvm-org/openvm/blob/v1.4.3/crates/toolchain/openvm/src/process.rs
#[inline(always)]
fn terminate() {
unsafe {
@@ -45,7 +45,7 @@ fn terminate() {
}
}
// According to https://github.com/openvm-org/openvm/blob/v1.4.2/crates/toolchain/openvm/src/process.rs
// According to https://github.com/openvm-org/openvm/blob/v1.4.3/crates/toolchain/openvm/src/process.rs
#[panic_handler]
fn panic_impl(_panic_info: &core::panic::PanicInfo) -> ! {
unsafe {