From 7cf2e64c1208163b033664c1e14ae6607f2ba10c Mon Sep 17 00:00:00 2001 From: dubbelosix Date: Fri, 3 Nov 2023 15:35:24 +0530 Subject: [PATCH] Fixing broken prover benchmark (#1134) * fixing broken bench * added new file datagen.rs that was missing * revert back to using risc0 zkvm bytes * fix risc0 zkvm bytes and zkvm/prove feature --- Cargo.lock | 719 +++++++++++------- adapters/risc0/Cargo.toml | 2 +- adapters/risc0/src/metrics.rs | 2 +- examples/demo-rollup/Cargo.toml | 3 +- .../demo-rollup/benches/prover/blocks.hex | 5 - .../demo-rollup/benches/prover/datagen.rs | 25 + .../benches/prover/prover_bench.rs | 68 +- .../benches/prover/rollup_config.toml | 1 + .../provers/risc0/.cargo/config.toml | 2 - examples/demo-rollup/provers/risc0/build.rs | 2 +- .../provers/risc0/guest-celestia/Cargo.lock | 6 +- .../provers/risc0/guest-mock/Cargo.lock | 189 ++--- .../provers/risc0/guest-mock/Cargo.toml | 3 + .../risc0/guest-mock/src/bin/mock_da.rs | 28 + .../sov-modules-stf-template/Cargo.toml | 2 +- utils/zk-cycle-utils/Cargo.toml | 1 + 16 files changed, 620 insertions(+), 438 deletions(-) delete mode 100644 examples/demo-rollup/benches/prover/blocks.hex create mode 100644 examples/demo-rollup/benches/prover/datagen.rs delete mode 100644 examples/demo-rollup/provers/risc0/.cargo/config.toml diff --git a/Cargo.lock b/Cargo.lock index 17f91fe6c..3fe7cf387 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -111,9 +111,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ "getrandom 0.2.10", "once_cell", @@ -122,14 +122,15 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if", "getrandom 0.2.10", "once_cell", "version_check", + "zerocopy", ] [[package]] @@ -244,9 +245,9 @@ checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "arbitrary" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2e1373abdaa212b704512ec2bd8b26bd0b7d5c3f70117411a5d9a451383c859" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" dependencies = [ "derive_arbitrary", ] @@ -257,6 +258,46 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +[[package]] +name = "ark-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[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" @@ -340,6 +381,19 @@ dependencies = [ "syn 1.0.109", ] +[[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-serialize" version = "0.3.0" @@ -356,11 +410,23 @@ 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 1.0.69", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -566,7 +632,7 @@ dependencies = [ "schnorrkel", "serde", "serde-hex", - "sp-core 24.0.0", + "sp-core 25.0.0", "structopt", "subxt", "tokio", @@ -634,9 +700,9 @@ dependencies = [ [[package]] name = "basic-toml" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6" +checksum = "2f2139706359229bfa8f19142ac1155b4b80beafb7a60471ac5dd109d4a19778" dependencies = [ "serde", ] @@ -880,7 +946,7 @@ dependencies = [ "bitflags 2.4.1", "boa_interner", "boa_macros", - "indexmap 2.0.2", + "indexmap 2.1.0", "num-bigint 0.4.4", "rustc-hash", ] @@ -903,7 +969,7 @@ dependencies = [ "dashmap", "fast-float", "icu_normalizer", - "indexmap 2.0.2", + "indexmap 2.1.0", "itertools 0.11.0", "num-bigint 0.4.4", "num-integer", @@ -958,8 +1024,8 @@ checksum = "f3e5afa991908cfbe79bd3109b824e473a1dc5f74f31fab91bb44c9e245daa77" dependencies = [ "boa_gc", "boa_macros", - "hashbrown 0.14.1", - "indexmap 2.0.2", + "hashbrown 0.14.2", + "indexmap 2.1.0", "once_cell", "phf", "rustc-hash", @@ -1185,7 +1251,7 @@ dependencies = [ [[package]] name = "c-kzg" version = "0.1.0" -source = "git+https://github.com/ethereum/c-kzg-4844#f3fffecd1ce7e8b6620cd5bac50c660efc20e48c" +source = "git+https://github.com/ethereum/c-kzg-4844#624aa60d01da524827123506975431aa5454c80d" dependencies = [ "bindgen 0.66.1", "blst", @@ -1263,7 +1329,7 @@ source = "git+https://github.com/eigerco/celestia-node-rs.git?rev=1fa61eb#1fa61e dependencies = [ "celestia-types", "http", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "serde", "thiserror", "tracing", @@ -1533,13 +1599,14 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.9.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c37be52ef5e3b394db27a2341010685ad5103c72ac15ce2e9420a7e8f93f342c" +checksum = "a5104de16b218eddf8e34ffe2f86f74bfa4e61e95a1b89732fccf6325efd0557" dependencies = [ "cfg-if", "cpufeatures", "hex", + "proptest", "serde", ] @@ -1585,6 +1652,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +[[package]] +name = "constcat" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" + [[package]] name = "convert_case" version = "0.4.0" @@ -1645,9 +1718,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] @@ -1672,9 +1745,9 @@ dependencies = [ [[package]] name = "crc-catalog" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484" +checksum = "4939f9ed1444bd8c896d37f3090012fa6e7834fe84ef8c9daa166109515732f9" [[package]] name = "crc32fast" @@ -1892,9 +1965,9 @@ dependencies = [ [[package]] name = "curve25519-dalek-derive" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2 1.0.69", "quote 1.0.33", @@ -2026,10 +2099,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown 0.14.1", + "hashbrown 0.14.2", "lock_api", "once_cell", - "parking_lot_core 0.9.8", + "parking_lot_core 0.9.9", ] [[package]] @@ -2109,7 +2182,7 @@ dependencies = [ "clap 4.4.7", "demo-stf", "hex", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "rand 0.8.5", "reth-primitives", "secp256k1 0.27.0", @@ -2134,7 +2207,7 @@ dependencies = [ "sov-value-setter", "tempfile", "tokio", - "toml 0.8.2", + "toml 0.8.6", "tracing", ] @@ -2171,9 +2244,9 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2 1.0.69", "quote 1.0.33", @@ -2333,7 +2406,7 @@ dependencies = [ "rand 0.8.5", "rlp", "smallvec 1.11.1", - "socket2 0.4.9", + "socket2 0.4.10", "tokio", "tracing", "tracing-subscriber 0.3.17", @@ -2360,7 +2433,7 @@ checksum = "53ecafc952c4528d9b51a458d1a8904b81783feff9fde08ab6ed2545ff396872" dependencies = [ "cfg-if", "libc", - "socket2 0.4.9", + "socket2 0.4.10", "winapi", ] @@ -2840,7 +2913,7 @@ dependencies = [ "ethabi", "generic-array 0.14.7", "k256", - "num_enum 0.7.0", + "num_enum 0.7.1", "once_cell", "open-fastrlp", "rand 0.8.5", @@ -3076,9 +3149,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d" +checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7" [[package]] name = "finl_unicode" @@ -3544,7 +3617,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" dependencies = [ - "ahash 0.7.6", + "ahash 0.7.7", ] [[package]] @@ -3553,7 +3626,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.6", + "ahash 0.7.7", ] [[package]] @@ -3562,16 +3635,16 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", ] [[package]] name = "hashbrown" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", "allocator-api2", "serde", ] @@ -3789,7 +3862,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.9", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -3798,9 +3871,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http", @@ -3810,7 +3883,7 @@ dependencies = [ "rustls-native-certs", "tokio", "tokio-rustls", - "webpki-roots 0.23.1", + "webpki-roots", ] [[package]] @@ -4097,12 +4170,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.1", + "hashbrown 0.14.2", "serde", ] @@ -4156,7 +4229,7 @@ version = "0.3.0" dependencies = [ "anyhow", "borsh", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "serde", "sov-chain-state", "sov-data-generators", @@ -4173,9 +4246,9 @@ dependencies = [ [[package]] name = "inventory" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1be380c410bf0595e94992a648ea89db4dd3f3354ba54af206fd2a68cf5ac8e" +checksum = "0508c56cfe9bfd5dfeb0c22ab9a6abfda2f27bdca422132e494266351ed8d83c" [[package]] name = "io-lifetimes" @@ -4190,9 +4263,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" @@ -4262,9 +4335,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" dependencies = [ "wasm-bindgen", ] @@ -4287,18 +4360,18 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.20.2" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de902baa44bf34a58b1a4906f8b840d7d60dcec5f41fe08b4dbc14cf9efa821c" +checksum = "affdc52f7596ccb2d7645231fc6163bb314630c989b64998f3699a28b4d5d4dc" dependencies = [ - "jsonrpsee-client-transport 0.20.2", - "jsonrpsee-core 0.20.2", - "jsonrpsee-http-client 0.20.2", - "jsonrpsee-proc-macros 0.20.2", + "jsonrpsee-client-transport 0.20.3", + "jsonrpsee-core 0.20.3", + "jsonrpsee-http-client 0.20.3", + "jsonrpsee-proc-macros 0.20.3", "jsonrpsee-server", - "jsonrpsee-types 0.20.2", - "jsonrpsee-wasm-client 0.20.2", - "jsonrpsee-ws-client 0.20.2", + "jsonrpsee-types 0.20.3", + "jsonrpsee-wasm-client 0.20.3", + "jsonrpsee-ws-client 0.20.3", "tokio", "tracing", ] @@ -4325,20 +4398,20 @@ dependencies = [ "tokio-rustls", "tokio-util", "tracing", - "webpki-roots 0.25.2", + "webpki-roots", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.20.2" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58d9851f8f5653e0433a898e9032bde4910b35d625bd9dcf33ef6e36e7c3d456" +checksum = "b5b005c793122d03217da09af68ba9383363caa950b90d3436106df8cabce935" dependencies = [ "futures-channel", "futures-util", "gloo-net 0.4.0", "http", - "jsonrpsee-core 0.20.2", + "jsonrpsee-core 0.20.3", "pin-project", "rustls-native-certs", "soketto", @@ -4348,7 +4421,7 @@ dependencies = [ "tokio-util", "tracing", "url", - "webpki-roots 0.25.2", + "webpki-roots", ] [[package]] @@ -4377,9 +4450,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.20.2" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f45d37af23707750136379f6799e76ebfcf2d425ec4e36d0deb7921da5e65c" +checksum = "da2327ba8df2fdbd5e897e2b5ed25ce7f299d345b9736b6828814c3dbd1fd47b" dependencies = [ "anyhow", "async-lock", @@ -4388,7 +4461,7 @@ dependencies = [ "futures-timer", "futures-util", "hyper", - "jsonrpsee-types 0.20.2", + "jsonrpsee-types 0.20.3", "parking_lot 0.12.1", "rand 0.8.5", "rustc-hash", @@ -4422,15 +4495,15 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.20.2" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02308562f2e8162a32f8d6c3dc19c29c858d5d478047c886a5c3c25b5f7fa868" +checksum = "5f80c17f62c7653ce767e3d7288b793dfec920f97067ceb189ebdd3570f2bc20" dependencies = [ "async-trait", "hyper", "hyper-rustls", - "jsonrpsee-core 0.20.2", - "jsonrpsee-types 0.20.2", + "jsonrpsee-core 0.20.3", + "jsonrpsee-types 0.20.3", "serde", "serde_json", "thiserror", @@ -4455,9 +4528,9 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.20.2" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26b3675a943d083d0bf6e367ec755dccec56c41888afa13b191c1c4ff87c652" +checksum = "29110019693a4fa2dbda04876499d098fa16d70eba06b1e6e2b3f1b251419515" dependencies = [ "heck 0.4.1", "proc-macro-crate 1.1.3", @@ -4468,15 +4541,15 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.20.2" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed2bec9c76cee118c27138cc1c877938bcaa01207a5d902b80dbfc60466bc9c" +checksum = "82c39a00449c9ef3f50b84fc00fc4acba20ef8f559f07902244abf4c15c5ab9c" dependencies = [ "futures-util", "http", "hyper", - "jsonrpsee-core 0.20.2", - "jsonrpsee-types 0.20.2", + "jsonrpsee-core 0.20.3", + "jsonrpsee-types 0.20.3", "route-recognizer", "serde", "serde_json", @@ -4505,9 +4578,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.20.2" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05eaff23af19f10ba6fbb76519bed6da4d3b9bbaef13d39b7c2b6c14e532d27e" +checksum = "5be0be325642e850ed0bdff426674d2e66b2b7117c9be23a7caef68a2902b7d9" dependencies = [ "anyhow", "beef", @@ -4530,13 +4603,13 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.20.2" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ae1c71afe02a21713e197438f1bcfaa171c3dfe533b9505a0990cb8297779e" +checksum = "7c7cbb3447cf14fd4d2f407c3cc96e6c9634d5440aa1fbed868a31f3c02b27f0" dependencies = [ - "jsonrpsee-client-transport 0.20.2", - "jsonrpsee-core 0.20.2", - "jsonrpsee-types 0.20.2", + "jsonrpsee-client-transport 0.20.3", + "jsonrpsee-core 0.20.3", + "jsonrpsee-types 0.20.3", ] [[package]] @@ -4553,14 +4626,14 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.20.2" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd34d3ab8c09f02fd4c432f256bc8b143b616b222b03050f941ee53f0e8d7b24" +checksum = "bca9cb3933ccae417eb6b08c3448eb1cb46e39834e5b503e395e5e5bd08546c0" dependencies = [ "http", - "jsonrpsee-client-transport 0.20.2", - "jsonrpsee-core 0.20.2", - "jsonrpsee-types 0.20.2", + "jsonrpsee-client-transport 0.20.3", + "jsonrpsee-core 0.20.3", + "jsonrpsee-types 0.20.3", "url", ] @@ -4572,7 +4645,7 @@ checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ "base64 0.21.5", "pem", - "ring", + "ring 0.16.20", "serde", "serde_json", "simple_asn1", @@ -4790,9 +4863,9 @@ checksum = "77a1a2647d5b7134127971a6de0d533c49de2159167e7f259c427195f87168a1" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", @@ -4995,7 +5068,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", "metrics-macros", "portable-atomic", ] @@ -5034,9 +5107,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -5379,11 +5452,11 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70bf6736f74634d299d00086f02986875b3c2d924781a6a2cb6c201e73da0ceb" +checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0" dependencies = [ - "num_enum_derive 0.7.0", + "num_enum_derive 0.7.1", ] [[package]] @@ -5412,11 +5485,11 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ea360eafe1022f7cc56cd7b869ed57330fb2453d0c7831d99b74c65d2f5597" +checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate 2.0.0", "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.38", @@ -5518,9 +5591,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.57" +version = "0.10.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" +checksum = "a9dfc0783362704e97ef3bd24261995a699468440099ef95d869b4d9732f829a" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -5550,9 +5623,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.93" +version = "0.9.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" +checksum = "2f55da20b29f956fb01f0add8683eb26ee13ebe3ebd935e49898717c6b4b2830" dependencies = [ "cc", "libc", @@ -5620,9 +5693,9 @@ dependencies = [ [[package]] name = "parking" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" @@ -5642,7 +5715,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.8", + "parking_lot_core 0.9.9", ] [[package]] @@ -5661,13 +5734,13 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", + "redox_syscall 0.4.1", "smallvec 1.11.1", "windows-targets 0.48.5", ] @@ -5749,9 +5822,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4" +checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" dependencies = [ "memchr", "thiserror", @@ -5765,7 +5838,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.0.2", + "indexmap 2.1.0", ] [[package]] @@ -5888,9 +5961,9 @@ dependencies = [ [[package]] name = "platforms" -version = "3.1.2" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" [[package]] name = "plotters" @@ -5940,9 +6013,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.4.3" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31114a898e107c51bb1609ffaf55a0e011cf6a4d7f1170d0015a165082c0338b" +checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" [[package]] name = "postcard" @@ -6074,6 +6147,15 @@ dependencies = [ "toml 0.5.11", ] +[[package]] +name = "proc-macro-crate" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +dependencies = [ + "toml_edit 0.20.7", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -6462,15 +6544,6 @@ dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.4.1" @@ -6610,7 +6683,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.25.2", + "webpki-roots", "winreg", ] @@ -6781,7 +6854,7 @@ dependencies = [ "bitflags 2.4.1", "byteorder", "derive_more", - "indexmap 2.0.2", + "indexmap 2.1.0", "libc", "parking_lot 0.12.1", "reth-mdbx-sys", @@ -6944,7 +7017,7 @@ source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca dependencies = [ "boa_engine", "boa_gc", - "hashbrown 0.14.1", + "hashbrown 0.14.2", "reth-primitives", "reth-rpc-types", "revm", @@ -6994,7 +7067,7 @@ version = "0.1.0-alpha.8" source = "git+https://github.com/paradigmxyz/reth?rev=e83d3aa#e83d3aa704f87825ca8cab6f593ab4d4adbf6792" dependencies = [ "itertools 0.11.0", - "jsonrpsee-types 0.20.2", + "jsonrpsee-types 0.20.3", "reth-primitives", "reth-rlp", "serde", @@ -7080,7 +7153,7 @@ dependencies = [ "derive_more", "enumn", "fixed-hash", - "hashbrown 0.14.1", + "hashbrown 0.14.2", "hex", "hex-literal", "once_cell", @@ -7111,11 +7184,25 @@ dependencies = [ "libc", "once_cell", "spin 0.5.2", - "untrusted", + "untrusted 0.7.1", "web-sys", "winapi", ] +[[package]] +name = "ring" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" +dependencies = [ + "cc", + "getrandom 0.2.10", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.48.0", +] + [[package]] name = "ripemd" version = "0.1.3" @@ -7350,9 +7437,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95294d6e3a6192f3aabf91c38f56505a625aa495533442744185a36d75a790c4" +checksum = "724fd11728a3804e9944b14cab63825024c40bf42f8af87c8b5d97c4bbacf426" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", @@ -7360,6 +7447,7 @@ dependencies = [ "bytes", "fastrlp", "num-bigint 0.4.4", + "num-traits", "parity-scale-codec", "primitive-types", "proptest", @@ -7415,9 +7503,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.16" +version = "0.36.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6da3636faa25820d8648e0e31c5d519bbb01f72fdf57131f0f5f7da5fed36eab" +checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" dependencies = [ "bitflags 1.3.2", "errno", @@ -7442,13 +7530,13 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.7" +version = "0.21.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c" dependencies = [ "log", - "ring", - "rustls-webpki 0.101.6", + "ring 0.17.5", + "rustls-webpki", "sct", ] @@ -7475,22 +7563,12 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.100.3" +version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" -dependencies = [ - "ring", - "untrusted", + "ring 0.17.5", + "untrusted 0.9.0", ] [[package]] @@ -7621,9 +7699,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0a159d0c45c12b20c5a844feb1fe4bea86e28f17b92a5f0c42193634d3782" +checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" dependencies = [ "bitvec", "cfg-if", @@ -7635,9 +7713,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "912e55f6d20e0e80d63733872b40e1227c0bce1e1ab81ba67d696339bfd7fd29" +checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2 1.0.69", @@ -7704,7 +7782,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", "cfg-if", "hashbrown 0.13.2", ] @@ -7747,12 +7825,12 @@ dependencies = [ [[package]] name = "sct" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring", - "untrusted", + "ring 0.17.5", + "untrusted 0.9.0", ] [[package]] @@ -7941,9 +8019,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.107" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -7963,9 +8041,9 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2 1.0.69", "quote 1.0.33", @@ -7974,9 +8052,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" dependencies = [ "serde", ] @@ -7995,15 +8073,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "base64 0.21.5", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.0.2", + "indexmap 2.1.0", "serde", "serde_json", "serde_with_macros", @@ -8012,9 +8090,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" dependencies = [ "darling 0.20.3", "proc-macro2 1.0.69", @@ -8157,7 +8235,7 @@ dependencies = [ "anyhow", "borsh", "clap 4.4.7", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "schemars", "serde", "serde_json", @@ -8227,9 +8305,9 @@ checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", "winapi", @@ -8237,9 +8315,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", "windows-sys 0.48.0", @@ -8280,7 +8358,7 @@ name = "sov-accessory-state" version = "0.3.0" dependencies = [ "borsh", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "serde", "sov-modules-api", "sov-state", @@ -8295,7 +8373,7 @@ dependencies = [ "arbitrary", "borsh", "clap 4.4.7", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "proptest", "proptest-derive", "schemars", @@ -8362,7 +8440,7 @@ dependencies = [ "anyhow", "borsh", "clap 4.4.7", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "schemars", "serde", "serde_json", @@ -8383,7 +8461,7 @@ dependencies = [ "clap 4.4.7", "hex", "jmt", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "schemars", "serde", "serde_json", @@ -8411,7 +8489,7 @@ dependencies = [ "celestia-rpc", "celestia-types", "hex", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "nmt-rs", "postcard", "proptest", @@ -8438,7 +8516,7 @@ version = "0.3.0" dependencies = [ "anyhow", "borsh", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "serde", "serde_json", "sov-chain-state", @@ -8458,7 +8536,7 @@ dependencies = [ "demo-stf", "directories", "hex", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "serde", "serde_json", "sov-accounts", @@ -8523,7 +8601,7 @@ dependencies = [ "ethers-providers", "ethers-signers", "hex", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "log", "log4rs", "prettytable-rs", @@ -8572,7 +8650,7 @@ dependencies = [ "borsh", "demo-stf", "ethers", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "reth-primitives", "reth-rpc-types", "schnellru", @@ -8600,7 +8678,7 @@ dependencies = [ "ethers-core", "ethers-signers", "hex", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "lazy_static", "reth-interfaces", "reth-primitives", @@ -8627,7 +8705,7 @@ version = "0.3.0" dependencies = [ "anyhow", "futures", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "serde", "serde_json", "sov-db", @@ -8693,7 +8771,7 @@ dependencies = [ "ed25519-dalek 2.0.0", "hex", "jmt", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "proptest", "proptest-derive", "rand 0.8.5", @@ -8744,7 +8822,7 @@ dependencies = [ "anyhow", "borsh", "clap 4.4.7", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "proc-macro2 1.0.69", "quote 1.0.33", "schemars", @@ -8767,7 +8845,7 @@ dependencies = [ "anyhow", "async-trait", "borsh", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "serde", "serde_json", "sov-cli", @@ -8790,7 +8868,7 @@ dependencies = [ "borsh", "hex", "jmt", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "risc0-zkvm", "risc0-zkvm-platform", "serde", @@ -8809,7 +8887,7 @@ version = "0.3.0" dependencies = [ "anyhow", "borsh", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "postgres", "schemars", "serde", @@ -8919,7 +8997,7 @@ dependencies = [ "async-trait", "borsh", "hex", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "rand 0.8.5", "serde", "sov-mock-da", @@ -8940,7 +9018,7 @@ dependencies = [ "arbitrary", "borsh", "clap 4.4.7", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "proptest", "proptest-derive", "risc0-zkvm", @@ -8991,7 +9069,7 @@ dependencies = [ "borsh", "futures", "hex", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "serde", "serde_json", "sov-accounts", @@ -9006,7 +9084,7 @@ dependencies = [ "sov-state", "tempfile", "tokio", - "toml 0.8.2", + "toml 0.8.6", "tracing", ] @@ -9017,7 +9095,7 @@ dependencies = [ "anyhow", "borsh", "clap 4.4.7", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "schemars", "serde", "serde_json", @@ -9035,7 +9113,7 @@ dependencies = [ "anyhow", "borsh", "clap 4.4.7", - "jsonrpsee 0.20.2", + "jsonrpsee 0.20.3", "schemars", "serde", "serde_json", @@ -9065,6 +9143,7 @@ dependencies = [ name = "sov-zk-cycle-utils" version = "0.3.0" dependencies = [ + "bytes", "risc0-zkvm", "risc0-zkvm-platform", ] @@ -9145,9 +9224,9 @@ dependencies = [ [[package]] name = "sp-core" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7921d278ed2aebbb21a644c96e09663dc49a6139d1e2e063c059dc9f866e149b" +checksum = "f9ebb090ead698a6df04347c86a31ba91a387edb8a58534ec70c4f977d1e1e87" dependencies = [ "array-bytes 6.1.0", "bitflags 1.3.2", @@ -9175,17 +9254,18 @@ dependencies = [ "secp256k1 0.24.3", "secrecy", "serde", - "sp-core-hashing 12.0.0", - "sp-debug-derive 11.0.0", - "sp-externalities 0.22.0", - "sp-runtime-interface 20.0.0", - "sp-std 11.0.0", - "sp-storage 16.0.0", + "sp-core-hashing 13.0.0", + "sp-debug-derive 12.0.0", + "sp-externalities 0.23.0", + "sp-runtime-interface 21.0.0", + "sp-std 12.0.0", + "sp-storage 17.0.0", "ss58-registry", "substrate-bip39", "thiserror", "tiny-bip39", "tracing", + "w3f-bls", "zeroize", ] @@ -9218,6 +9298,20 @@ dependencies = [ "twox-hash", ] +[[package]] +name = "sp-core-hashing" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb8524f01591ee58b46cd83c9dbc0fcffd2fd730dabec4f59326cd58a00f17e2" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.8", + "sha3", + "twox-hash", +] + [[package]] name = "sp-debug-derive" version = "8.0.0" @@ -9231,9 +9325,9 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "11.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f7d375610590566e11882bf5b5a4b8d0666a96ba86808b2650bbbd9be50bf8" +checksum = "50535e1a5708d3ba5c1195b59ebefac61cc8679c2c24716b87a86e8b7ed2e4a1" dependencies = [ "proc-macro2 1.0.69", "quote 1.0.33", @@ -9254,14 +9348,14 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede074871514ca7c5d2eca9563515d858c6220b47ae815714ed4393a4e99db4a" +checksum = "884d05160bc89d0943d1c9fb8006c3d44b80f37f8af607aeff8d4d9cc82e279a" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 11.0.0", - "sp-storage 16.0.0", + "sp-std 12.0.0", + "sp-storage 17.0.0", ] [[package]] @@ -9372,20 +9466,20 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "20.0.0" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17a4030ad93f05c93f2cc294c74bc5fea227f90fb3d1426d4a6f165e017fb7ea" +checksum = "4f365332922a8cfa98ab00c6d08b1b0f24e159e730dd554e720d950ff3371b1f" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", - "sp-externalities 0.22.0", - "sp-runtime-interface-proc-macro 14.0.0", - "sp-std 11.0.0", - "sp-storage 16.0.0", - "sp-tracing 13.0.0", - "sp-wasm-interface 17.0.0", + "sp-externalities 0.23.0", + "sp-runtime-interface-proc-macro 15.0.0", + "sp-std 12.0.0", + "sp-storage 17.0.0", + "sp-tracing 14.0.0", + "sp-wasm-interface 18.0.0", "static_assertions", ] @@ -9404,9 +9498,9 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "14.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b232943ee7ca83a6d56face33b8af12e9fb470a15a53835f4e12a6e452a41c1c" +checksum = "9b2afcbd1bd18d323371111b66b7ac2870bdc1c86c3d7b0dae67b112ca52b4d8" dependencies = [ "Inflector", "proc-macro-crate 1.1.3", @@ -9444,9 +9538,9 @@ checksum = "53458e3c57df53698b3401ec0934bea8e8cfce034816873c0b0abbd83d7bac0d" [[package]] name = "sp-std" -version = "11.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c91d32e165d08a14098ce5ec923eaec59d1d0583758a18a770beec1b780b0d0" +checksum = "54c78c5a66682568cc7b153603c5d01a2cc8f5c221c7b1e921517a0eef18ae05" [[package]] name = "sp-storage" @@ -9464,16 +9558,16 @@ dependencies = [ [[package]] name = "sp-storage" -version = "16.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac9660ecd48314443e73ad0f44d58b76426666a1343d72f6f65664e174da9244" +checksum = "016f20812cc51bd479cc88d048c35d44cd3adde4accdb159d49d6050f2953595" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 11.0.0", - "sp-std 11.0.0", + "sp-debug-derive 12.0.0", + "sp-std 12.0.0", ] [[package]] @@ -9491,12 +9585,12 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "13.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69a61948986d2a9f8d67d60884ff0277d910df09ebe08d0e1f309da777516453" +checksum = "0d727cb5265641ffbb7d4e42c18b63e29f6cfdbd240aae3bcf093c3d6eb29a19" dependencies = [ "parity-scale-codec", - "sp-std 11.0.0", + "sp-std 12.0.0", "tracing", "tracing-core", "tracing-subscriber 0.2.25", @@ -9508,7 +9602,7 @@ version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e4eeb7ef23f79eba8609db79ef9cef242f994f1f87a3c0387b4b5f177fda74" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", "hash-db 0.16.0", "hashbrown 0.13.2", "lazy_static", @@ -9542,15 +9636,15 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "17.0.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf43bb0c8eb76dc41057ce0fb6b744b94c9aec28b31dff53a1efc4f04ef25384" +checksum = "d5d85813d46a22484cdf5e5afddbbe85442dd1b4d84d67a8c7792f92f9f93607" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 11.0.0", + "sp-std 12.0.0", "wasmtime", ] @@ -9740,9 +9834,9 @@ dependencies = [ [[package]] name = "substrate-bip39" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733c" +checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328" dependencies = [ "hmac 0.11.0", "pbkdf2 0.8.0", @@ -9875,9 +9969,9 @@ dependencies = [ [[package]] name = "svm-rs" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597e3a746727984cb7ea2487b6a40726cad0dbe86628e7d429aa6b8c4c153db4" +checksum = "d0cc95be7cc2c384a2f57cac56548d2178650905ebe5725bc8970ccc25529060" dependencies = [ "dirs", "fs2", @@ -9979,9 +10073,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.11" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" +checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" [[package]] name = "tempfile" @@ -10281,7 +10375,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.4", + "socket2 0.5.5", "tokio-macros", "windows-sys 0.48.0", ] @@ -10327,7 +10421,7 @@ dependencies = [ "postgres-protocol", "postgres-types", "rand 0.8.5", - "socket2 0.5.4", + "socket2 0.5.5", "tokio", "tokio-util", "whoami", @@ -10367,14 +10461,14 @@ dependencies = [ "tokio", "tokio-rustls", "tungstenite", - "webpki-roots 0.25.2", + "webpki-roots", ] [[package]] name = "tokio-util" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ "bytes", "futures-core", @@ -10409,21 +10503,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.2" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.20.7", ] [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" dependencies = [ "serde", ] @@ -10434,7 +10528,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.0.2", + "indexmap 2.1.0", "serde", "serde_spanned", "toml_datetime", @@ -10443,11 +10537,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.0.2", + "indexmap 2.1.0", "serde", "serde_spanned", "toml_datetime", @@ -10528,12 +10622,12 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" dependencies = [ - "lazy_static", "log", + "once_cell", "tracing-core", ] @@ -10862,6 +10956,12 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.4.1" @@ -10943,6 +11043,30 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "w3f-bls" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7335e4c132c28cc43caef6adb339789e599e39adbe78da0c4d547fad48cbc331" +dependencies = [ + "ark-bls12-377", + "ark-bls12-381", + "ark-ec", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-serialize-derive", + "arrayref", + "constcat", + "digest 0.10.7", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "sha2 0.10.8", + "sha3", + "thiserror", + "zeroize", +] + [[package]] name = "wait-timeout" version = "0.2.0" @@ -10991,9 +11115,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -11001,9 +11125,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" dependencies = [ "bumpalo", "log", @@ -11016,9 +11140,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" dependencies = [ "cfg-if", "js-sys", @@ -11028,9 +11152,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" dependencies = [ "quote 1.0.33", "wasm-bindgen-macro-support", @@ -11038,9 +11162,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" dependencies = [ "proc-macro2 1.0.69", "quote 1.0.33", @@ -11051,9 +11175,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" [[package]] name = "wasmparser" @@ -11178,7 +11302,7 @@ dependencies = [ "memoffset 0.8.0", "paste", "rand 0.8.5", - "rustix 0.36.16", + "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", @@ -11199,23 +11323,14 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" dependencies = [ "js-sys", "wasm-bindgen", ] -[[package]] -name = "webpki-roots" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" -dependencies = [ - "rustls-webpki 0.100.3", -] - [[package]] name = "webpki-roots" version = "0.25.2" @@ -11424,9 +11539,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.17" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c" +checksum = "176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32" dependencies = [ "memchr", ] @@ -11563,6 +11678,26 @@ dependencies = [ "synstructure 0.13.0", ] +[[package]] +name = "zerocopy" +version = "0.7.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e50cbb27c30666a6108abd6bc7577556265b44f243e2be89a8bc4e07a528c107" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25f293fe55f0a48e7010d65552bb63704f6ceb55a1a385da10d41d8f78e4a3d" +dependencies = [ + "proc-macro2 1.0.69", + "quote 1.0.33", + "syn 2.0.38", +] + [[package]] name = "zerofrom" version = "0.1.3" diff --git a/adapters/risc0/Cargo.toml b/adapters/risc0/Cargo.toml index 2f3980029..0ba711571 100644 --- a/adapters/risc0/Cargo.toml +++ b/adapters/risc0/Cargo.toml @@ -28,7 +28,7 @@ sov-rollup-interface = { path = "../../rollup-interface", version = "0.3" } [features] default = [] native = ["risc0-zkvm/prove", "dep:risc0-zkp", "dep:risc0-circuit-rv32im"] -bench = ["once_cell", "parking_lot", "native", "sov-zk-cycle-utils/native"] +bench = ["once_cell", "parking_lot","native","sov-zk-cycle-utils/native"] [[test]] name = "native" diff --git a/adapters/risc0/src/metrics.rs b/adapters/risc0/src/metrics.rs index f8a880804..d217f2b35 100644 --- a/adapters/risc0/src/metrics.rs +++ b/adapters/risc0/src/metrics.rs @@ -42,7 +42,7 @@ fn deserialize_custom(serialized: Bytes) -> Result<(String, u64), anyhow::Error> /// When the "bench" feature is enabled, this callback is registered as a syscall /// in the Risc0 VM and invoked whenever a function annotated with the [`sov-zk-cycle-utils::cycle_tracker`] /// macro is invoked. -pub fn metrics_callback(input: risc0_zkvm::Bytes) -> Result { +pub fn metrics_callback(input: Bytes) -> Result { let met_tuple = deserialize_custom(input)?; add_value(met_tuple.0, met_tuple.1); Ok(Bytes::new()) diff --git a/examples/demo-rollup/Cargo.toml b/examples/demo-rollup/Cargo.toml index 03a8e0885..1f13beb3d 100644 --- a/examples/demo-rollup/Cargo.toml +++ b/examples/demo-rollup/Cargo.toml @@ -51,8 +51,10 @@ secp256k1 = { workspace = true, optional = true } [dev-dependencies] sov-rng-da-service = { path = "../../utils/rng-da-service" } sov-rollup-interface = { path = "../../rollup-interface", features = ["fuzzing"] } +sov-mock-da = { path = "../../adapters/mock-da" } sov-evm = { path = "../../module-system/module-implementations/sov-evm", features = ["smart_contracts"] } sov-bank = { path = "../../module-system/module-implementations/sov-bank", features = ["native"] } +sov-nft-module = { path = "../../module-system/module-implementations/sov-nft-module", features = ["native"] } sov-zk-cycle-macros = { path = "../../utils/zk-cycle-macros" } borsh = { workspace = true } @@ -108,7 +110,6 @@ path = "benches/prover/prover_bench.rs" harness = false required-features = ["bench"] - [[bin]] name = "sov-cli" path = "src/sov-cli/main.rs" diff --git a/examples/demo-rollup/benches/prover/blocks.hex b/examples/demo-rollup/benches/prover/blocks.hex deleted file mode 100644 index 37f044279..000000000 --- a/examples/demo-rollup/benches/prover/blocks.hex +++ /dev/null @@ -1,5 +0,0 @@ -0200000000000000fffffffffffffffefffffffffffffffea97efd516627c3d613d05c8eb4c32eb63f87355e19dcc50a97c48625c35d99adffffffffffffffffffffffffffffffff31de1a752d3c99fc4323e978f498978a9156b714bc6d9fc29b72a00f393328a40200000000000000fffffffffffffffefffffffffffffffea97efd516627c3d613d05c8eb4c32eb63f87355e19dcc50a97c48625c35d99adffffffffffffffffffffffffffffffff31de1a752d3c99fc4323e978f498978a9156b714bc6d9fc29b72a00f393328a40200000000000000080b06000000000000000a0474657374020000000000000008010b0000000000000008d6ccf6a30610a1b88b550200000000000000120022000000000000000a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85501257760461993f8f197b421ec7435f3c36c3734923e3da9a42dc73b05f07b3d0822000000000000000a20313b46aa6296ad96730c290aa9bf4b7f5366cec34ac6d50386b2466ff9d70d6e22000000000000000a20313b46aa6296ad96730c290aa9bf4b7f5366cec34ac6d50386b2466ff9d70d6e22000000000000000a20048091bc7ddc283f77bfbf91d73c44da58c3df8a9cbc867405d8b7f3daada22f22000000000000000a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85522000000000000000a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85522000000000000000a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85516000000000000000a1449e43321ff82ae3aea23f2443100e84a93ad7922010000000000000000000000000000000000000000000000000000000000000000000000 -0200000000000000fffffffffffffffefffffffffffffffea97efd516627c3d613d05c8eb4c32eb63f87355e19dcc50a97c48625c35d99adffffffffffffffffffffffffffffffff31de1a752d3c99fc4323e978f498978a9156b714bc6d9fc29b72a00f393328a40200000000000000fffffffffffffffefffffffffffffffea97efd516627c3d613d05c8eb4c32eb63f87355e19dcc50a97c48625c35d99adffffffffffffffffffffffffffffffff31de1a752d3c99fc4323e978f498978a9156b714bc6d9fc29b72a00f393328a40200000000000000080b06000000000000000a0474657374020000000000000008020b0000000000000008f5c4e8a60610c4e5f11448000000000000000a202430df06922a2f18631d4dc84644ea4b24abc6d903825be10ab278fc0cd8bb27122408011220d728ed4a03505212b5b16cfba570a184b5e5f463719f3fe548bd430691d5ad7622000000000000000a2047837b9a731aca002a6e1ed9b74641e98f3f441cc2e1c69d03ff7431ba0e70c901257760461993f8f197b421ec7435f3c36c3734923e3da9a42dc73b05f07b3d0822000000000000000a20313b46aa6296ad96730c290aa9bf4b7f5366cec34ac6d50386b2466ff9d70d6e22000000000000000a20313b46aa6296ad96730c290aa9bf4b7f5366cec34ac6d50386b2466ff9d70d6e22000000000000000a20048091bc7ddc283f77bfbf91d73c44da58c3df8a9cbc867405d8b7f3daada22f22000000000000000a20a577a3590441b53e05dbbbefb913b5edd5124648d341a04b718713329d85b32e22000000000000000a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85522000000000000000a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85516000000000000000a1449e43321ff82ae3aea23f2443100e84a93ad7922010000000000000000000000000000000000000000000000000000000000000000000000 -04000000000000000000000000000004736f762d74657374490362a480c46eb54dd64154699cbb6c283fafdae0b9f4b4ad4c4369a4100ba9fffffffffffffffefffffffffffffffe2d8bdc0adb36c2b1355ecf54794ad62ee314a19aa1ceb2c6d041d712a192fe35fffffffffffffffffffffffffffffffff45d40d82fc4d79fafef36758409f80eeda1437590bf48f89679e99930058f0bffffffffffffffffffffffffffffffff2a320b741a128353cbb2def387a080acee5b87ed9918944396683b595fa6c6c904000000000000000000000000000004fffffffffffffffe60a51b35f75755b7a9aff56f2cd7dd7f2cfad901addffc4100b4258a213854fc736f762d74657374fffffffffffffffe3c63f2b45c89baec6a2f14654c5788d90c86bcbad20feb539d16561835129ba7ffffffffffffffffffffffffffffffffe8016ad36f4a7b3bc3b8da4601928f5c8f0976735624ac43938b70abbaabd561ffffffffffffffffffffffffffffffffb3207581c5bcef70e70e29bbb7f8a957bd6b98af7c1d3d7339c4d69360a670c00200000000000000080b06000000000000000a0474657374020000000000000008030b0000000000000008ffc4e8a60610c0a1dd3348000000000000000a204af71f283e5f977b94e5c8af31576ae80742408b232ce731c51022113bc8d998122408011220ce1c73e3825809c57be5ef90bf3ba4ac376467c74a4441d94749e1b0fcf5386022000000000000000a20b342c7d34aae5de87f96dffe7c7bd639827c8ecc353d24c13152222d883c49c9010140036afedcdd88646ba9fee3e5bd28a47a9774bf6aa0701e9186cdd11bd01822000000000000000a20313b46aa6296ad96730c290aa9bf4b7f5366cec34ac6d50386b2466ff9d70d6e22000000000000000a20313b46aa6296ad96730c290aa9bf4b7f5366cec34ac6d50386b2466ff9d70d6e22000000000000000a20048091bc7ddc283f77bfbf91d73c44da58c3df8a9cbc867405d8b7f3daada22f22000000000000000a20879128e81db8a6e35aed8d1501f2d319f03b6060e751c6df2a3f04cfa6b49ff722000000000000000a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85522000000000000000a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85516000000000000000a1449e43321ff82ae3aea23f2443100e84a93ad79220100000001000000000000000002000000000000736f762d7465737401000000fc01000000f4000000ee49083c046aa5f4bb54f088f08497a77fb21398ee3185464e33ee99b21a1ff1e5bed3b2f7a14ccba47c8b51661d75f2c287d5fd47f190c6f989859eff68ee0ff8ad2437a279e1c8932c07358c91dc4fe34864a98c6c25f298e2a0199c1509ff8800000000000b000000000000000e000000736f762d746573742d746f6b656ee803000000000000a3201954f70ad62230dc3d840a5bf767702c04869e85ab3eee0b962857ba759802000000fea6ac5b8751120fb62fff67b54d2eac66aef307c7dde1d394dea1e09e43dd44a3201954f70ad62230dc3d840a5bf767702c04869e85ab3eee0b962857ba75980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000200000000000000026a92c27d3e9ea75532dbb8b5093508eb1c67b4d4fc4208be305bacdb57f0dae2f0000000000000063656c6573746961317737776375706b356773776a323563306b686e6b65793566776d6c6e64783674356161726d6b01000000000000000800000000000000736f762d746573740100000000000000fc0000000100000000000000200000000000000026a92c27d3e9ea75532dbb8b5093508eb1c67b4d4fc4208be305bacdb57f0dae0100000000000000000000000000000000000000010000000000000000000000000000000100000000000000040000000000000000020000000000000000000000000004010000014500000011c3020ab7020a8b010a88010a202f63656c65737469612e626c6f622e76312e4d7367506179466f72426c6f627312640a2f63656c6573746961317737776375706b356773776a323563306b686e6b65793566776d6c6e64783674356161726d6b1208736f762d746573741a02fc01222026a92c27d3e9ea75532dbb8b5093508eb1c67b4d4fc4208be305bacdb57f0dae42010012650a500a460a1f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657912230a21027edd627fe580221f17003db181040d019ed834c911e1daa32c922870f7ebc3b812040a020801180112110a0b0a0475746961120333303010d0e80c1a4058fe4cf99f9b8384cd489608c5f06a9e26a37eff7e46ac57000569151050a4c11ff1c798e8792a657466cb2fba1bc95a5320b7432e189c582bc9e4b7e88e49961201011a04494e445800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000736f762d7465737401000000fc01000000f4000000ee49083c046aa5f4bb54f088f08497a77fb21398ee3185464e33ee99b21a1ff1e5bed3b2f7a14ccba47c8b51661d75f2c287d5fd47f190c6f989859eff68ee0ff8ad2437a279e1c8932c07358c91dc4fe34864a98c6c25f298e2a0199c1509ff8800000000000b000000000000000e000000736f762d746573742d746f6b656ee803000000000000a3201954f70ad62230dc3d840a5bf767702c04869e85ab3eee0b962857ba759802000000fea6ac5b8751120fb62fff67b54d2eac66aef307c7dde1d394dea1e09e43dd44a3201954f70ad62230dc3d840a5bf767702c04869e85ab3eee0b962857ba75980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000b79abf31bc94b7b2010000038502000039d601047348a35b1a0ec6ee69d795992d902a34264a33350bbee924bf6532571408d4fe9a852ca70b85105a882b8a2f8488d14f938b1e93985c483152a22012399ab2b9c2a01811361897b48d0cc8fad6f50a9e5abb536429f7531f9b098911dec727cb94151cc8f1c4c832019c0315141b431b1881ab1e516f2dc4c265d5e3e7e6265578a1b61456af0d7bb196fb2dc7850d5a0cef50c9dfe98a5f8a48c6ce2c0a1df7e48ecc34f17cdf7a07fdc62f234217cf90084bd4e937f25a81c3ba312e1e1ca9ab23437c64f1719b1ff1a155c362149ab1c2891d287445dd40a43516acb8370bddfce6ea217008f53d870a760cff3b022c2e2e3a83a80b3ee8d79de391626c535fb1ed6405b497f8611b47cc9ecce74ede000dfa373ad24bba3394b56ea8c010f1c8f3be1d7b3dbfd6d01473ea1e3f60d713bfa373a85bee643b03033e0eeee2e6d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000c4f5c91cc8f1c4c2010000023c03000028e1030ec4a4e0d82700244a974cee0ac00ccbd0f55ce008f13cb7c3d75d3097c0c9a9b10a19d41bcb30dd7921fce4c0dfc1af5f0d2cea320c7a88d6a32ccae2d70eef30be2fdf0734d9de3e2df18f989a4cfd3578347564f84d4b0f08f019dcac493ab104eb31bc94b7bc2303600237343dea393f5242874b4a2d0b2c46329e1d388b4b5b067134dd4c08c17c80a4393d30068c3cba86a451a5dbb7c25b85b9c7fbeb72b912bed2ad444b7cfa9cb61d168ada52e5df6fa4ade4a4b7c57cd61dfca5d0254964bc82a065928b7e6bef891919004af4d4596826d6b1903345ad59d9cc110d53637b400d8f09681fd4c577fd9e29011f1e1e2a53400724a88f63af68fdf7d0db7ca5f20d716792ff3de4b261b2a1e289000893222a82ef7b2c6572f640b93a94bc957532c126768c8334c4a93027fc8f387647c440d5a7f2290202240aa7aca28f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004736f762d74657374490362a480c46eb54dd64154699cbb6c283fafdae0b9f4b4ad4c4369a4100ba90100000000000000040000000000000000020000000000000000000000000004010000014500000011c3020ab7020a8b010a88010a202f63656c65737469612e626c6f622e76312e4d7367506179466f72426c6f627312640a2f63656c6573746961317737776375706b356773776a323563306b686e6b65793566776d6c6e64783674356161726d6b1208736f762d746573741a02fc01222026a92c27d3e9ea75532dbb8b5093508eb1c67b4d4fc4208be305bacdb57f0dae42010012650a500a460a1f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657912230a21027edd627fe580221f17003db181040d019ed834c911e1daa32c922870f7ebc3b812040a020801180112110a0b0a0475746961120333303010d0e80c1a4058fe4cf99f9b8384cd489608c5f06a9e26a37eff7e46ac57000569151050a4c11ff1c798e8792a657466cb2fba1bc95a5320b7432e189c582bc9e4b7e88e49961201011a04494e445800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000736f762d7465737401000000fc01000000f4000000ee49083c046aa5f4bb54f088f08497a77fb21398ee3185464e33ee99b21a1ff1e5bed3b2f7a14ccba47c8b51661d75f2c287d5fd47f190c6f989859eff68ee0ff8ad2437a279e1c8932c07358c91dc4fe34864a98c6c25f298e2a0199c1509ff8800000000000b000000000000000e000000736f762d746573742d746f6b656ee803000000000000a3201954f70ad62230dc3d840a5bf767702c04869e85ab3eee0b962857ba759802000000fea6ac5b8751120fb62fff67b54d2eac66aef307c7dde1d394dea1e09e43dd44a3201954f70ad62230dc3d840a5bf767702c04869e85ab3eee0b962857ba75980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000b79abf31bc94b7b2010000038502000039d601047348a35b1a0ec6ee69d795992d902a34264a33350bbee924bf6532571408d4fe9a852ca70b85105a882b8a2f8488d14f938b1e93985c483152a22012399ab2b9c2a01811361897b48d0cc8fad6f50a9e5abb536429f7531f9b098911dec727cb94151cc8f1c4c832019c0315141b431b1881ab1e516f2dc4c265d5e3e7e6265578a1b61456af0d7bb196fb2dc7850d5a0cef50c9dfe98a5f8a48c6ce2c0a1df7e48ecc34f17cdf7a07fdc62f234217cf90084bd4e937f25a81c3ba312e1e1ca9ab23437c64f1719b1ff1a155c362149ab1c2891d287445dd40a43516acb8370bddfce6ea217008f53d870a760cff3b022c2e2e3a83a80b3ee8d79de391626c535fb1ed6405b497f8611b47cc9ecce74ede000dfa373ad24bba3394b56ea8c010f1c8f3be1d7b3dbfd6d01473ea1e3f60d713bfa373a85bee643b03033e0eeee2e6d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000c4f5c91cc8f1c4c2010000023c03000028e1030ec4a4e0d82700244a974cee0ac00ccbd0f55ce008f13cb7c3d75d3097c0c9a9b10a19d41bcb30dd7921fce4c0dfc1af5f0d2cea320c7a88d6a32ccae2d70eef30be2fdf0734d9de3e2df18f989a4cfd3578347564f84d4b0f08f019dcac493ab104eb31bc94b7bc2303600237343dea393f5242874b4a2d0b2c46329e1d388b4b5b067134dd4c08c17c80a4393d30068c3cba86a451a5dbb7c25b85b9c7fbeb72b912bed2ad444b7cfa9cb61d168ada52e5df6fa4ade4a4b7c57cd61dfca5d0254964bc82a065928b7e6bef891919004af4d4596826d6b1903345ad59d9cc110d53637b400d8f09681fd4c577fd9e29011f1e1e2a53400724a88f63af68fdf7d0db7ca5f20d716792ff3de4b261b2a1e289000893222a82ef7b2c6572f640b93a94bc957532c126768c8334c4a93027fc8f387647c440d5a7f2290202240aa7aca28f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004736f762d74657374490362a480c46eb54dd64154699cbb6c283fafdae0b9f4b4ad4c4369a4100ba9 -04000000000000000000000000000004736f762d74657374ac50b9d0223ddbb3be915d3e137e398954d178c230872c2129ac2b47e102b2cdfffffffffffffffefffffffffffffffe2d8bdc0adb36c2b1355ecf54794ad62ee314a19aa1ceb2c6d041d712a192fe35fffffffffffffffffffffffffffffffff71c654cd09a61036e01ed33ae918d18b0e5ba0794fbe47a2c741d20f2063910ffffffffffffffffffffffffffffffff4fa49d42a64106676832e1d9de1a11cdfa534202413d54f651474c42dfc17e6204000000000000000000000000000004fffffffffffffffebfd734204f10a51792e6702d6cf01aa26ff3fd7c9fd509165398ac17d86c4bdf736f762d74657374fffffffffffffffe23a22c3f7104f73c472215a5b3521b19e10794db1eb67eb7ca35b0d8852f0dfeffffffffffffffffffffffffffffffff64c37eed9469411345b6b40ba3364add2d173da14a55704d2cac9a041fcdd7b5ffffffffffffffffffffffffffffffffc57a236559368b2ce48ab92e3a182b7d64e4bfc3e167f7f7662f763c915cbc750200000000000000080b06000000000000000a0474657374020000000000000008040b000000000000000889c5e8a606108889d84948000000000000000a20b42b38b26398e4103db7a728dc19f01ae6ab2b3099fd1060baac22c6d3908c1e122408011220feb6598f634155981d4fad9e1c320eada5617d06952c2c7334f5c4cf7c5e584a22000000000000000a208b25e01aa7e4cdb22dad91f964ecb6f00327ff5b01820a806c3adacb2bc2749701f1556b39c2b6938f77830a6edad386a91ce74cf2cda7bb20fb3d59ec0607c23322000000000000000a20313b46aa6296ad96730c290aa9bf4b7f5366cec34ac6d50386b2466ff9d70d6e22000000000000000a20313b46aa6296ad96730c290aa9bf4b7f5366cec34ac6d50386b2466ff9d70d6e22000000000000000a20048091bc7ddc283f77bfbf91d73c44da58c3df8a9cbc867405d8b7f3daada22f22000000000000000a20cc1af9ec6ee03cdb31089286da64e71428a0af62c0b8e47b4e0c1d972642b25a22000000000000000a20ebb716b3f3d18b55ea0b304786d0ece8b4d3b51539364c7fd80e39cc90bc170322000000000000000a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85516000000000000000a1449e43321ff82ae3aea23f2443100e84a93ad79220100000001000000000000000002000000000000736f762d7465737401000000be01000000b60000002adbd76606f2bd4125080e6f44df7ba2d728409955c80b8438eb1828ddf23e3c12188eeac7ecf6323be0ed5668e21cc354fca90d8bca513d6c0a240c26afa7007b758bf2e7670fafaf6bf0015ce0ff5aa802306fc7e3f45762853ffc37180fe64a0000000001fea6ac5b8751120fb62fff67b54d2eac66aef307c7dde1d394dea1e09e43dd44c800000000000000135d23aee8cb15c890831ff36db170157acaac31df9bba6cd40e7329e608eabd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000200000000000000011a9b433a5ad7385e47bb072888d971f3776f1ccfc2bf1904435f66f245127572f0000000000000063656c6573746961317737776375706b356773776a323563306b686e6b65793566776d6c6e64783674356161726d6b01000000000000000800000000000000736f762d746573740100000000000000be0000000100000000000000200000000000000011a9b433a5ad7385e47bb072888d971f3776f1ccfc2bf1904435f66f245127570100000000000000000000000000000000000000010000000000000000000000000000000100000000000000040000000000000000020000000000000000000000000004010000014500000011c3020ab7020a8b010a88010a202f63656c65737469612e626c6f622e76312e4d7367506179466f72426c6f627312640a2f63656c6573746961317737776375706b356773776a323563306b686e6b65793566776d6c6e64783674356161726d6b1208736f762d746573741a02be01222011a9b433a5ad7385e47bb072888d971f3776f1ccfc2bf1904435f66f2451275742010012650a500a460a1f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657912230a21027edd627fe580221f17003db181040d019ed834c911e1daa32c922870f7ebc3b812040a020801180212110a0b0a0475746961120333303010d0e80c1a4016bcae791b5af02b9907a7c315c1d4fa6bf1b2e7e3dc017c1cbe02057e5025d0428ec7b5d3a713dfa95a6d3efd0b4e3ce80d7ed46d732284244c2594f4f9d6e01201011a04494e445800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000736f762d7465737401000000be01000000b60000002adbd76606f2bd4125080e6f44df7ba2d728409955c80b8438eb1828ddf23e3c12188eeac7ecf6323be0ed5668e21cc354fca90d8bca513d6c0a240c26afa7007b758bf2e7670fafaf6bf0015ce0ff5aa802306fc7e3f45762853ffc37180fe64a0000000001fea6ac5b8751120fb62fff67b54d2eac66aef307c7dde1d394dea1e09e43dd44c800000000000000135d23aee8cb15c890831ff36db170157acaac31df9bba6cd40e7329e608eabd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000b79abf31bc94b7b2010000032e020000397d0104733b5b0e960d30c9ae2810fa6b55a47e2ea2c6b6097d81f1c5da6c39d99294c8e6e9c020849bbd9be0d676ba8f8cb0dc8f79a422ff225a4a3951f0f5c1c6c01ec47046f247b8b9fd1a156b96c2a6beab781ff5ec5953844e76601eec9b2e22c2b16f1cc8f1c4ca5ded978dcf941045b71e29da03f19323ea26325215656d9b65e57b5e6bc2b081ecf51ad118dee9032bbcc4e59271c570c8cdd2935d3943e6a68925dc933f34859df549fd6b2e62312d1ed2cbfdeff1c03b16041701cc8bfdcfa05115333600267c520e0803618620bf39ae87471f6a11c69baabb7a3b0e040105033f013b390407040ecbc8faff3b022c2e2e3a83a80b3ee835744fc03dd697136d0c49bb37ba8d93fb947ea1af8803cd3175010dccd21983e95bb5728149388a43d6f4249f07e225a808cc8df4c4155f1ae3196599918cad3b03033e0eeee2e6d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000c4f5c91cc8f1c4c201000002d50300002808030ec4138a52f1014a75e52d3797617d1e76f81c8fd8f24426986f94b60fbc3c01a6bb829ec11c1e3d02b09e8433d3cb31a520482bff9bc8a16c334a99a4bd8b5adeb77c594b803cee99ddd46b03bacf38234fdb99b84ea2138f4063e9be0c0b32be385331bc94b7bfb94985d76ae513e3b5027310c53959f43cfa49d845a7bb3e00f72695041129f0d29a3e803f89ab0238f382412ab096b24761ae0f43e55c80f220fb943cd0e1c73a9e59a4bf13bee71c3082be9fa494b929350e3603b2569fb045d1372c21001bcdd30a0502ff5e1476284f5de433f839b66c4178c2290a0e030d02270329280e0c0e0abebc939e29011f1e1e2a53400724a823c8e1b9268c6738f40bee78227b59699065cc464c5402b12dcb0308b2823c53abd572c752ee2b55ea8c991a620cac194005b25999b737db3eaf3cf16d685a4d290202240aa7aca28f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004736f762d74657374ac50b9d0223ddbb3be915d3e137e398954d178c230872c2129ac2b47e102b2cd0100000000000000040000000000000000020000000000000000000000000004010000014500000011c3020ab7020a8b010a88010a202f63656c65737469612e626c6f622e76312e4d7367506179466f72426c6f627312640a2f63656c6573746961317737776375706b356773776a323563306b686e6b65793566776d6c6e64783674356161726d6b1208736f762d746573741a02be01222011a9b433a5ad7385e47bb072888d971f3776f1ccfc2bf1904435f66f2451275742010012650a500a460a1f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657912230a21027edd627fe580221f17003db181040d019ed834c911e1daa32c922870f7ebc3b812040a020801180212110a0b0a0475746961120333303010d0e80c1a4016bcae791b5af02b9907a7c315c1d4fa6bf1b2e7e3dc017c1cbe02057e5025d0428ec7b5d3a713dfa95a6d3efd0b4e3ce80d7ed46d732284244c2594f4f9d6e01201011a04494e445800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000736f762d7465737401000000be01000000b60000002adbd76606f2bd4125080e6f44df7ba2d728409955c80b8438eb1828ddf23e3c12188eeac7ecf6323be0ed5668e21cc354fca90d8bca513d6c0a240c26afa7007b758bf2e7670fafaf6bf0015ce0ff5aa802306fc7e3f45762853ffc37180fe64a0000000001fea6ac5b8751120fb62fff67b54d2eac66aef307c7dde1d394dea1e09e43dd44c800000000000000135d23aee8cb15c890831ff36db170157acaac31df9bba6cd40e7329e608eabd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000b79abf31bc94b7b2010000032e020000397d0104733b5b0e960d30c9ae2810fa6b55a47e2ea2c6b6097d81f1c5da6c39d99294c8e6e9c020849bbd9be0d676ba8f8cb0dc8f79a422ff225a4a3951f0f5c1c6c01ec47046f247b8b9fd1a156b96c2a6beab781ff5ec5953844e76601eec9b2e22c2b16f1cc8f1c4ca5ded978dcf941045b71e29da03f19323ea26325215656d9b65e57b5e6bc2b081ecf51ad118dee9032bbcc4e59271c570c8cdd2935d3943e6a68925dc933f34859df549fd6b2e62312d1ed2cbfdeff1c03b16041701cc8bfdcfa05115333600267c520e0803618620bf39ae87471f6a11c69baabb7a3b0e040105033f013b390407040ecbc8faff3b022c2e2e3a83a80b3ee835744fc03dd697136d0c49bb37ba8d93fb947ea1af8803cd3175010dccd21983e95bb5728149388a43d6f4249f07e225a808cc8df4c4155f1ae3196599918cad3b03033e0eeee2e6d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000c4f5c91cc8f1c4c201000002d50300002808030ec4138a52f1014a75e52d3797617d1e76f81c8fd8f24426986f94b60fbc3c01a6bb829ec11c1e3d02b09e8433d3cb31a520482bff9bc8a16c334a99a4bd8b5adeb77c594b803cee99ddd46b03bacf38234fdb99b84ea2138f4063e9be0c0b32be385331bc94b7bfb94985d76ae513e3b5027310c53959f43cfa49d845a7bb3e00f72695041129f0d29a3e803f89ab0238f382412ab096b24761ae0f43e55c80f220fb943cd0e1c73a9e59a4bf13bee71c3082be9fa494b929350e3603b2569fb045d1372c21001bcdd30a0502ff5e1476284f5de433f839b66c4178c2290a0e030d02270329280e0c0e0abebc939e29011f1e1e2a53400724a823c8e1b9268c6738f40bee78227b59699065cc464c5402b12dcb0308b2823c53abd572c752ee2b55ea8c991a620cac194005b25999b737db3eaf3cf16d685a4d290202240aa7aca28f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004736f762d74657374ac50b9d0223ddbb3be915d3e137e398954d178c230872c2129ac2b47e102b2cd -04000000000000000000000000000004736f762d74657374f0e19f70a9b8230eb4b6c2763def30872bcc268ecb782a709f63dc3b4064d290fffffffffffffffefffffffffffffffe2d8bdc0adb36c2b1355ecf54794ad62ee314a19aa1ceb2c6d041d712a192fe35ffffffffffffffffffffffffffffffff85332fe79fddb4e46da26cfda92a16a4847904073c8d7b9569939693ce2500c7fffffffffffffffffffffffffffffffffabf7945694d0c30d100b7f2cd9bdffc637de9037c20172723476d7ee5d37fd804000000000000000000000000000004fffffffffffffffece46ab5e2f606bb91bf550801dd58eb7c4e0af35930260438e8283b5baeb2dde736f762d74657374fffffffffffffffe2ec8952e1551fa2146d6a9929ceffb75f2b0beb1ce21b64e172233c058092a41ffffffffffffffffffffffffffffffff5430d61857c9817fe0488a8d45d035ccf2eded4cd99ec7b71c2dc2f1b5af93e6ffffffffffffffffffffffffffffffff3c9c890a387f94b1fcfe6692363fc7e1d39b29b56444adf950aa89d5d143d2180200000000000000080b06000000000000000a0474657374020000000000000008050b000000000000000893c5e8a60610b587895f48000000000000000a2002d54033f21bd236ca93380a387d63196d40b4e5f90da1e83a93ebecfe832ce9122408011220b4c8233a71d14f37d63a512dc7ed646d0b1dac7296869e5edbd50b0b76a8c6a722000000000000000a20677d12b53874733888e0b57b2100907f98c76716cfe54ebac333815963dc8e1201c282ddeb5eb9167f5d46ca71af830dd3d3b4d3cf041a3f68c7208d0813a8ba5022000000000000000a20313b46aa6296ad96730c290aa9bf4b7f5366cec34ac6d50386b2466ff9d70d6e22000000000000000a20313b46aa6296ad96730c290aa9bf4b7f5366cec34ac6d50386b2466ff9d70d6e22000000000000000a20048091bc7ddc283f77bfbf91d73c44da58c3df8a9cbc867405d8b7f3daada22f22000000000000000a205e5e89f09e0aacf2d4708e8fad2e4befcc3689122ac6ef9c44d6c25f523385e722000000000000000a20ebb716b3f3d18b55ea0b304786d0ece8b4d3b51539364c7fd80e39cc90bc170322000000000000000a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85516000000000000000a1449e43321ff82ae3aea23f2443100e84a93ad79220100000001000000000000000002000000000000736f762d74657374010000017802000000b600000009c241181dbfc2cf20083e3651da58c7cf6bf8b70182b70062d4ae713a5161ca0c87fde160667857e83ecfcbfe2b9c87d93f1295527561e466a5ef70c80661007b758bf2e7670fafaf6bf0015ce0ff5aa802306fc7e3f45762853ffc37180fe64a0000000001e39febaf77ef923eb6b4c86d7e0c11a528e303a46b9e8f1c382493e799b4dc27c700000000000000135d23aee8cb15c890831ff36db170157acaac31df9bba6cd40e7329e608eabd0100000000000000b600000017896f9627db1799c59c6006bdfb5297e67bc4ea6e931a9a91946726295bd880e6bce7758326c33c89c4623da515654d8ce52d61a47619bb297ca524c6f74e017b758bf2e7670fafaf6bf0015ce0ff5aa802306fc7e3f45762853ffc37180fe64a00000000012e727adc7e69ba5ff2a216385651b4fff4059a25880214d947abbed193d8b6b8c600000000000000135d23aee8cb15c890831ff36db170157acaac31df9bba6cd40e7329e608eabd0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000020000000000000003193d8b98c9a83cb2314953cc18d41d044028e23576bfed024252562e6894a362f0000000000000063656c6573746961317737776375706b356773776a323563306b686e6b65793566776d6c6e64783674356161726d6b01000000000000000800000000000000736f762d74657374010000000000000078010000010000000000000020000000000000003193d8b98c9a83cb2314953cc18d41d044028e23576bfed024252562e6894a360100000000000000000000000000000000000000010000000000000000000000000000000100000000000000040000000000000000020000000000000000000000000004010000014500000011c3020ab7020a8b010a88010a202f63656c65737469612e626c6f622e76312e4d7367506179466f72426c6f627312640a2f63656c6573746961317737776375706b356773776a323563306b686e6b65793566776d6c6e64783674356161726d6b1208736f762d746573741a02f80222203193d8b98c9a83cb2314953cc18d41d044028e23576bfed024252562e6894a3642010012650a500a460a1f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657912230a21027edd627fe580221f17003db181040d019ed834c911e1daa32c922870f7ebc3b812040a020801180312110a0b0a0475746961120333303010d0e80c1a40d6f5c12c2d16c327304b590b2fca5afe4aae7c292e396aed2a273205d4ce5fa746c265f9d3b54006198c4979a82a942f9df2b5940ae0aa110df14393089a69ba1201011a04494e445800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000736f762d74657374010000017802000000b600000009c241181dbfc2cf20083e3651da58c7cf6bf8b70182b70062d4ae713a5161ca0c87fde160667857e83ecfcbfe2b9c87d93f1295527561e466a5ef70c80661007b758bf2e7670fafaf6bf0015ce0ff5aa802306fc7e3f45762853ffc37180fe64a0000000001e39febaf77ef923eb6b4c86d7e0c11a528e303a46b9e8f1c382493e799b4dc27c700000000000000135d23aee8cb15c890831ff36db170157acaac31df9bba6cd40e7329e608eabd0100000000000000b600000017896f9627db1799c59c6006bdfb5297e67bc4ea6e931a9a91946726295bd880e6bce7758326c33c89c4623da515654d8ce52d61a47619bb297ca524c6f74e017b758bf2e7670fafaf6bf0015ce0ff5aa802306fc7e3f45762853ffc37180fe64a00000000012e727adc7e69ba5ff2a216385651b4fff4059a25880214d947abbed193d8b6b8c600000000000000135d23aee8cb15c890831ff36db170157acaac31df9bba6cd40e7329e608eabd02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000b79abf31bc94b7b2010000015e030000397d0104730e7efc242b9d797b2010e4e677ac4bba856f7439f527391e5674ff54d4704c88c73d978875624e7484218d717ec60d2daddce1097e9354655f1380708f2a6ec47046f247b8b9fd1a156b96c2a6beab781ff5ec5953844e76601eec9b2e22c2b16f1cc8f1c4ca72fcd3e2a85fd57340bc2ef6e1b93ed95f69bbb67b7c312c482824bd69464e266bfda257ec21e9032bbcc4e59271c570c8cdd2935d3943e6a68925dc933f34859df549fd6b2e62312f1ed2cbfdeff1c0fd1604172012110ff0ff70e142ca9c2fb6398ff847dbf56327c38a72beeefd2cfd15f46a3ef348bad1387b26dc48a61fea269a661ebfcea5ed930bed013245354e84209800a1c151fd8f280c37977abf53d08dc3251100b28ae97d91b0d495d3ce6ee1fc57918172e80d0cef5694f283a499077051768f2d8458659c1f55d96cda2798eac86ff4b02424a7000000000000002b8735e140752274fbd02c6699cdb622b877e21c55f7c19b5904b73b440d43ca03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000c4f5c91cc8f1c4c201000001630100002808030ec405b6363d3caababe2037b9b54a1360092365a2ec98caec3042917f689d467d23b2fc051b576859411f0d26b0af8ef4c6119087f54dd742b64ed51a702c1968b77c594b803cee99ddd46b03bacf38234fdb99b84ea2138f4063e9be0c0b32be385331bc94b7bf8b61c04ffd9076de2eb16a011c7e0c68e2b6799f5132fa32fe2fe0310e22b624899f44dea617ab0238f382412ab096b24761ae0f43e55c80f220fb943cd0e1c73a9e59a4bf13bee71f3082be9fa494b959350e3635e5a3fba8c1e75a9841fc14ba43d962a03ee9bd804171328c560822a4b9c729605dabc55016b902569ed5284439fb5ee63382d64ad62266389e081d9233b86cbaf867b5d9cf17e8c1f7a57455ce3837f13a1ee427e7a3e1e0547ee1a6d1a8d8786852c7a80a3b11653124c08ae96820f2dad39c9ab69c68c6e359f4a744cd4077a46321dcd8390000000000000038da164fa8be37bc6b533395f47cc637c2bd4e2d8a6c7bf78d0ac412a205a97701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004736f762d74657374f0e19f70a9b8230eb4b6c2763def30872bcc268ecb782a709f63dc3b4064d2900100000000000000040000000000000000020000000000000000000000000004010000014500000011c3020ab7020a8b010a88010a202f63656c65737469612e626c6f622e76312e4d7367506179466f72426c6f627312640a2f63656c6573746961317737776375706b356773776a323563306b686e6b65793566776d6c6e64783674356161726d6b1208736f762d746573741a02f80222203193d8b98c9a83cb2314953cc18d41d044028e23576bfed024252562e6894a3642010012650a500a460a1f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657912230a21027edd627fe580221f17003db181040d019ed834c911e1daa32c922870f7ebc3b812040a020801180312110a0b0a0475746961120333303010d0e80c1a40d6f5c12c2d16c327304b590b2fca5afe4aae7c292e396aed2a273205d4ce5fa746c265f9d3b54006198c4979a82a942f9df2b5940ae0aa110df14393089a69ba1201011a04494e445800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000736f762d74657374010000017802000000b600000009c241181dbfc2cf20083e3651da58c7cf6bf8b70182b70062d4ae713a5161ca0c87fde160667857e83ecfcbfe2b9c87d93f1295527561e466a5ef70c80661007b758bf2e7670fafaf6bf0015ce0ff5aa802306fc7e3f45762853ffc37180fe64a0000000001e39febaf77ef923eb6b4c86d7e0c11a528e303a46b9e8f1c382493e799b4dc27c700000000000000135d23aee8cb15c890831ff36db170157acaac31df9bba6cd40e7329e608eabd0100000000000000b600000017896f9627db1799c59c6006bdfb5297e67bc4ea6e931a9a91946726295bd880e6bce7758326c33c89c4623da515654d8ce52d61a47619bb297ca524c6f74e017b758bf2e7670fafaf6bf0015ce0ff5aa802306fc7e3f45762853ffc37180fe64a00000000012e727adc7e69ba5ff2a216385651b4fff4059a25880214d947abbed193d8b6b8c600000000000000135d23aee8cb15c890831ff36db170157acaac31df9bba6cd40e7329e608eabd02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000b79abf31bc94b7b2010000015e030000397d0104730e7efc242b9d797b2010e4e677ac4bba856f7439f527391e5674ff54d4704c88c73d978875624e7484218d717ec60d2daddce1097e9354655f1380708f2a6ec47046f247b8b9fd1a156b96c2a6beab781ff5ec5953844e76601eec9b2e22c2b16f1cc8f1c4ca72fcd3e2a85fd57340bc2ef6e1b93ed95f69bbb67b7c312c482824bd69464e266bfda257ec21e9032bbcc4e59271c570c8cdd2935d3943e6a68925dc933f34859df549fd6b2e62312f1ed2cbfdeff1c0fd1604172012110ff0ff70e142ca9c2fb6398ff847dbf56327c38a72beeefd2cfd15f46a3ef348bad1387b26dc48a61fea269a661ebfcea5ed930bed013245354e84209800a1c151fd8f280c37977abf53d08dc3251100b28ae97d91b0d495d3ce6ee1fc57918172e80d0cef5694f283a499077051768f2d8458659c1f55d96cda2798eac86ff4b02424a7000000000000002b8735e140752274fbd02c6699cdb622b877e21c55f7c19b5904b73b440d43ca03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000c4f5c91cc8f1c4c201000001630100002808030ec405b6363d3caababe2037b9b54a1360092365a2ec98caec3042917f689d467d23b2fc051b576859411f0d26b0af8ef4c6119087f54dd742b64ed51a702c1968b77c594b803cee99ddd46b03bacf38234fdb99b84ea2138f4063e9be0c0b32be385331bc94b7bf8b61c04ffd9076de2eb16a011c7e0c68e2b6799f5132fa32fe2fe0310e22b624899f44dea617ab0238f382412ab096b24761ae0f43e55c80f220fb943cd0e1c73a9e59a4bf13bee71f3082be9fa494b959350e3635e5a3fba8c1e75a9841fc14ba43d962a03ee9bd804171328c560822a4b9c729605dabc55016b902569ed5284439fb5ee63382d64ad62266389e081d9233b86cbaf867b5d9cf17e8c1f7a57455ce3837f13a1ee427e7a3e1e0547ee1a6d1a8d8786852c7a80a3b11653124c08ae96820f2dad39c9ab69c68c6e359f4a744cd4077a46321dcd8390000000000000038da164fa8be37bc6b533395f47cc637c2bd4e2d8a6c7bf78d0ac412a205a97701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004736f762d74657374f0e19f70a9b8230eb4b6c2763def30872bcc268ecb782a709f63dc3b4064d290 \ No newline at end of file diff --git a/examples/demo-rollup/benches/prover/datagen.rs b/examples/demo-rollup/benches/prover/datagen.rs new file mode 100644 index 000000000..a5f6f71b5 --- /dev/null +++ b/examples/demo-rollup/benches/prover/datagen.rs @@ -0,0 +1,25 @@ +use sov_mock_da::{MockAddress, MockBlock, MockDaService}; +use sov_rng_da_service::{generate_create, generate_transfers}; +use sov_rollup_interface::services::da::DaService; + +pub async fn get_bench_blocks() -> Vec { + let da_service = MockDaService::new(MockAddress::default()); + + let mut blocks = vec![]; + let blob = generate_create(0); + da_service.send_transaction(&blob).await.unwrap(); + let block1 = da_service.get_finalized_at(0).await.unwrap(); + blocks.push(block1); + + let blob = generate_transfers(3, 1); + da_service.send_transaction(&blob).await.unwrap(); + let block2 = da_service.get_finalized_at(0).await.unwrap(); + blocks.push(block2); + + let blob = generate_transfers(10, 4); + da_service.send_transaction(&blob).await.unwrap(); + let block2 = da_service.get_finalized_at(0).await.unwrap(); + blocks.push(block2); + + blocks +} diff --git a/examples/demo-rollup/benches/prover/prover_bench.rs b/examples/demo-rollup/benches/prover/prover_bench.rs index 80e3107ae..630deff4b 100644 --- a/examples/demo-rollup/benches/prover/prover_bench.rs +++ b/examples/demo-rollup/benches/prover/prover_bench.rs @@ -1,24 +1,24 @@ +mod datagen; + use std::collections::HashMap; use std::env; -use std::fs::{read_to_string, remove_file, File, OpenOptions}; +use std::fs::{remove_file, File, OpenOptions}; use std::io::Write; use std::path::{Path, PathBuf}; use std::sync::{Arc, Mutex}; +use sov_mock_da::{MockAddress, MockDaConfig, MockDaService, MockDaSpec}; + #[macro_use] extern crate prettytable; use anyhow::Context; -use const_rollup_config::ROLLUP_NAMESPACE_RAW; use demo_stf::genesis_config::{get_genesis_config, GenesisPaths}; use demo_stf::runtime::Runtime; use log4rs::config::{Appender, Config, Root}; use prettytable::Table; use regex::Regex; -use risc0::ROLLUP_ELF; -use sov_celestia_adapter::types::{FilteredCelestiaBlock, Namespace}; -use sov_celestia_adapter::verifier::{CelestiaSpec, RollupParams}; -use sov_celestia_adapter::CelestiaService; +use risc0::MOCK_DA_ELF; use sov_modules_api::default_context::DefaultContext; use sov_modules_api::SlotData; use sov_modules_stf_template::kernels::basic::BasicKernel; @@ -33,8 +33,7 @@ use sov_rollup_interface::zk::ZkvmHost; use sov_stf_runner::{from_toml_path, RollupConfig}; use tempfile::TempDir; -// The rollup stores its data in the namespace b"sov-test" on Celestia -const ROLLUP_NAMESPACE: Namespace = Namespace::const_v0(ROLLUP_NAMESPACE_RAW); +use crate::datagen::get_bench_blocks; #[derive(Debug)] struct RegexAppender { @@ -142,10 +141,9 @@ async fn main() -> Result<(), anyhow::Error> { } let rollup_config_path = "benches/prover/rollup_config.toml".to_string(); - let mut rollup_config: RollupConfig = - from_toml_path(&rollup_config_path) - .context("Failed to read rollup configuration") - .unwrap(); + let mut rollup_config: RollupConfig = from_toml_path(&rollup_config_path) + .context("Failed to read rollup configuration") + .unwrap(); let mut num_blocks = 0; let mut num_blobs = 0; @@ -153,17 +151,8 @@ async fn main() -> Result<(), anyhow::Error> { let mut num_total_transactions = 0; let temp_dir = TempDir::new().expect("Unable to create temporary directory"); - rollup_config.storage.path = PathBuf::from(temp_dir.path()); - - let da_service = CelestiaService::new( - rollup_config.da.clone(), - RollupParams { - namespace: ROLLUP_NAMESPACE, - }, - ) - .await; - + let da_service = MockDaService::new(MockAddress::default()); let storage_config = sov_state::config::Config { path: rollup_config.storage.path, }; @@ -172,46 +161,39 @@ async fn main() -> Result<(), anyhow::Error> { .expect("ProverStorageManager initialization has failed"); let stf = AppTemplate::< DefaultContext, - CelestiaSpec, + MockDaSpec, Risc0Host, - Runtime, + Runtime, BasicKernel, >::new(); - let genesis_config = - get_genesis_config(&GenesisPaths::from_dir("../test-data/genesis/demo-tests")).unwrap(); + let genesis_config = get_genesis_config(&GenesisPaths::from_dir( + "../test-data/genesis/integration-tests", + )) + .unwrap(); println!("Starting from empty storage, initialization chain"); let (mut prev_state_root, _) = stf.init_chain(storage_manager.get_native_storage(), genesis_config); - let hex_data = read_to_string("benches/prover/blocks.hex").expect("Failed to read data"); - let bincoded_blocks: Vec = hex_data - .lines() - .map(|line| { - let bytes = hex::decode(line).expect("Failed to decode hex data"); - bincode::deserialize(&bytes).expect("Failed to deserialize data") - }) - .collect(); + let blocks = get_bench_blocks().await; - for height in 2..(bincoded_blocks.len() as u64) { + for height in 0..(blocks.len() as u64) { num_blocks += 1; - let mut host = Risc0Host::new(ROLLUP_ELF); + let mut host = Risc0Host::new(MOCK_DA_ELF); host.add_hint(prev_state_root); println!( "Requesting data for height {} and prev_state_root 0x{}", height, hex::encode(prev_state_root.0) ); - let filtered_block = &bincoded_blocks[height as usize]; - let _header_hash = hex::encode(filtered_block.header.header.hash()); - host.add_hint(&filtered_block.header); + let filtered_block = &blocks[height as usize]; + host.add_hint(filtered_block.header); let (mut blob_txs, inclusion_proof, completeness_proof) = da_service .extract_relevant_blobs_with_proof(filtered_block) .await; - host.add_hint(&inclusion_proof); - host.add_hint(&completeness_proof); - host.add_hint(&blob_txs); + host.add_hint(inclusion_proof); + host.add_hint(completeness_proof); if !blob_txs.is_empty() { num_blobs += blob_txs.len(); @@ -225,6 +207,7 @@ async fn main() -> Result<(), anyhow::Error> { &filtered_block.validity_condition(), &mut blob_txs, ); + host.add_hint(&blob_txs); for r in result.batch_receipts { let num_tx = r.tx_receipts.len(); num_total_transactions += num_tx; @@ -232,7 +215,6 @@ async fn main() -> Result<(), anyhow::Error> { num_blocks_with_txns += 1; } } - // println!("{:?}",result.batch_receipts); host.add_hint(&result.witness); diff --git a/examples/demo-rollup/benches/prover/rollup_config.toml b/examples/demo-rollup/benches/prover/rollup_config.toml index 22c57fc90..2905b9b83 100644 --- a/examples/demo-rollup/benches/prover/rollup_config.toml +++ b/examples/demo-rollup/benches/prover/rollup_config.toml @@ -5,6 +5,7 @@ celestia_rpc_auth_token = "MY.SECRET.TOKEN" celestia_rpc_address = "http://localhost:11111/" # The largest response the rollup will accept from the Celestia node. Defaults to 100 MB max_celestia_response_body_size = 104_857_600 +sender_address = "0000000000000000000000000000000000000000000000000000000000000000" [storage] # The path to the rollup's data directory. Paths that do not begin with `/` are interpreted as relative paths. diff --git a/examples/demo-rollup/provers/risc0/.cargo/config.toml b/examples/demo-rollup/provers/risc0/.cargo/config.toml deleted file mode 100644 index b9533c52f..000000000 --- a/examples/demo-rollup/provers/risc0/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[patch.crates-io] -cc = { git = "https://github.com/rust-lang/cc-rs", rev = "e5bbdfa" } diff --git a/examples/demo-rollup/provers/risc0/build.rs b/examples/demo-rollup/provers/risc0/build.rs index 5a0bfe80d..ce389dc30 100644 --- a/examples/demo-rollup/provers/risc0/build.rs +++ b/examples/demo-rollup/provers/risc0/build.rs @@ -28,7 +28,7 @@ fn get_guest_options() -> HashMap<&'static str, risc0_build::GuestOptions> { fn get_guest_options() -> HashMap<&'static str, risc0_build::GuestOptions> { let mut guest_pkg_to_options = HashMap::new(); guest_pkg_to_options.insert( - "sov-demo-prover-guest-celestia", + "sov-demo-prover-guest-mock", risc0_build::GuestOptions { features: vec!["bench".to_string()], }, diff --git a/examples/demo-rollup/provers/risc0/guest-celestia/Cargo.lock b/examples/demo-rollup/provers/risc0/guest-celestia/Cargo.lock index a0888bea8..16e455896 100644 --- a/examples/demo-rollup/provers/risc0/guest-celestia/Cargo.lock +++ b/examples/demo-rollup/provers/risc0/guest-celestia/Cargo.lock @@ -2239,6 +2239,7 @@ dependencies = [ name = "sov-zk-cycle-utils" version = "0.3.0" dependencies = [ + "bytes", "risc0-zkvm", "risc0-zkvm-platform", ] @@ -2647,11 +2648,6 @@ dependencies = [ "syn 2.0.38", ] -[[patch.unused]] -name = "cc" -version = "1.0.79" -source = "git+https://github.com/rust-lang/cc-rs?rev=e5bbdfa#e5bbdfa1fa468c028cb38fee6c35a3cf2e5a2736" - [[patch.unused]] name = "sha2" version = "0.10.6" diff --git a/examples/demo-rollup/provers/risc0/guest-mock/Cargo.lock b/examples/demo-rollup/provers/risc0/guest-mock/Cargo.lock index 40d010b0e..42821b90e 100644 --- a/examples/demo-rollup/provers/risc0/guest-mock/Cargo.lock +++ b/examples/demo-rollup/provers/risc0/guest-mock/Cargo.lock @@ -4,13 +4,14 @@ version = 3 [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if", "once_cell", "version_check", + "zerocopy", ] [[package]] @@ -21,13 +22,13 @@ checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "async-trait" -version = "0.1.73" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.38", ] [[package]] @@ -44,9 +45,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "bcs" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd3ffe8b19a604421a5d461d4a70346223e535903fbc3067138bddbebddcf77" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" dependencies = [ "serde", "thiserror", @@ -90,9 +91,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "blake2" @@ -175,7 +176,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.38", ] [[package]] @@ -187,15 +188,6 @@ dependencies = [ "serde", ] -[[package]] -name = "cc" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] - [[package]] name = "cfg-if" version = "1.0.0" @@ -216,9 +208,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] @@ -235,9 +227,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.0" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622178105f911d937a42cdb140730ba4a3ed2becd8ae6ce39c7d28b5d75d4588" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" dependencies = [ "cfg-if", "cpufeatures", @@ -251,13 +243,13 @@ dependencies = [ [[package]] name = "curve25519-dalek-derive" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.38", ] [[package]] @@ -311,15 +303,15 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555" +checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd" [[package]] name = "ed25519" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "serde", "signature", @@ -345,42 +337,31 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elf" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b183d6ce6ca4cf30e3db37abf5b52568b5f9015c97d9fbdd7026aa5dcdd758" +checksum = "7f6e7d85896690fe195447717af8eceae0593ac2196fd42fe88c184e904406ce" [[package]] name = "errno" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ - "errno-dragonfly", "libc", "windows-sys", ] -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "fiat-crypto" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d" +checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7" [[package]] name = "fnv" @@ -508,21 +489,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.148" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "libm" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.7" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "log" @@ -549,20 +530,20 @@ dependencies = [ [[package]] name = "num-derive" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e" +checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.38", ] [[package]] name = "num-traits" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", "libm", @@ -588,9 +569,9 @@ checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "platforms" -version = "3.1.2" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" [[package]] name = "ppv-lite86" @@ -609,9 +590,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.67" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -624,7 +605,7 @@ checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.4.0", + "bitflags 2.4.1", "lazy_static", "num-traits", "rand", @@ -715,9 +696,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] @@ -809,7 +790,7 @@ dependencies = [ "hex", "libm", "log", - "num-derive 0.4.0", + "num-derive 0.4.1", "num-traits", "risc0-binfmt", "risc0-circuit-rv32im", @@ -838,11 +819,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.13" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", @@ -893,9 +874,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" @@ -914,7 +895,7 @@ checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.38", ] [[package]] @@ -930,9 +911,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.107" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -1055,12 +1036,15 @@ dependencies = [ "ed25519-dalek", "hex", "jmt", + "risc0-zkvm", + "risc0-zkvm-platform", "serde", "sha2", "sov-modules-core", "sov-modules-macros", "sov-rollup-interface", "sov-state", + "sov-zk-cycle-macros", "thiserror", ] @@ -1104,10 +1088,13 @@ dependencies = [ "borsh", "hex", "jmt", + "risc0-zkvm", + "risc0-zkvm-platform", "serde", "sov-modules-api", "sov-rollup-interface", "sov-state", + "sov-zk-cycle-macros", "thiserror", "tracing", ] @@ -1175,11 +1162,14 @@ dependencies = [ "borsh", "hex", "jmt", + "risc0-zkvm", + "risc0-zkvm-platform", "serde", "serde_json", "sha2", "sov-modules-core", "sov-rollup-interface", + "sov-zk-cycle-macros", "thiserror", ] @@ -1207,10 +1197,22 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sov-zk-cycle-macros" +version = "0.3.0" +dependencies = [ + "anyhow", + "borsh", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "sov-zk-cycle-utils" version = "0.3.0" dependencies = [ + "bytes", "risc0-zkvm", "risc0-zkvm-platform", ] @@ -1234,9 +1236,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.37" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ "proc-macro2", "quote", @@ -1245,9 +1247,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", @@ -1273,7 +1275,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.38", ] [[package]] @@ -1304,7 +1306,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.37", + "syn 2.0.38", ] [[package]] @@ -1421,7 +1423,22 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" -[[patch.unused]] -name = "cc" -version = "1.0.79" -source = "git+https://github.com/rust-lang/cc-rs?rev=e5bbdfa#e5bbdfa1fa468c028cb38fee6c35a3cf2e5a2736" +[[package]] +name = "zerocopy" +version = "0.7.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686b7e407015242119c33dab17b8f61ba6843534de936d94368856528eae4dcc" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020f3dfe25dfc38dfea49ce62d5d45ecdd7f0d8a724fa63eb36b6eba4ec76806" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] diff --git a/examples/demo-rollup/provers/risc0/guest-mock/Cargo.toml b/examples/demo-rollup/provers/risc0/guest-mock/Cargo.toml index 6a18ae463..2f3373317 100644 --- a/examples/demo-rollup/provers/risc0/guest-mock/Cargo.toml +++ b/examples/demo-rollup/provers/risc0/guest-mock/Cargo.toml @@ -33,3 +33,6 @@ lto = true [profile.release.build-override] opt-level = 3 +[features] +bench = ["sov-modules-api/bench","sov-state/bench", "sov-modules-stf-template/bench"] + diff --git a/examples/demo-rollup/provers/risc0/guest-mock/src/bin/mock_da.rs b/examples/demo-rollup/provers/risc0/guest-mock/src/bin/mock_da.rs index fe4da713b..7bdf2da01 100644 --- a/examples/demo-rollup/provers/risc0/guest-mock/src/bin/mock_da.rs +++ b/examples/demo-rollup/provers/risc0/guest-mock/src/bin/mock_da.rs @@ -7,12 +7,34 @@ use sov_modules_stf_template::kernels::basic::BasicKernel; use sov_modules_stf_template::AppTemplate; use sov_risc0_adapter::guest::Risc0Guest; use sov_state::ZkStorage; +#[cfg(feature = "bench")] +use risc0_zkvm::guest::env; + +#[cfg(feature = "bench")] +fn report_bench_metrics(start_cycles: usize, end_cycles: usize) { + let cycles_per_block = (end_cycles - start_cycles) as u64; + let tuple = ("Cycles per block".to_string(), cycles_per_block); + let mut serialized = Vec::new(); + serialized.extend(tuple.0.as_bytes()); + serialized.push(0); + let size_bytes = tuple.1.to_ne_bytes(); + serialized.extend(&size_bytes); + + // calculate the syscall name. + let cycle_string = String::from("cycle_metrics\0"); + let metrics_syscall_name = risc0_zkvm_platform::syscall::SyscallName::from_bytes_with_nul(cycle_string.as_ptr()); + + risc0_zkvm::guest::env::send_recv_slice::(metrics_syscall_name, &serialized); +} risc0_zkvm::guest::entry!(main); pub fn main() { let guest = Risc0Guest::new(); let storage = ZkStorage::new(); + #[cfg(feature = "bench")] + let start_cycles = env::get_cycle_count(); + let app: AppTemplate, BasicKernel<_>> = AppTemplate::new(); @@ -21,4 +43,10 @@ pub fn main() { stf_verifier .run_block(guest, storage) .expect("Prover must be honest"); + + #[cfg(feature = "bench")] + { + let end_cycles = env::get_cycle_count(); + report_bench_metrics(start_cycles, end_cycles); + } } diff --git a/module-system/sov-modules-stf-template/Cargo.toml b/module-system/sov-modules-stf-template/Cargo.toml index 592924a6f..a3aca9d77 100644 --- a/module-system/sov-modules-stf-template/Cargo.toml +++ b/module-system/sov-modules-stf-template/Cargo.toml @@ -30,6 +30,6 @@ risc0-zkvm-platform = { workspace = true, optional = true } jsonrpsee = { workspace = true, features = ["server"], optional = true } [features] -bench = ["sov-zk-cycle-macros/bench", "sov-zk-cycle-utils", "risc0-zkvm", "risc0-zkvm-platform"] +bench = ["sov-zk-cycle-macros", "risc0-zkvm", "risc0-zkvm-platform"] default = [] native = ["sov-state/native", "sov-modules-api/native", "jsonrpsee"] diff --git a/utils/zk-cycle-utils/Cargo.toml b/utils/zk-cycle-utils/Cargo.toml index d35bce4df..4c3b4fd76 100644 --- a/utils/zk-cycle-utils/Cargo.toml +++ b/utils/zk-cycle-utils/Cargo.toml @@ -15,6 +15,7 @@ autotests = false [dependencies] risc0-zkvm = { workspace = true, default-features = false, features = ['std'] } risc0-zkvm-platform = { workspace = true } +bytes = "1.5.0" [features] default = []