diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e3716f38..20d0387c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ on: env: CARGO_TERM_COLOR: always GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - RISC0_VERSION: 0.19.1 + RISC0_VERSION: 0.20.0-rc.1 RISC0_TOOLCHAIN_VERSION: test-release-2 concurrency: diff --git a/Cargo.lock b/Cargo.lock index 6d7e5e86..e4cc19db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -208,6 +208,52 @@ version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-snark", + "ark-std 0.4.0", + "blake2", + "derivative", + "digest 0.10.7", + "sha2", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.3.0" @@ -291,6 +337,46 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff 0.4.2", + "ark-poly", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "tracing", + "tracing-subscriber", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -307,11 +393,35 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ + "ark-serialize-derive", "ark-std 0.4.0", "digest 0.10.7", "num-bigint 0.4.4", ] +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -557,6 +667,17 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bonsai-sdk" +version = "0.6.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71cb31d869ffc65bce832d34817436389c46803d950f2c8d8633c19cede954be" +dependencies = [ + "reqwest", + "serde", + "thiserror", +] + [[package]] name = "bstr" version = "1.8.0" @@ -1565,7 +1686,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" dependencies = [ "fallible-iterator", - "indexmap 2.1.0", "stable_deref_trait", ] @@ -1587,17 +1707,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "goblin" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27c1b4369c2cd341b5de549380158b105a04c331be5db9110eef7b6d2742134" -dependencies = [ - "log", - "plain", - "scroll", -] - [[package]] name = "group" version = "0.13.0" @@ -2011,9 +2120,9 @@ dependencies = [ [[package]] name = "lazy-regex" -version = "2.5.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff63c423c68ea6814b7da9e88ce585f793c87ddd9e78f646970891769c8235d4" +checksum = "5d12be4595afdf58bd19e4a9f4e24187da2a66700786ff660a418e9059937a4c" dependencies = [ "lazy-regex-proc_macros", "once_cell", @@ -2022,14 +2131,14 @@ dependencies = [ [[package]] name = "lazy-regex-proc_macros" -version = "2.4.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8edfc11b8f56ce85e207e62ea21557cfa09bb24a8f6b04ae181b086ff8611c22" +checksum = "44bcd58e6c97a7fcbaffcdc95728b393b8d98933bfadad49ed4097845b57ef0b" dependencies = [ "proc-macro2", "quote", "regex", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] @@ -2617,12 +2726,6 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - [[package]] name = "powerfmt" version = "0.2.0" @@ -3114,23 +3217,23 @@ dependencies = [ [[package]] name = "risc0-binfmt" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923c85a23cb9a9475b8cd4479ad3a06252604a361626e9ae7dc0dc635af22c22" +checksum = "80ae13e7539af760ece7ced07f33f4eca379cbcf66dcf3f4ff0098d56629a42a" dependencies = [ "anyhow", "elf", - "log", "risc0-zkp", "risc0-zkvm-platform", "serde", + "tracing", ] [[package]] name = "risc0-build" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e58d4cc25e243e52d1ccd75d357b0aa55081736bf3052c65a823fdf169586843" +checksum = "4b67e2f2431995e0f2c25916c57920f4035c397e0738c91847cf4a81f382ed53" dependencies = [ "anyhow", "cargo_metadata", @@ -3145,9 +3248,9 @@ dependencies = [ [[package]] name = "risc0-build-kernel" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9061315fc75f1e8573e1aaca32b856b01a325f756c8482a63547b796cfbe7940" +checksum = "98fc507ed489167c6cd9706dc2857059274e2f6ed2e190d39b091acb69355f84" dependencies = [ "cc", "directories", @@ -3158,14 +3261,13 @@ dependencies = [ [[package]] name = "risc0-circuit-recursion" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97547e10e9fdaaab8b64ffb45dc158b31f023b1a68015c6ce9f12fe3e403012a" +checksum = "31c673bc30e6cdf0b279b59f10f764c6c45caee356c639161b86bade4428806a" dependencies = [ "anyhow", "bytemuck", "downloader", - "log", "rand", "rayon", "risc0-circuit-recursion-sys", @@ -3178,9 +3280,9 @@ dependencies = [ [[package]] name = "risc0-circuit-recursion-sys" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c61bb8d8021f0a96bae24b305ea64169d6f36637bb2717ae24de77abfc30760" +checksum = "288fc7cbbfb708a8ed99b71c4cdbff144cb73053e9ab84ebd7a70588afae16a2" dependencies = [ "glob", "risc0-build-kernel", @@ -3189,12 +3291,11 @@ dependencies = [ [[package]] name = "risc0-circuit-rv32im" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a269d01b18cba24ee1a08f68726fc3623e8705ed79d158377d12e9129dcde2e" +checksum = "c91d370fbda269b6cf3980538a1069d0ebda075bad040385f8b2c0155b0430e3" dependencies = [ "anyhow", - "log", "rand", "rayon", "risc0-circuit-rv32im-sys", @@ -3206,9 +3307,9 @@ dependencies = [ [[package]] name = "risc0-circuit-rv32im-sys" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "344208fab2ea159915c4c747aca9037c74e3cc4b10692389aa1f8d712e3b552d" +checksum = "efa5d1068c9ffcff62f839e245d41da9373c57acdd070cc624f888439c98cb51" dependencies = [ "glob", "risc0-build-kernel", @@ -3217,9 +3318,9 @@ dependencies = [ [[package]] name = "risc0-core" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "477e0bb8d2ec0b7955088b521eb596901e652d0faa2ea73bda0b77e05af5c07d" +checksum = "ce6be5edae3c8f31ccdbf68f6c6baf1c28157b93c6e5a32b307bb5c3486e1033" dependencies = [ "bytemuck", "rand_core", @@ -3227,18 +3328,19 @@ dependencies = [ [[package]] name = "risc0-sys" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a0523c55e53a860f4a8fb3d2ca7c2bf3ce4b8aa3feddb42d08648bdcc458ac" +checksum = "925e10c9b2e77ad704462b471dd6380a8ba7600c83058829f17062dc1522a769" dependencies = [ + "cc", "risc0-build-kernel", ] [[package]] name = "risc0-zkp" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5abb1a0cf847d3f9aed1e563b76c358107e7ba66dbfab28f7144252c990bd82" +checksum = "a4fe4427de2ade22ec3cf89f0a439ef24ea003383e59759ba97fc90ff36e4a35" dependencies = [ "anyhow", "blake2", @@ -3247,7 +3349,6 @@ dependencies = [ "ff", "hex", "lazy_static", - "log", "ndarray", "paste", "rand", @@ -3263,28 +3364,28 @@ dependencies = [ [[package]] name = "risc0-zkvm" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf80df202c038efc2199be34fda8114b38bfc5b2b51c60cbbdf1f425b07b384" +checksum = "2291f6b83fb65c88191120c395f155f02460adcc145d860509ec0aad75c21ec8" dependencies = [ "addr2line", "anyhow", + "ark-bn254", + "ark-groth16", + "ark-serialize 0.4.2", "bincode", - "bonsai-sdk", + "bonsai-sdk 0.6.0-rc.1", "bytemuck", "bytes", "cfg-if", "crypto-bigint", - "generic-array", + "elf", "getrandom", - "gimli", - "goblin", "hex", "lazy-regex", - "log", + "num-bigint 0.4.4", "num-derive", "num-traits", - "object", "prost", "prost-build", "protobuf-src", @@ -3307,9 +3408,9 @@ dependencies = [ [[package]] name = "risc0-zkvm-platform" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dcd6b66f7a4972001db0acf3f06d99b7851c8d9f0de1f7e0fb4496c66c5cd02" +checksum = "dc42c3f4550b3bf7311d21ae6b35807dc1010e918827a6785d509fa21a5728df" dependencies = [ "bytemuck", "getrandom", @@ -3567,26 +3668,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scroll" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" -dependencies = [ - "scroll_derive", -] - -[[package]] -name = "scroll_derive" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - [[package]] name = "sct" version = "0.7.1" @@ -4268,6 +4349,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -4291,6 +4373,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", + "valuable", ] [[package]] @@ -4303,6 +4386,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "tracing-core", +] + [[package]] name = "try-lock" version = "0.2.4" @@ -4792,7 +4884,7 @@ dependencies = [ "anyhow", "assert_cmd", "bincode", - "bonsai-sdk", + "bonsai-sdk 0.5.1", "bytemuck", "clap", "env_logger", diff --git a/Cargo.toml b/Cargo.toml index ea47e584..76120af9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,6 +25,6 @@ opt-level = 3 [workspace.dependencies] bonsai-sdk = "0.5" hashbrown = { version = "0.14", features = ["inline-more"] } -risc0-build = "0.19" -risc0-zkvm = { version = "0.19", default-features = false } +risc0-build = "0.20.0-rc.1" +risc0-zkvm = { version = "0.20.0-rc.1", default-features = false } revm = { version = "3.5", default-features = false, features = ["std", "serde", "optional_no_base_fee", "optional_balance_check"] } diff --git a/guests/eth-block/Cargo.lock b/guests/eth-block/Cargo.lock index 1203d25e..d3af25f5 100644 --- a/guests/eth-block/Cargo.lock +++ b/guests/eth-block/Cargo.lock @@ -143,6 +143,52 @@ version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-snark", + "ark-std 0.4.0", + "blake2", + "derivative", + "digest 0.10.7", + "sha2", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.3.0" @@ -226,6 +272,46 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff 0.4.2", + "ark-poly", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "tracing", + "tracing-subscriber", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -242,11 +328,35 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ + "ark-serialize-derive", "ark-std 0.4.0", "digest 0.10.7", "num-bigint", ] +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -2361,27 +2471,26 @@ dependencies = [ [[package]] name = "risc0-binfmt" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923c85a23cb9a9475b8cd4479ad3a06252604a361626e9ae7dc0dc635af22c22" +checksum = "80ae13e7539af760ece7ced07f33f4eca379cbcf66dcf3f4ff0098d56629a42a" dependencies = [ "anyhow", "elf", - "log", "risc0-zkp", "risc0-zkvm-platform", "serde", + "tracing", ] [[package]] name = "risc0-circuit-recursion" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97547e10e9fdaaab8b64ffb45dc158b31f023b1a68015c6ce9f12fe3e403012a" +checksum = "31c673bc30e6cdf0b279b59f10f764c6c45caee356c639161b86bade4428806a" dependencies = [ "anyhow", "bytemuck", - "log", "risc0-core", "risc0-zkp", "tracing", @@ -2389,12 +2498,11 @@ dependencies = [ [[package]] name = "risc0-circuit-rv32im" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a269d01b18cba24ee1a08f68726fc3623e8705ed79d158377d12e9129dcde2e" +checksum = "c91d370fbda269b6cf3980538a1069d0ebda075bad040385f8b2c0155b0430e3" dependencies = [ "anyhow", - "log", "risc0-core", "risc0-zkp", "risc0-zkvm-platform", @@ -2403,9 +2511,9 @@ dependencies = [ [[package]] name = "risc0-core" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "477e0bb8d2ec0b7955088b521eb596901e652d0faa2ea73bda0b77e05af5c07d" +checksum = "ce6be5edae3c8f31ccdbf68f6c6baf1c28157b93c6e5a32b307bb5c3486e1033" dependencies = [ "bytemuck", "rand_core", @@ -2413,16 +2521,15 @@ dependencies = [ [[package]] name = "risc0-zkp" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5abb1a0cf847d3f9aed1e563b76c358107e7ba66dbfab28f7144252c990bd82" +checksum = "a4fe4427de2ade22ec3cf89f0a439ef24ea003383e59759ba97fc90ff36e4a35" dependencies = [ "anyhow", "blake2", "bytemuck", "digest 0.10.7", "hex", - "log", "paste", "rand_core", "risc0-core", @@ -2434,16 +2541,19 @@ dependencies = [ [[package]] name = "risc0-zkvm" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf80df202c038efc2199be34fda8114b38bfc5b2b51c60cbbdf1f425b07b384" +checksum = "2291f6b83fb65c88191120c395f155f02460adcc145d860509ec0aad75c21ec8" dependencies = [ "anyhow", + "ark-bn254", + "ark-groth16", + "ark-serialize 0.4.2", "bytemuck", "cfg-if", "getrandom", "hex", - "log", + "num-bigint", "num-derive", "num-traits", "risc0-binfmt", @@ -2455,14 +2565,15 @@ dependencies = [ "rrs-lib", "semver 1.0.20", "serde", + "sha2", "tracing", ] [[package]] name = "risc0-zkvm-platform" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dcd6b66f7a4972001db0acf3f06d99b7851c8d9f0de1f7e0fb4496c66c5cd02" +checksum = "dc42c3f4550b3bf7311d21ae6b35807dc1010e918827a6785d509fa21a5728df" dependencies = [ "bytemuck", "getrandom", @@ -3274,6 +3385,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3297,6 +3409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", + "valuable", ] [[package]] @@ -3309,6 +3422,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "tracing-core", +] + [[package]] name = "try-lock" version = "0.2.4" diff --git a/guests/eth-block/Cargo.toml b/guests/eth-block/Cargo.toml index c4c80c0b..33478113 100644 --- a/guests/eth-block/Cargo.toml +++ b/guests/eth-block/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [workspace] [dependencies] -risc0-zkvm = { version = "0.19", default-features = false, features = ['std'] } +risc0-zkvm = { version = "0.20.0-rc.1", default-features = false, features = ['std'] } zeth-lib = { path = "../../lib", default-features = false } [patch.crates-io] diff --git a/guests/op-block/Cargo.lock b/guests/op-block/Cargo.lock index 2d894d2a..19f841c4 100644 --- a/guests/op-block/Cargo.lock +++ b/guests/op-block/Cargo.lock @@ -143,6 +143,52 @@ version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-snark", + "ark-std 0.4.0", + "blake2", + "derivative", + "digest 0.10.7", + "sha2", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.3.0" @@ -226,6 +272,46 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff 0.4.2", + "ark-poly", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "tracing", + "tracing-subscriber", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -242,11 +328,35 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ + "ark-serialize-derive", "ark-std 0.4.0", "digest 0.10.7", "num-bigint", ] +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -2361,27 +2471,26 @@ dependencies = [ [[package]] name = "risc0-binfmt" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923c85a23cb9a9475b8cd4479ad3a06252604a361626e9ae7dc0dc635af22c22" +checksum = "80ae13e7539af760ece7ced07f33f4eca379cbcf66dcf3f4ff0098d56629a42a" dependencies = [ "anyhow", "elf", - "log", "risc0-zkp", "risc0-zkvm-platform", "serde", + "tracing", ] [[package]] name = "risc0-circuit-recursion" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97547e10e9fdaaab8b64ffb45dc158b31f023b1a68015c6ce9f12fe3e403012a" +checksum = "31c673bc30e6cdf0b279b59f10f764c6c45caee356c639161b86bade4428806a" dependencies = [ "anyhow", "bytemuck", - "log", "risc0-core", "risc0-zkp", "tracing", @@ -2389,12 +2498,11 @@ dependencies = [ [[package]] name = "risc0-circuit-rv32im" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a269d01b18cba24ee1a08f68726fc3623e8705ed79d158377d12e9129dcde2e" +checksum = "c91d370fbda269b6cf3980538a1069d0ebda075bad040385f8b2c0155b0430e3" dependencies = [ "anyhow", - "log", "risc0-core", "risc0-zkp", "risc0-zkvm-platform", @@ -2403,9 +2511,9 @@ dependencies = [ [[package]] name = "risc0-core" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "477e0bb8d2ec0b7955088b521eb596901e652d0faa2ea73bda0b77e05af5c07d" +checksum = "ce6be5edae3c8f31ccdbf68f6c6baf1c28157b93c6e5a32b307bb5c3486e1033" dependencies = [ "bytemuck", "rand_core", @@ -2413,16 +2521,15 @@ dependencies = [ [[package]] name = "risc0-zkp" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5abb1a0cf847d3f9aed1e563b76c358107e7ba66dbfab28f7144252c990bd82" +checksum = "a4fe4427de2ade22ec3cf89f0a439ef24ea003383e59759ba97fc90ff36e4a35" dependencies = [ "anyhow", "blake2", "bytemuck", "digest 0.10.7", "hex", - "log", "paste", "rand_core", "risc0-core", @@ -2434,16 +2541,19 @@ dependencies = [ [[package]] name = "risc0-zkvm" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf80df202c038efc2199be34fda8114b38bfc5b2b51c60cbbdf1f425b07b384" +checksum = "2291f6b83fb65c88191120c395f155f02460adcc145d860509ec0aad75c21ec8" dependencies = [ "anyhow", + "ark-bn254", + "ark-groth16", + "ark-serialize 0.4.2", "bytemuck", "cfg-if", "getrandom", "hex", - "log", + "num-bigint", "num-derive", "num-traits", "risc0-binfmt", @@ -2455,14 +2565,15 @@ dependencies = [ "rrs-lib", "semver 1.0.20", "serde", + "sha2", "tracing", ] [[package]] name = "risc0-zkvm-platform" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dcd6b66f7a4972001db0acf3f06d99b7851c8d9f0de1f7e0fb4496c66c5cd02" +checksum = "dc42c3f4550b3bf7311d21ae6b35807dc1010e918827a6785d509fa21a5728df" dependencies = [ "bytemuck", "getrandom", @@ -3274,6 +3385,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3297,6 +3409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", + "valuable", ] [[package]] @@ -3309,6 +3422,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "tracing-core", +] + [[package]] name = "try-lock" version = "0.2.4" diff --git a/guests/op-block/Cargo.toml b/guests/op-block/Cargo.toml index b1bb8fd2..18f3b10a 100644 --- a/guests/op-block/Cargo.toml +++ b/guests/op-block/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [workspace] [dependencies] -risc0-zkvm = { version = "0.19", default-features = false, features = ['std'] } +risc0-zkvm = { version = "0.20.0-rc.1", default-features = false, features = ['std'] } zeth-lib = { path = "../../lib", default-features = false } [patch.crates-io] diff --git a/guests/op-derive/Cargo.lock b/guests/op-derive/Cargo.lock index c485993e..e7afcce5 100644 --- a/guests/op-derive/Cargo.lock +++ b/guests/op-derive/Cargo.lock @@ -143,6 +143,52 @@ version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-snark", + "ark-std 0.4.0", + "blake2", + "derivative", + "digest 0.10.7", + "sha2", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.3.0" @@ -226,6 +272,46 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff 0.4.2", + "ark-poly", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "tracing", + "tracing-subscriber", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -242,11 +328,35 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ + "ark-serialize-derive", "ark-std 0.4.0", "digest 0.10.7", "num-bigint", ] +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -766,6 +876,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + [[package]] name = "dunce" version = "1.0.4" @@ -1833,7 +1949,6 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" name = "op-derive" version = "0.1.0" dependencies = [ - "k256", "risc0-zkvm", "zeth-lib", "zeth-primitives", @@ -2356,26 +2471,38 @@ dependencies = [ [[package]] name = "risc0-binfmt" -version = "0.18.0" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede27631e6b2a946a43db812063453c9701d5d2544d82f9abec2cc12574ebb8e" +checksum = "80ae13e7539af760ece7ced07f33f4eca379cbcf66dcf3f4ff0098d56629a42a" dependencies = [ "anyhow", "elf", - "log", "risc0-zkp", "risc0-zkvm-platform", "serde", + "tracing", +] + +[[package]] +name = "risc0-circuit-recursion" +version = "0.20.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c673bc30e6cdf0b279b59f10f764c6c45caee356c639161b86bade4428806a" +dependencies = [ + "anyhow", + "bytemuck", + "risc0-core", + "risc0-zkp", + "tracing", ] [[package]] name = "risc0-circuit-rv32im" -version = "0.18.0" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68e00222152fdc94cacc9b6682b5c0cbe8138f1ee82e80c24a64d9ad2c6d7415" +checksum = "c91d370fbda269b6cf3980538a1069d0ebda075bad040385f8b2c0155b0430e3" dependencies = [ "anyhow", - "log", "risc0-core", "risc0-zkp", "risc0-zkvm-platform", @@ -2384,9 +2511,9 @@ dependencies = [ [[package]] name = "risc0-core" -version = "0.18.0" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08605aec93ea22ed83f7f81f42e2d7287a5b0c749d8671f94de9d5994020045c" +checksum = "ce6be5edae3c8f31ccdbf68f6c6baf1c28157b93c6e5a32b307bb5c3486e1033" dependencies = [ "bytemuck", "rand_core", @@ -2394,16 +2521,15 @@ dependencies = [ [[package]] name = "risc0-zkp" -version = "0.18.0" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28166926bb177824939f4e91083198f9f3da8137aeac32361bd34548c0526fa5" +checksum = "a4fe4427de2ade22ec3cf89f0a439ef24ea003383e59759ba97fc90ff36e4a35" dependencies = [ "anyhow", "blake2", "bytemuck", "digest 0.10.7", "hex", - "log", "paste", "rand_core", "risc0-core", @@ -2415,34 +2541,44 @@ dependencies = [ [[package]] name = "risc0-zkvm" -version = "0.18.0" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec972152bcaa1a2967e412e22a84f6e2984a95c701bcc7943ca8ca10126ee0a2" +checksum = "2291f6b83fb65c88191120c395f155f02460adcc145d860509ec0aad75c21ec8" dependencies = [ "anyhow", + "ark-bn254", + "ark-groth16", + "ark-serialize 0.4.2", "bytemuck", "cfg-if", "getrandom", "hex", - "libm", - "log", + "num-bigint", "num-derive", "num-traits", "risc0-binfmt", + "risc0-circuit-recursion", "risc0-circuit-rv32im", "risc0-core", "risc0-zkp", "risc0-zkvm-platform", + "rrs-lib", + "semver 1.0.20", "serde", - "tempfile", + "sha2", "tracing", ] [[package]] name = "risc0-zkvm-platform" -version = "0.18.0" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8524b46783b58b00e9b2a4712e837093c975b23cf25bfaf99e1cf69e9011bf6b" +checksum = "dc42c3f4550b3bf7311d21ae6b35807dc1010e918827a6785d509fa21a5728df" +dependencies = [ + "bytemuck", + "getrandom", + "libm", +] [[package]] name = "rle-decode-fast" @@ -2472,6 +2608,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "rrs-lib" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4382d3af3a4ebdae7f64ba6edd9114fff92c89808004c4943b393377a25d001" +dependencies = [ + "downcast-rs", + "paste", +] + [[package]] name = "ruint" version = "1.11.1" @@ -3239,6 +3385,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3262,6 +3409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", + "valuable", ] [[package]] @@ -3274,6 +3422,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "tracing-core", +] + [[package]] name = "try-lock" version = "0.2.4" diff --git a/guests/op-derive/Cargo.toml b/guests/op-derive/Cargo.toml index 44ab376d..0df01256 100644 --- a/guests/op-derive/Cargo.toml +++ b/guests/op-derive/Cargo.toml @@ -6,8 +6,7 @@ edition = "2021" [workspace] [dependencies] -k256 = { version = "=0.13.1", features = ["std", "ecdsa"], default_features = false } -risc0-zkvm = { version = "0.18", default-features = false, features = ['std'] } +risc0-zkvm = { version = "0.20.0-rc.1", default-features = false, features = ['std'] } zeth-lib = { path = "../../lib", default-features = false } zeth-primitives = { path = "../../primitives", default-features = false } diff --git a/host/Cargo.toml b/host/Cargo.toml index c4d6e137..6d65ad42 100644 --- a/host/Cargo.toml +++ b/host/Cargo.toml @@ -15,7 +15,7 @@ ethers-core = { version = "2.0", features = ["optimism"] } hex = "0.4.3" log = "0.4" revm = { workspace = true } -risc0-zkvm = { workspace = true, features = ["prove", "profiler"] } +risc0-zkvm = { workspace = true, features = ["prove"] } ruint = { version = "1.10", default-features = false } serde = "1.0" tempfile = "3.6" diff --git a/host/src/bin/op-derive.rs b/host/src/bin/op-derive.rs index 7c1011f8..eeace77e 100644 --- a/host/src/bin/op-derive.rs +++ b/host/src/bin/op-derive.rs @@ -28,10 +28,10 @@ use bonsai_sdk::alpha as bonsai_sdk; use clap::Parser; use log::{error, info}; use risc0_zkvm::{ - serde::to_vec, ExecutorEnv, ExecutorImpl, FileSegmentRef, MemoryImage, Program, Receipt, + compute_image_id, serde::to_vec, ExecutorEnv, ExecutorImpl, FileSegmentRef, Receipt, }; use tempfile::tempdir; -use zeth_guests::{OP_DERIVE_ELF, OP_DERIVE_ID, OP_DERIVE_PATH}; +use zeth_guests::{OP_DERIVE_ELF, OP_DERIVE_ID}; use zeth_lib::{ host::provider::{new_provider, BlockQuery}, optimism::{ @@ -81,10 +81,6 @@ struct Args { #[clap(short, long, require_equals = true)] /// Bonsai Session UUID to use for receipt verification. verify_bonsai_receipt_uuid: Option, - - #[clap(short, long, default_value_t = false)] - /// Whether to profile the zkVM execution - profile: bool, } fn cache_file_path(cache_path: &Path, network: &str, block_no: u64, ext: &str) -> PathBuf { @@ -162,8 +158,6 @@ async fn main() -> Result<()> { input.len() * 4 / 1_000_000 ); - let mut profiler = risc0_zkvm::Profiler::new(OP_DERIVE_PATH, OP_DERIVE_ELF).unwrap(); - info!("Running the executor..."); let start_time = std::time::Instant::now(); let session = { @@ -173,15 +167,10 @@ async fn main() -> Result<()> { .segment_limit_po2(segment_limit_po2) .write_slice(&input); - if args.profile { - builder.trace_callback(profiler.make_trace_callback()); - } - let env = builder.build().unwrap(); let mut exec = ExecutorImpl::from_elf(env, OP_DERIVE_ELF).unwrap(); let segment_dir = tempdir().unwrap(); - exec.run_with_callback(|segment| { Ok(Box::new(FileSegmentRef::new(&segment, segment_dir.path())?)) }) @@ -192,28 +181,12 @@ async fn main() -> Result<()> { session.segments.len(), start_time.elapsed() ); - - if args.profile { - profiler.finalize(); - - let sys_time = std::time::SystemTime::now() - .duration_since(std::time::UNIX_EPOCH) - .unwrap(); - tokio::fs::write( - format!("profile_{}.pb", sys_time.as_secs()), - &profiler.encode_to_vec(), - ) - .await - .expect("Failed to write profiling output"); - } - println!( "Executor ran in (roughly) {} cycles", session.segments.len() * (1 << segment_limit_po2) ); - let output_guest: DeriveOutput = session.journal.decode().unwrap(); - + let output_guest = session.journal.unwrap().decode().unwrap(); if output == output_guest { println!("Executor succeeded"); } else { @@ -234,19 +207,11 @@ async fn main() -> Result<()> { // create the memoryImg, upload it and return the imageId info!("Uploading memory image"); - let img_id = { - let program = Program::load_elf(OP_DERIVE_ELF, risc0_zkvm::GUEST_MAX_MEM as u32) - .expect("Could not load ELF"); - let image = MemoryImage::new(&program, risc0_zkvm::PAGE_SIZE as u32) - .expect("Could not create memory image"); - let image_id = hex::encode(image.compute_id()); - let image = bincode::serialize(&image).expect("Failed to serialize memory img"); - - client - .upload_img(&image_id, image) - .expect("Could not upload ELF"); - image_id - }; + let image_id = + hex::encode(compute_image_id(OP_DERIVE_ELF).expect("Could not compute image ID")); + client + .upload_img(&image_id, OP_DERIVE_ELF.to_vec()) + .expect("Could not upload ELF"); // Prepare input data and upload it. info!("Uploading inputs"); @@ -259,7 +224,7 @@ async fn main() -> Result<()> { // Start a session running the prover info!("Starting session"); let session = client - .create_session(img_id, input_id) + .create_session(image_id, input_id) .expect("Could not create Bonsai session"); println!("Bonsai session UUID: {}", session.uuid); diff --git a/host/src/main.rs b/host/src/main.rs index fea9c0ac..4b69aa7c 100644 --- a/host/src/main.rs +++ b/host/src/main.rs @@ -26,13 +26,11 @@ use clap::Parser; use ethers_core::types::Transaction as EthersTransaction; use log::{error, info}; use risc0_zkvm::{ - serde::to_vec, ExecutorEnv, ExecutorImpl, FileSegmentRef, MemoryImage, Program, Receipt, + compute_image_id, serde::to_vec, ExecutorEnv, ExecutorImpl, FileSegmentRef, Receipt, }; use serde::{Deserialize, Serialize}; use tempfile::tempdir; -use zeth_guests::{ - ETH_BLOCK_ELF, ETH_BLOCK_ID, ETH_BLOCK_PATH, OP_BLOCK_ELF, OP_BLOCK_ID, OP_BLOCK_PATH, -}; +use zeth_guests::{ETH_BLOCK_ELF, OP_BLOCK_ELF}; use zeth_lib::{ builder::{BlockBuilderStrategy, EthereumStrategy, OptimismStrategy}, consts::{ChainSpec, Network, ETH_MAINNET_CHAIN_SPEC, OP_MAINNET_CHAIN_SPEC}, @@ -79,10 +77,6 @@ struct Args { #[clap(short, long, require_equals = true)] /// Bonsai Session UUID to use for receipt verification. verify_bonsai_receipt_uuid: Option, - - #[clap(short, long, default_value_t = false)] - /// Whether to profile the zkVM execution - profile: bool, } fn cache_file_path(cache_path: &Path, network: &str, block_no: u64, ext: &str) -> PathBuf { @@ -99,24 +93,10 @@ async fn main() -> Result<()> { match args.network { Network::Ethereum => { - run::( - args, - ETH_MAINNET_CHAIN_SPEC.clone(), - ETH_BLOCK_ELF, - ETH_BLOCK_ID, - ETH_BLOCK_PATH, - ) - .await + run::(args, ETH_MAINNET_CHAIN_SPEC.clone(), ETH_BLOCK_ELF).await } Network::Optimism => { - run::( - args, - OP_MAINNET_CHAIN_SPEC.clone(), - OP_BLOCK_ELF, - OP_BLOCK_ID, - OP_BLOCK_PATH, - ) - .await + run::(args, OP_MAINNET_CHAIN_SPEC.clone(), OP_BLOCK_ELF).await } } } @@ -125,8 +105,6 @@ async fn run( args: Args, chain_spec: ChainSpec, guest_elf: &[u8], - guest_id: [u32; risc0_zkvm::sha::DIGEST_WORDS], - guest_path: &str, ) -> Result<()> where N::TxEssence: 'static + Send + TryFrom + Serialize + Deserialize<'static>, @@ -175,8 +153,6 @@ where input.len() * 4 / 1_000_000 ); - let mut profiler = risc0_zkvm::Profiler::new(guest_path, guest_elf).unwrap(); - info!("Running the executor..."); let start_time = Instant::now(); let session = { @@ -186,10 +162,6 @@ where .segment_limit_po2(segment_limit_po2) .write_slice(&input); - if args.profile { - builder.trace_callback(profiler.make_trace_callback()); - } - let env = builder.build().unwrap(); let mut exec = ExecutorImpl::from_elf(env, guest_elf).unwrap(); @@ -205,35 +177,19 @@ where session.segments.len(), start_time.elapsed() ); - - if args.profile { - profiler.finalize(); - - let sys_time = std::time::SystemTime::now() - .duration_since(std::time::UNIX_EPOCH) - .unwrap(); - tokio::fs::write( - format!("profile_{}.pb", sys_time.as_secs()), - &profiler.encode_to_vec(), - ) - .await - .expect("Failed to write profiling output"); - } - info!( "Executor ran in (roughly) {} cycles", session.segments.len() * (1 << segment_limit_po2) ); let expected_hash = preflight_data.header.hash(); - let found_hash: BlockHash = session.journal.decode().unwrap(); - - if found_hash == expected_hash { - info!("Block hash (from executor): {}", found_hash); + let hash_guest: BlockHash = session.journal.unwrap().decode().unwrap(); + if hash_guest == expected_hash { + info!("Block hash (from executor): {}", hash_guest); } else { error!( - "Final block hash mismatch (from executor) {} (expected {})", - found_hash, expected_hash, + "Block hash mismatch! Executor: {}, expected: {}", + hash_guest, expected_hash, ); } } @@ -248,19 +204,11 @@ where // create the memoryImg, upload it and return the imageId info!("Uploading memory image"); - let img_id = { - let program = Program::load_elf(guest_elf, risc0_zkvm::GUEST_MAX_MEM as u32) - .expect("Could not load ELF"); - let image = MemoryImage::new(&program, risc0_zkvm::PAGE_SIZE as u32) - .expect("Could not create memory image"); - let image_id = hex::encode(image.compute_id()); - let image = bincode::serialize(&image).expect("Failed to serialize memory img"); - - client - .upload_img(&image_id, image) - .expect("Could not upload ELF"); - image_id - }; + let image_id = + hex::encode(compute_image_id(guest_elf).expect("Could not compute image ID")); + client + .upload_img(&image_id, guest_elf.to_vec()) + .expect("Could not upload ELF"); // Prepare input data and upload it. info!("Uploading inputs"); @@ -273,7 +221,7 @@ where // Start a session running the prover info!("Starting session"); let session = client - .create_session(img_id, input_id) + .create_session(image_id, input_id) .expect("Could not create Bonsai session"); println!("Bonsai session UUID: {}", session.uuid); @@ -282,6 +230,7 @@ where // Verify receipt from Bonsai (if requested) if let Some(session_uuid) = bonsai_session_uuid { + let image_id = compute_image_id(guest_elf).expect("Could not compute image ID"); let client = bonsai_sdk::Client::from_env(risc0_zkvm::VERSION) .expect("Could not create Bonsai client"); let session = bonsai_sdk::SessionId { uuid: session_uuid }; @@ -311,18 +260,17 @@ where let receipt: Receipt = bincode::deserialize(&receipt_buf).expect("Could not deserialize receipt"); receipt - .verify(guest_id) + .verify(image_id) .expect("Receipt verification failed"); let expected_hash = preflight_data.header.hash(); - let found_hash: BlockHash = receipt.journal.decode().unwrap(); - - if found_hash == expected_hash { - info!("Block hash (from Bonsai): {}", found_hash); + let hash_guest: BlockHash = receipt.journal.decode().unwrap(); + if hash_guest == expected_hash { + info!("Block hash (from Bonsai): {}", hash_guest); } else { error!( - "Final block hash mismatch (from Bonsai) {} (expected {})", - found_hash, expected_hash, + "Block hash mismatch! Executor: {}, expected: {}", + hash_guest, expected_hash, ); } } else { diff --git a/testing/ef-tests/testguest/Cargo.lock b/testing/ef-tests/testguest/Cargo.lock index b2c56123..ec716674 100644 --- a/testing/ef-tests/testguest/Cargo.lock +++ b/testing/ef-tests/testguest/Cargo.lock @@ -143,6 +143,52 @@ version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-snark", + "ark-std 0.4.0", + "blake2", + "derivative", + "digest 0.10.7", + "sha2", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.3.0" @@ -226,6 +272,46 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff 0.4.2", + "ark-poly", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "tracing", + "tracing-subscriber", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -242,11 +328,35 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ + "ark-serialize-derive", "ark-std 0.4.0", "digest 0.10.7", "num-bigint", ] +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff 0.4.2", + "ark-relations", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -2353,27 +2463,26 @@ dependencies = [ [[package]] name = "risc0-binfmt" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923c85a23cb9a9475b8cd4479ad3a06252604a361626e9ae7dc0dc635af22c22" +checksum = "80ae13e7539af760ece7ced07f33f4eca379cbcf66dcf3f4ff0098d56629a42a" dependencies = [ "anyhow", "elf", - "log", "risc0-zkp", "risc0-zkvm-platform", "serde", + "tracing", ] [[package]] name = "risc0-circuit-recursion" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97547e10e9fdaaab8b64ffb45dc158b31f023b1a68015c6ce9f12fe3e403012a" +checksum = "31c673bc30e6cdf0b279b59f10f764c6c45caee356c639161b86bade4428806a" dependencies = [ "anyhow", "bytemuck", - "log", "risc0-core", "risc0-zkp", "tracing", @@ -2381,12 +2490,11 @@ dependencies = [ [[package]] name = "risc0-circuit-rv32im" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a269d01b18cba24ee1a08f68726fc3623e8705ed79d158377d12e9129dcde2e" +checksum = "c91d370fbda269b6cf3980538a1069d0ebda075bad040385f8b2c0155b0430e3" dependencies = [ "anyhow", - "log", "risc0-core", "risc0-zkp", "risc0-zkvm-platform", @@ -2395,9 +2503,9 @@ dependencies = [ [[package]] name = "risc0-core" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "477e0bb8d2ec0b7955088b521eb596901e652d0faa2ea73bda0b77e05af5c07d" +checksum = "ce6be5edae3c8f31ccdbf68f6c6baf1c28157b93c6e5a32b307bb5c3486e1033" dependencies = [ "bytemuck", "rand_core", @@ -2405,16 +2513,15 @@ dependencies = [ [[package]] name = "risc0-zkp" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5abb1a0cf847d3f9aed1e563b76c358107e7ba66dbfab28f7144252c990bd82" +checksum = "a4fe4427de2ade22ec3cf89f0a439ef24ea003383e59759ba97fc90ff36e4a35" dependencies = [ "anyhow", "blake2", "bytemuck", "digest 0.10.7", "hex", - "log", "paste", "rand_core", "risc0-core", @@ -2426,16 +2533,19 @@ dependencies = [ [[package]] name = "risc0-zkvm" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf80df202c038efc2199be34fda8114b38bfc5b2b51c60cbbdf1f425b07b384" +checksum = "2291f6b83fb65c88191120c395f155f02460adcc145d860509ec0aad75c21ec8" dependencies = [ "anyhow", + "ark-bn254", + "ark-groth16", + "ark-serialize 0.4.2", "bytemuck", "cfg-if", "getrandom", "hex", - "log", + "num-bigint", "num-derive", "num-traits", "risc0-binfmt", @@ -2447,14 +2557,15 @@ dependencies = [ "rrs-lib", "semver 1.0.20", "serde", + "sha2", "tracing", ] [[package]] name = "risc0-zkvm-platform" -version = "0.19.1" +version = "0.20.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dcd6b66f7a4972001db0acf3f06d99b7851c8d9f0de1f7e0fb4496c66c5cd02" +checksum = "dc42c3f4550b3bf7311d21ae6b35807dc1010e918827a6785d509fa21a5728df" dependencies = [ "bytemuck", "getrandom", @@ -3274,6 +3385,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3297,6 +3409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", + "valuable", ] [[package]] @@ -3309,6 +3422,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "tracing-core", +] + [[package]] name = "try-lock" version = "0.2.4" diff --git a/testing/ef-tests/testguest/Cargo.toml b/testing/ef-tests/testguest/Cargo.toml index 94dd152d..2c226cdc 100644 --- a/testing/ef-tests/testguest/Cargo.toml +++ b/testing/ef-tests/testguest/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [workspace] [dependencies] -risc0-zkvm = { version = "0.19", default-features = false, features = ['std'] } +risc0-zkvm = { version = "0.20.0-rc.1", default-features = false, features = ['std'] } zeth-lib = { path = "../../../lib", default-features = false } [patch.crates-io] diff --git a/testing/ef-tests/tests/executor.rs b/testing/ef-tests/tests/executor.rs index 09acc04e..1d5953a6 100644 --- a/testing/ef-tests/tests/executor.rs +++ b/testing/ef-tests/tests/executor.rs @@ -87,9 +87,10 @@ fn executor( Ok(Box::new(FileSegmentRef::new(&segment, segment_dir.path())?)) }) .unwrap(); - println!("Generated {} segments", session.segments.len()); + let (total_cycles, user_cycles) = session.get_cycles().unwrap(); + println!("Cycles: total={}, user={}", total_cycles, user_cycles); - let found_hash: BlockHash = session.journal.decode().unwrap(); + let found_hash: BlockHash = session.journal.unwrap().decode().unwrap(); println!("Block hash (from executor): {}", found_hash); assert_eq!(found_hash, expected_header.hash()); }