From cf078f170b464d298f80bcb5ee80c3d5b8f342d2 Mon Sep 17 00:00:00 2001 From: Kevaundray Wedderburn Date: Tue, 13 May 2025 12:04:34 +0100 Subject: [PATCH] pico: fill in as much as possible for Pico zkvm methods --- Cargo.lock | 917 +++++++++++++++++++++++++++++++------ crates/ere-pico/Cargo.toml | 3 +- crates/ere-pico/src/lib.rs | 60 ++- 3 files changed, 845 insertions(+), 135 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d404ea1..1eb3e10 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1257,6 +1257,16 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "cpu-time" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -1365,6 +1375,27 @@ dependencies = [ "typenum", ] +[[package]] +name = "csv" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" +dependencies = [ + "memchr", +] + [[package]] name = "ctrlc" version = "3.4.7" @@ -1375,6 +1406,32 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "fiat-crypto", + "rustc_version 0.4.1", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "darling" version = "0.20.11" @@ -1410,6 +1467,20 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "dashu" version = "0.4.2" @@ -1772,6 +1843,29 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "env_filter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -1795,7 +1889,8 @@ dependencies = [ name = "ere-pico" version = "0.1.0" dependencies = [ - "anyhow", + "bincode", + "pico-sdk", "thiserror 2.0.12", "zkvm-interface", ] @@ -1923,6 +2018,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -2275,6 +2376,36 @@ dependencies = [ "rayon", ] +[[package]] +name = "halo2curves" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d380afeef3f1d4d3245b76895172018cfb087d9976a7cabcd5597775b2933e07" +dependencies = [ + "blake2", + "digest 0.10.7", + "ff 0.13.1", + "group 0.13.0", + "halo2derive", + "hex", + "lazy_static", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "pairing 0.23.0", + "pasta_curves 0.5.1", + "paste", + "rand 0.8.5", + "rand_core 0.6.4", + "rayon", + "serde", + "serde_arrays", + "sha2", + "static_assertions", + "subtle", + "unroll", +] + [[package]] name = "halo2curves" version = "0.8.0" @@ -2463,6 +2594,15 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "hybrid-array" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2d35805454dc9f8662a98d6d61886ffe26bd465f5960e0e55345c70d5c0d2a9" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "1.6.0" @@ -2805,6 +2945,30 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jiff" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f02000660d30638906021176af16b17498bd0d12813dbfe7b276d8bc7f3c0806" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", +] + +[[package]] +name = "jiff-static" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c30758ddd7188629c6713fc45d1188af4f44c90582311d0c8d8c9907f60c48" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "js-sys" version = "0.3.77" @@ -3497,7 +3661,7 @@ dependencies = [ "openvm-instructions", "openvm-poseidon2-air", "openvm-stark-backend", - "p3-baby-bear 0.1.0", + "p3-baby-bear 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "rand 0.8.5", "rustc-hash 2.1.1", "serde", @@ -3690,7 +3854,7 @@ dependencies = [ "openvm-rv32im-circuit", "openvm-stark-backend", "openvm-stark-sdk", - "p3-keccak-air 0.1.0", + "p3-keccak-air 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "rand 0.8.5", "serde", "serde-big-array", @@ -3823,10 +3987,10 @@ dependencies = [ "openvm-native-compiler-derive", "openvm-stark-backend", "openvm-stark-sdk", - "p3-dft 0.1.0", - "p3-fri 0.1.0", - "p3-merkle-tree 0.1.0", - "p3-symmetric 0.1.0", + "p3-dft 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-fri 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-merkle-tree 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "rand 0.8.5", "serde", "serde_json", @@ -3925,10 +4089,10 @@ dependencies = [ "lazy_static", "openvm-stark-backend", "openvm-stark-sdk", - "p3-monty-31", - "p3-poseidon2 0.1.0", + "p3-monty-31 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-poseidon2 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "p3-poseidon2-air", - "p3-symmetric 0.1.0", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "rand 0.8.5", "zkhash 0.2.0 (git+https://github.com/HorizenLabs/poseidon2.git?rev=bb476b9)", ] @@ -4041,7 +4205,7 @@ dependencies = [ "openvm-stark-backend", "openvm-stark-sdk", "openvm-transpiler", - "p3-fri 0.1.0", + "p3-fri 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "serde", "serde_json", "serde_with", @@ -4119,14 +4283,14 @@ dependencies = [ "derivative", "derive-new 0.7.0", "itertools 0.14.0", - "p3-air 0.1.0", - "p3-challenger 0.1.0", - "p3-commit 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-uni-stark 0.1.0", - "p3-util 0.1.0", + "p3-air 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-challenger 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-commit 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-uni-stark 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "rayon", "rustc-hash 2.1.1", "serde", @@ -4147,18 +4311,18 @@ dependencies = [ "metrics-tracing-context", "metrics-util", "openvm-stark-backend", - "p3-baby-bear 0.1.0", - "p3-blake3", - "p3-bn254-fr 0.1.0", - "p3-dft 0.1.0", - "p3-fri 0.1.0", - "p3-goldilocks", - "p3-keccak", - "p3-koala-bear", - "p3-merkle-tree 0.1.0", + "p3-baby-bear 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-blake3 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-bn254-fr 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-dft 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-fri 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-goldilocks 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-keccak 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-koala-bear 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-merkle-tree 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "p3-poseidon", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", + "p3-poseidon2 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "rand 0.8.5", "serde", "serde_json", @@ -4222,8 +4386,17 @@ name = "p3-air" version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ - "p3-field 0.1.0", - "p3-matrix 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", +] + +[[package]] +name = "p3-air" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", ] [[package]] @@ -4241,11 +4414,25 @@ name = "p3-baby-bear" version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ - "p3-field 0.1.0", - "p3-mds 0.1.0", - "p3-monty-31", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-mds 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-monty-31 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-poseidon2 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-baby-bear" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-mds 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-monty-31 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-poseidon2 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", "serde", ] @@ -4271,8 +4458,18 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "blake3", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", +] + +[[package]] +name = "p3-blake3" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "blake3", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", ] [[package]] @@ -4281,11 +4478,26 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "ff 0.13.1", - "halo2curves", + "halo2curves 0.8.0", "num-bigint 0.4.6", - "p3-field 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-poseidon2 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-bn254-fr" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "ff 0.13.1", + "halo2curves 0.7.0", + "num-bigint 0.4.6", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-poseidon2 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", "serde", ] @@ -4310,10 +4522,22 @@ name = "p3-challenger" version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ - "p3-field 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "tracing", +] + +[[package]] +name = "p3-challenger" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "tracing", ] @@ -4331,17 +4555,49 @@ dependencies = [ "tracing", ] +[[package]] +name = "p3-circle" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "p3-challenger 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-commit 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-dft 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-fri 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "serde", + "tracing", +] + [[package]] name = "p3-commit" version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "itertools 0.14.0", - "p3-challenger 0.1.0", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-util 0.1.0", + "p3-challenger 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-dft 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "serde", +] + +[[package]] +name = "p3-commit" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "p3-challenger 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-dft 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "serde", ] @@ -4365,10 +4621,23 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "itertools 0.14.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "tracing", +] + +[[package]] +name = "p3-dft" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "tracing", ] @@ -4395,8 +4664,25 @@ dependencies = [ "num-integer", "num-traits", "nums", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", + "serde", + "tracing", +] + +[[package]] +name = "p3-field" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "nums", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", "serde", "tracing", @@ -4422,14 +4708,33 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "itertools 0.14.0", - "p3-challenger 0.1.0", - "p3-commit 0.1.0", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-interpolation 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", + "p3-challenger 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-commit 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-dft 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-interpolation 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", + "serde", + "tracing", +] + +[[package]] +name = "p3-fri" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "p3-challenger 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-commit 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-dft 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-interpolation 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", "serde", "tracing", @@ -4460,13 +4765,29 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "num-bigint 0.4.6", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-mds 0.1.0", + "p3-dft 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-mds 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "p3-poseidon", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", + "p3-poseidon2 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-goldilocks" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "num-bigint 0.4.6", + "p3-dft 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-mds 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-poseidon2 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", "serde", ] @@ -4476,10 +4797,21 @@ name = "p3-interpolation" version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", +] + +[[package]] +name = "p3-interpolation" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", ] [[package]] @@ -4499,9 +4831,21 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "itertools 0.14.0", - "p3-field 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "tiny-keccak", +] + +[[package]] +name = "p3-keccak" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "tiny-keccak", ] @@ -4510,15 +4854,28 @@ name = "p3-keccak-air" version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ - "p3-air 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", + "p3-air 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "rand 0.8.5", "tracing", ] +[[package]] +name = "p3-keccak-air" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "p3-air 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "tracing", +] + [[package]] name = "p3-keccak-air" version = "0.2.2-succinct" @@ -4538,11 +4895,25 @@ name = "p3-koala-bear" version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ - "p3-field 0.1.0", - "p3-mds 0.1.0", - "p3-monty-31", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-mds 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-monty-31 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-poseidon2 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-koala-bear" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-mds 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-monty-31 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-poseidon2 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", "serde", ] @@ -4553,9 +4924,24 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "itertools 0.14.0", - "p3-field 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", + "serde", + "tracing", + "transpose", +] + +[[package]] +name = "p3-matrix" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", "serde", "tracing", @@ -4585,6 +4971,14 @@ dependencies = [ "rayon", ] +[[package]] +name = "p3-maybe-rayon" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "rayon", +] + [[package]] name = "p3-maybe-rayon" version = "0.2.2-succinct" @@ -4600,11 +4994,25 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "itertools 0.14.0", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", + "p3-dft 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", +] + +[[package]] +name = "p3-mds" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "p3-dft 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", ] @@ -4629,12 +5037,29 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "itertools 0.14.0", - "p3-commit 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", + "p3-commit 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", + "serde", + "tracing", +] + +[[package]] +name = "p3-merkle-tree" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "p3-commit 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", "serde", "tracing", @@ -4657,6 +5082,25 @@ dependencies = [ "tracing", ] +[[package]] +name = "p3-mersenne-31" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "num-bigint 0.4.6", + "p3-dft 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-mds 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-poseidon2 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "rand 0.8.5", + "serde", +] + [[package]] name = "p3-monty-31" version = "0.1.0" @@ -4664,14 +5108,35 @@ source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f dependencies = [ "itertools 0.14.0", "num-bigint 0.4.6", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-mds 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", + "p3-dft 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-mds 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-poseidon2 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", + "serde", + "tracing", + "transpose", +] + +[[package]] +name = "p3-monty-31" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "num-bigint 0.4.6", + "p3-dft 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-mds 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-poseidon2 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", "serde", "tracing", @@ -4683,9 +5148,9 @@ name = "p3-poseidon" version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ - "p3-field 0.1.0", - "p3-mds 0.1.0", - "p3-symmetric 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-mds 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "rand 0.8.5", ] @@ -4695,9 +5160,21 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "gcd", - "p3-field 0.1.0", - "p3-mds 0.1.0", - "p3-symmetric 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-mds 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-symmetric 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "rand 0.8.5", +] + +[[package]] +name = "p3-poseidon2" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "gcd", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-mds 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "rand 0.8.5", ] @@ -4720,12 +5197,12 @@ name = "p3-poseidon2-air" version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ - "p3-air 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-poseidon2 0.1.0", - "p3-util 0.1.0", + "p3-air 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-poseidon2 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", "rand 0.8.5", "tikv-jemallocator", "tracing", @@ -4737,7 +5214,17 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "itertools 0.14.0", - "p3-field 0.1.0", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "serde", +] + +[[package]] +name = "p3-symmetric" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "serde", ] @@ -4758,14 +5245,32 @@ version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" dependencies = [ "itertools 0.14.0", - "p3-air 0.1.0", - "p3-challenger 0.1.0", - "p3-commit 0.1.0", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", + "p3-air 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-challenger 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-commit 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-dft 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-matrix 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c)", + "serde", + "tracing", +] + +[[package]] +name = "p3-uni-stark" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "itertools 0.13.0", + "p3-air 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-challenger 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-commit 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-dft 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", "serde", "tracing", ] @@ -4797,6 +5302,14 @@ dependencies = [ "serde", ] +[[package]] +name = "p3-util" +version = "0.1.0" +source = "git+https://github.com/brevis-network/Plonky3.git?rev=476cff48#476cff48576f11f5828fc7875be5b708c5a0e387" +dependencies = [ + "serde", +] + [[package]] name = "p3-util" version = "0.2.2-succinct" @@ -4899,8 +5412,10 @@ dependencies = [ "blake2b_simd", "ff 0.13.1", "group 0.13.0", + "hex", "lazy_static", "rand 0.8.5", + "serde", "static_assertions", "subtle", ] @@ -4943,6 +5458,135 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "pico-derive" +version = "0.1.0" +source = "git+https://github.com/brevis-network/pico#1aa4bfdef1d0a7aa5eef484b4875728c4a42dc07" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "pico-patch-libs" +version = "1.1.2" +source = "git+https://github.com/brevis-network/pico#1aa4bfdef1d0a7aa5eef484b4875728c4a42dc07" +dependencies = [ + "bincode", + "serde", +] + +[[package]] +name = "pico-sdk" +version = "1.1.2" +source = "git+https://github.com/brevis-network/pico#1aa4bfdef1d0a7aa5eef484b4875728c4a42dc07" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "env_logger", + "getrandom 0.2.16", + "hex", + "lazy_static", + "log", + "p3-baby-bear 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-challenger 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-koala-bear 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-mersenne-31", + "pico-patch-libs", + "pico-vm", + "rand 0.8.5", + "serde", + "serde_json", + "sha2", +] + +[[package]] +name = "pico-vm" +version = "1.1.2" +source = "git+https://github.com/brevis-network/pico#1aa4bfdef1d0a7aa5eef484b4875728c4a42dc07" +dependencies = [ + "anyhow", + "arrayref", + "backtrace", + "bincode", + "bytemuck", + "cfg-if", + "clap", + "cpu-time", + "crossbeam", + "csv", + "curve25519-dalek", + "dashmap", + "dashu", + "elf", + "elliptic-curve", + "eyre", + "ff 0.13.1", + "halo2curves 0.7.0", + "hashbrown 0.14.5", + "hex", + "hybrid-array", + "itertools 0.13.0", + "k256", + "lazy_static", + "log", + "nohash-hasher", + "num", + "num-bigint 0.4.6", + "num-traits", + "num_cpus", + "once_cell", + "p256", + "p3-air 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-baby-bear 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-blake3 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-bn254-fr 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-challenger 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-circle", + "p3-commit 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-dft 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-fri 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-goldilocks 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-keccak 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-keccak-air 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-koala-bear 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-matrix 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-mds 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-merkle-tree 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-mersenne-31", + "p3-poseidon2 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-symmetric 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-uni-stark 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=476cff48)", + "paste", + "pico-derive", + "rand 0.8.5", + "rayon", + "rayon-scan", + "rrs-succinct", + "serde", + "serde_json", + "serde_with", + "snowbridge-amcl", + "static_assertions", + "strum", + "strum_macros", + "sysinfo", + "thiserror 1.0.69", + "tiny-keccak", + "tracing", + "tracing-forest", + "tracing-subscriber", + "typenum", + "vec_map", + "zkhash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "pin-project" version = "1.1.10" @@ -4991,6 +5635,15 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "poseidon-primitives" version = "0.2.0" diff --git a/crates/ere-pico/Cargo.toml b/crates/ere-pico/Cargo.toml index a8c5b14..343cff5 100644 --- a/crates/ere-pico/Cargo.toml +++ b/crates/ere-pico/Cargo.toml @@ -8,7 +8,8 @@ license.workspace = true [dependencies] zkvm-interface = { workspace = true } thiserror = "2" -anyhow = "*" #TOOD: remove for thiserror +pico-sdk = { git = "https://github.com/brevis-network/pico" } +bincode = "1.3.3" [lints] workspace = true diff --git a/crates/ere-pico/src/lib.rs b/crates/ere-pico/src/lib.rs index bc30b04..a66b421 100644 --- a/crates/ere-pico/src/lib.rs +++ b/crates/ere-pico/src/lib.rs @@ -1,5 +1,6 @@ +use pico_sdk::client::DefaultProverClient; use std::process::Command; -use zkvm_interface::Compiler; +use zkvm_interface::{Compiler, ProgramProvingReport, zkVM}; mod error; use error::PicoError; @@ -49,13 +50,68 @@ impl Compiler for PICO_TARGET { } } +pub struct ErePico; + +impl zkVM for ErePico { + type Error = PicoError; + + fn execute( + _program_bytes: &::Program, + _inputs: &zkvm_interface::Input, + ) -> Result { + todo!("pico currently does not have an execute method exposed via the SDK") + } + + fn prove( + program_bytes: &::Program, + inputs: &zkvm_interface::Input, + ) -> Result<(Vec, zkvm_interface::ProgramProvingReport), Self::Error> { + let client = DefaultProverClient::new(program_bytes); + + let mut stdin = client.new_stdin_builder(); + for input in inputs.chunked_iter() { + stdin.write_slice(input); + } + let now = std::time::Instant::now(); + let meta_proof = client.prove(stdin).expect("Failed to generate proof"); + let elapsed = now.elapsed(); + + let mut proof_serialized = Vec::new(); + for p in meta_proof.0.proofs().iter() { + bincode::serialize_into(&mut proof_serialized, p).unwrap(); + } + for p in meta_proof.1.proofs().iter() { + bincode::serialize_into(&mut proof_serialized, p).unwrap(); + } + + for p in meta_proof.0.pv_stream.iter() { + bincode::serialize_into(&mut proof_serialized, p).unwrap(); + } + for p in meta_proof.1.pv_stream.iter() { + bincode::serialize_into(&mut proof_serialized, p).unwrap(); + } + + Ok((proof_serialized, ProgramProvingReport::new(elapsed))) + } + + fn verify( + program_bytes: &::Program, + _proof: &[u8], + ) -> Result<(), Self::Error> { + let client = DefaultProverClient::new(program_bytes); + + let _vk = client.riscv_vk(); + + todo!("Verification method missing from sdk") + } +} + #[cfg(test)] mod tests { use zkvm_interface::Compiler; use crate::PICO_TARGET; - use super::*; use std::path::PathBuf; // TODO: for now, we just get one test file