diff options
| author | Kamen Mladenov <kamen@syndamia.com> | 2025-03-05 14:39:00 +0200 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2025-03-10 17:15:20 +0200 |
| commit | c32168bf8a9dd2e13c9982ca202c6326d863a360 (patch) | |
| tree | 7b06c80bb21feccf2a127efcee1453923d7c0175 /guests | |
| parent | 9832b41c07618caf0f40354746b3f2a9841aaf7a (diff) | |
| download | zkVMs-benchmarks-c32168bf8a9dd2e13c9982ca202c6326d863a360.tar zkVMs-benchmarks-c32168bf8a9dd2e13c9982ca202c6326d863a360.tar.gz zkVMs-benchmarks-c32168bf8a9dd2e13c9982ca202c6326d863a360.zip | |
feat(guests): Add program which test array iteration, modulo arithmetic and early return
This test should be pretty difficult for Noir, but less so for the zkVMs
Diffstat (limited to 'guests')
| -rw-r--r-- | guests/arrays_iter/.no_zkwasm | 1 | ||||
| -rw-r--r-- | guests/arrays_iter/Cargo.lock | 14 | ||||
| -rw-r--r-- | guests/arrays_iter/Cargo.toml | 16 | ||||
| -rw-r--r-- | guests/arrays_iter/default.env | 2 | ||||
| -rw-r--r-- | guests/arrays_iter/default_private_input.toml | 1 | ||||
| -rw-r--r-- | guests/arrays_iter/default_public_input.toml | 205 | ||||
| -rw-r--r-- | guests/arrays_iter/src/lib.rs | 16 |
7 files changed, 255 insertions, 0 deletions
diff --git a/guests/arrays_iter/.no_zkwasm b/guests/arrays_iter/.no_zkwasm new file mode 100644 index 0000000..716b3b5 --- /dev/null +++ b/guests/arrays_iter/.no_zkwasm @@ -0,0 +1 @@ +Runtime error: "Error: Trap: Code(Unreachable)" diff --git a/guests/arrays_iter/Cargo.lock b/guests/arrays_iter/Cargo.lock new file mode 100644 index 0000000..e312d61 --- /dev/null +++ b/guests/arrays_iter/Cargo.lock @@ -0,0 +1,14 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "fibonacci" +version = "0.1.0" +dependencies = [ + "guests_macro", +] + +[[package]] +name = "guests_macro" +version = "0.1.0" diff --git a/guests/arrays_iter/Cargo.toml b/guests/arrays_iter/Cargo.toml new file mode 100644 index 0000000..ba73d97 --- /dev/null +++ b/guests/arrays_iter/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "arrays_iter" +version = "0.1.0" +edition = "2021" + +[dependencies] +guests_macro = { version = "0.1.0", path = "../../guests_macro" } + +[features] +no_std = [] +jolt = [] +nexus = [] +risc0 = [] +sp1 = [] +zkm = [] +zkwasm = [] diff --git a/guests/arrays_iter/default.env b/guests/arrays_iter/default.env new file mode 100644 index 0000000..6ac322b --- /dev/null +++ b/guests/arrays_iter/default.env @@ -0,0 +1,2 @@ +## ZKM ## +SEG_SIZE=2750 diff --git a/guests/arrays_iter/default_private_input.toml b/guests/arrays_iter/default_private_input.toml new file mode 100644 index 0000000..4657bbe --- /dev/null +++ b/guests/arrays_iter/default_private_input.toml @@ -0,0 +1 @@ +divisor = 46 diff --git a/guests/arrays_iter/default_public_input.toml b/guests/arrays_iter/default_public_input.toml new file mode 100644 index 0000000..92284d1 --- /dev/null +++ b/guests/arrays_iter/default_public_input.toml @@ -0,0 +1,205 @@ +remainder = 6 + +# 200 values +numbers = [ + 332237444, + 374803544, + 214869640, + 25226636, + 27742790, + 122385352, + 341050, + 282869692, + 88182466, + 6952, + 180038624, + 24608258, + 295062728, + 152507900, + 276345144, + 227342540, + 391591198, + 346741336, + 97088388, + 134451106, + 208119646, + 212368620, + 443561170, + 214233000, + 448114020, + 160864444, + 80716666, + 133575772, + 260788864, + 21987546, + 186526832, + 365265398, + 52532972, + 72946990, + 133355202, + 440416380, + 96061576, + 374056366, + 395610034, + 360140, + 233088446, + 23921478, + 15302826, + 343383290, + 400614052, + 326138488, + 369224020, + 398313132, + 222675150, + 182497876, + 150210476, + 141979466, + 241104176, + 442920896, + 432748410, + 127974076, + 361879476, + 3559394, + 51431456, + 320604412, + 136236826, + 380987554, + 292958596, + 147078060, + 103988848, + 202507876, + 161891210, + 163498496, + 456045202, + 226423644, + 105040776, + 343178222, + 366874524, + 20641678, + 89678938, + 103286244, + 435126978, + 293313026, + 216988998, + 444039938, + 385935728, + 251356012, + 236361668, + 117497346, + 41393704, + 390332500, + 239673576, + 31537928, + 94075342, + 318103162, + 211961474, + 66928810, + 3533956, + 75278960, + 139457884, + 311916392, + 103831114, + 112385412, + 419465036, + 158423132, + 101516302, + 245148542, + 176024066, + 338845344, + 183679984, + 453482864, + 128910498, + 121445848, + 107786516, + 7601322, + 274018878, + 362202902, + 411149432, + 14330524, + 21102230, + 422794654, + 261120938, + 206968726, + 373639100, + 259348926, + 391717330, + 286168950, + 430320116, + 180775544, + 9891018, + 118082650, + 282800600, + 231599748, + 389534032, + 66658008, + 345152036, + 395671490, + 438185518, + 225842112, + 341195714, + 323628084, + 37494054, + 442347782, + 146321314, + 174778708, + 158748214, + 216968896, + 160411022, + 174012026, + 206647002, + 152511534, + 74353072, + 280258778, + 329607900, + 440765566, + 399155392, + 60385034, + 362702646, + 158061756, + 187628164, + 173767444, + 353999952, + 395395352, + 428264836, + 450271144, + 379732398, + 243839060, + 19971642, + 197082130, + 39806152, + 61093894, + 110779460, + 192013850, + 207534250, + 234449310, + 38558862, + 10218860, + 122481814, + 407625096, + 90095652, + 274676402, + 77546944, + 389306976, + 160466544, + 224410500, + 52608458, + 30087226, + 84671562, + 314296340, + 38852710, + 244969004, + 394655672, + 320985200, + 382658274, + 379565050, + 414822854, + 389176704, + 339107314, + 68734724, + 27788652, + 78716908, + 144938002, + 133519744, + 456829732, + 284005432, +] diff --git a/guests/arrays_iter/src/lib.rs b/guests/arrays_iter/src/lib.rs new file mode 100644 index 0000000..57f21fd --- /dev/null +++ b/guests/arrays_iter/src/lib.rs @@ -0,0 +1,16 @@ +#![cfg_attr(feature = "no_std", no_std)] + +#[cfg(feature = "no_std")] +extern crate alloc; +#[cfg(feature = "no_std")] +use alloc::vec::Vec; + +#[guests_macro::proving_entrypoint] +pub fn main(numbers: Vec<i32>, remainder: i32, divisor: i32) -> bool { + for n in numbers { + if n % divisor != remainder { + return false; + } + } + return true; +} |
