aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-03-05 14:39:00 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-03-10 17:15:20 +0200
commitc32168bf8a9dd2e13c9982ca202c6326d863a360 (patch)
tree7b06c80bb21feccf2a127efcee1453923d7c0175
parent9832b41c07618caf0f40354746b3f2a9841aaf7a (diff)
downloadzkVMs-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
-rw-r--r--guests/arrays_iter/.no_zkwasm1
-rw-r--r--guests/arrays_iter/Cargo.lock14
-rw-r--r--guests/arrays_iter/Cargo.toml16
-rw-r--r--guests/arrays_iter/default.env2
-rw-r--r--guests/arrays_iter/default_private_input.toml1
-rw-r--r--guests/arrays_iter/default_public_input.toml205
-rw-r--r--guests/arrays_iter/src/lib.rs16
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;
+}