mirror of
https://github.com/babybear-labs/benchmark.git
synced 2026-01-09 15:27:54 -05:00
feat: added poseidon hash
This commit is contained in:
@@ -6,79 +6,14 @@
|
||||
"results": [
|
||||
{
|
||||
"metrics": {
|
||||
"compressed_proof_size_bytes": 210597,
|
||||
"cycles": 65536,
|
||||
"memory_usage_bytes": 0,
|
||||
"proof_size_bytes": 215822
|
||||
},
|
||||
"name": "1",
|
||||
"time": {
|
||||
"nanos": 56063,
|
||||
"secs": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"metrics": {
|
||||
"compressed_proof_size_bytes": 205826,
|
||||
"cycles": 65536,
|
||||
"memory_usage_bytes": 0,
|
||||
"proof_size_bytes": 215822
|
||||
},
|
||||
"name": "10",
|
||||
"time": {
|
||||
"nanos": 69325,
|
||||
"secs": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"metrics": {
|
||||
"compressed_proof_size_bytes": 210327,
|
||||
"cycles": 65536,
|
||||
"memory_usage_bytes": 0,
|
||||
"proof_size_bytes": 215822
|
||||
},
|
||||
"name": "100",
|
||||
"time": {
|
||||
"nanos": 103846,
|
||||
"secs": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"metrics": {
|
||||
"compressed_proof_size_bytes": 208315,
|
||||
"cycles": 65536,
|
||||
"memory_usage_bytes": 0,
|
||||
"proof_size_bytes": 215822
|
||||
},
|
||||
"name": "1000",
|
||||
"time": {
|
||||
"nanos": 70053,
|
||||
"secs": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"metrics": {
|
||||
"compressed_proof_size_bytes": 206182,
|
||||
"cycles": 65536,
|
||||
"memory_usage_bytes": 0,
|
||||
"proof_size_bytes": 215822
|
||||
},
|
||||
"name": "10000",
|
||||
"time": {
|
||||
"nanos": 63687,
|
||||
"secs": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"metrics": {
|
||||
"compressed_proof_size_bytes": 209783,
|
||||
"compressed_proof_size_bytes": 209571,
|
||||
"cycles": 65536,
|
||||
"memory_usage_bytes": 0,
|
||||
"proof_size_bytes": 215822
|
||||
},
|
||||
"name": "100000",
|
||||
"time": {
|
||||
"nanos": 264947,
|
||||
"nanos": 113886,
|
||||
"secs": 0
|
||||
}
|
||||
}
|
||||
@@ -89,58 +24,32 @@
|
||||
"results": [
|
||||
{
|
||||
"metrics": {
|
||||
"compressed_proof_size_bytes": 210157,
|
||||
"compressed_proof_size_bytes": 210321,
|
||||
"cycles": 65536,
|
||||
"memory_usage_bytes": 0,
|
||||
"proof_size_bytes": 215822
|
||||
},
|
||||
"name": "1k bytes",
|
||||
"time": {
|
||||
"nanos": 25095,
|
||||
"secs": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"metrics": {
|
||||
"compressed_proof_size_bytes": 229677,
|
||||
"cycles": 131072,
|
||||
"memory_usage_bytes": 0,
|
||||
"proof_size_bytes": 238862
|
||||
},
|
||||
"name": "10k bytes",
|
||||
"time": {
|
||||
"nanos": 15865,
|
||||
"secs": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"metrics": {
|
||||
"compressed_proof_size_bytes": 240952,
|
||||
"cycles": 262144,
|
||||
"memory_usage_bytes": 0,
|
||||
"proof_size_bytes": 250574
|
||||
},
|
||||
"name": "100k bytes",
|
||||
"time": {
|
||||
"nanos": 11226,
|
||||
"nanos": 16558,
|
||||
"secs": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Merkle Membership",
|
||||
"name": "Poseidon",
|
||||
"results": [
|
||||
{
|
||||
"metrics": {
|
||||
"compressed_proof_size_bytes": 208862,
|
||||
"cycles": 65536,
|
||||
"compressed_proof_size_bytes": 256742,
|
||||
"cycles": 524288,
|
||||
"memory_usage_bytes": 0,
|
||||
"proof_size_bytes": 215822
|
||||
"proof_size_bytes": 262798
|
||||
},
|
||||
"name": "Merkle Membership",
|
||||
"name": "Poseidon",
|
||||
"time": {
|
||||
"nanos": 14052,
|
||||
"nanos": 54732,
|
||||
"secs": 0
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
extern crate host;
|
||||
|
||||
use benchy::{benchmark, BenchmarkRun};
|
||||
use host::{fib::fib, merkle, sha::sha};
|
||||
use host::{fib::fib, poseidon::poseidon, sha::sha};
|
||||
use risc0_zkvm::{Receipt, SessionStats};
|
||||
|
||||
// #[benchmark]
|
||||
@@ -11,11 +11,11 @@ use risc0_zkvm::{Receipt, SessionStats};
|
||||
// }
|
||||
|
||||
#[benchmark("Fibonacci", [
|
||||
("1", 1),
|
||||
("10", 10),
|
||||
("100", 100),
|
||||
("1000", 1000),
|
||||
("10000", 10000),
|
||||
// ("1", 1),
|
||||
// ("10", 10),
|
||||
// ("100", 100),
|
||||
// ("1000", 1000),
|
||||
// ("10000", 10000),
|
||||
("100000", 100000),
|
||||
])]
|
||||
fn fibonacci(b: &mut BenchmarkRun, n: u32) {
|
||||
@@ -25,8 +25,8 @@ fn fibonacci(b: &mut BenchmarkRun, n: u32) {
|
||||
|
||||
#[benchmark("SHA256", [
|
||||
("1k bytes", 1),
|
||||
("10k bytes", 10),
|
||||
("100k bytes", 100),
|
||||
// ("10k bytes", 10),
|
||||
// ("100k bytes", 100),
|
||||
])]
|
||||
fn sha256(b: &mut BenchmarkRun, n: usize) {
|
||||
let prove = sha(n);
|
||||
@@ -54,9 +54,10 @@ fn sha256(b: &mut BenchmarkRun, n: usize) {
|
||||
// log_session(&b.run(prove), b);
|
||||
// }
|
||||
|
||||
#[benchmark("Merkle Membership")]
|
||||
fn merkle_membership(b: &mut BenchmarkRun) {
|
||||
let prove = merkle::merkle_membership(10);
|
||||
#[benchmark("Poseidon")]
|
||||
fn poseidon_hash(b: &mut BenchmarkRun) {
|
||||
let n: u32 = 1;
|
||||
let prove = poseidon(n);
|
||||
log_session(&b.run(prove), b);
|
||||
}
|
||||
|
||||
@@ -89,5 +90,5 @@ benchy::main!(
|
||||
sha256,
|
||||
// blake3_bench,
|
||||
// merkle_merge,
|
||||
merkle_membership,
|
||||
poseidon_hash,
|
||||
);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// pub mod assert;
|
||||
// pub mod blake3;
|
||||
pub mod fib;
|
||||
pub mod merkle;
|
||||
// pub mod merkle;
|
||||
pub mod sha;
|
||||
pub mod poseidon;
|
||||
|
||||
24
risc-zero/host/src/poseidon.rs
Normal file
24
risc-zero/host/src/poseidon.rs
Normal file
@@ -0,0 +1,24 @@
|
||||
use methods::POSEIDON_ELF;
|
||||
use risc0_zkvm::{default_prover, ExecutorEnv, Receipt, SessionStats};
|
||||
|
||||
pub fn poseidon(n: u32) -> impl FnMut() -> (Receipt, SessionStats) {
|
||||
let env = ExecutorEnv::builder()
|
||||
.write(&[n])
|
||||
.expect("Failed to write numbers")
|
||||
.build()
|
||||
.expect("Failed to build env");
|
||||
|
||||
let prover = default_prover();
|
||||
let prove_info = prover.prove(env, POSEIDON_ELF).expect("Proving failed");
|
||||
|
||||
move || {
|
||||
let session = &prove_info.stats;
|
||||
let receipt = &prove_info.receipt;
|
||||
let session_stats = SessionStats {
|
||||
segments: session.segments,
|
||||
total_cycles: session.total_cycles,
|
||||
user_cycles: session.user_cycles,
|
||||
};
|
||||
(receipt.clone(), session_stats)
|
||||
}
|
||||
}
|
||||
1
risc-zero/methods/.gitignore
vendored
Normal file
1
risc-zero/methods/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/target/
|
||||
@@ -11,7 +11,7 @@ methods = [
|
||||
"sha",
|
||||
"fib",
|
||||
"merkle",
|
||||
"merkle_membership",
|
||||
"poseidon",
|
||||
]
|
||||
|
||||
[profile.release]
|
||||
|
||||
1
risc-zero/methods/fib/.gitignore
vendored
Normal file
1
risc-zero/methods/fib/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/target/
|
||||
1
risc-zero/methods/merkle/.gitignore
vendored
Normal file
1
risc-zero/methods/merkle/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/target/
|
||||
@@ -1,14 +0,0 @@
|
||||
[package]
|
||||
name = "merkle_membership"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[workspace]
|
||||
|
||||
[dependencies]
|
||||
risc0-zkvm = { version = "1.1.2", default-features = false }
|
||||
shared = { path = "../../shared" }
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
||||
opt-level = 3
|
||||
@@ -1,28 +0,0 @@
|
||||
#![no_main]
|
||||
#![no_std]
|
||||
|
||||
extern crate alloc;
|
||||
|
||||
use alloc::vec::Vec;
|
||||
use core::hint::black_box;
|
||||
use risc0_zkvm::{
|
||||
guest::{env, sha::Impl},
|
||||
sha::{Digest, Sha256},
|
||||
};
|
||||
|
||||
risc0_zkvm::guest::entry!(main);
|
||||
|
||||
fn main() {
|
||||
let hash_bytes: Vec<u8> = env::read();
|
||||
let hash_words: Vec<u32> = hash_bytes
|
||||
.chunks(4)
|
||||
.map(|slice| u32::from_be_bytes(slice.try_into().unwrap()))
|
||||
.collect();
|
||||
let hash = hash_words
|
||||
.chunks(8)
|
||||
.map(|words| Digest::new(words.try_into().unwrap()))
|
||||
.reduce(|a, b| *<Impl as Sha256>::hash_pair(&a, &b))
|
||||
.unwrap();
|
||||
|
||||
black_box(hash);
|
||||
}
|
||||
1
risc-zero/methods/poseidon/.gitignore
vendored
Normal file
1
risc-zero/methods/poseidon/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/target/
|
||||
@@ -16,9 +16,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.75"
|
||||
version = "1.0.93"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
|
||||
checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775"
|
||||
|
||||
[[package]]
|
||||
name = "ark-bn254"
|
||||
@@ -146,6 +146,7 @@ dependencies = [
|
||||
"ark-ff",
|
||||
"ark-std",
|
||||
"tracing",
|
||||
"tracing-subscriber",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -207,9 +208,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "2.4.0"
|
||||
version = "2.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
|
||||
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
|
||||
|
||||
[[package]]
|
||||
name = "blake2"
|
||||
@@ -255,27 +256,27 @@ dependencies = [
|
||||
"proc-macro-crate",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.87",
|
||||
"syn 2.0.89",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bytemuck"
|
||||
version = "1.14.0"
|
||||
version = "1.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
|
||||
checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a"
|
||||
dependencies = [
|
||||
"bytemuck_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bytemuck_derive"
|
||||
version = "1.5.0"
|
||||
version = "1.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
|
||||
checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.87",
|
||||
"syn 2.0.89",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -298,9 +299,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
|
||||
|
||||
[[package]]
|
||||
name = "const-oid"
|
||||
version = "0.9.5"
|
||||
version = "0.9.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
|
||||
checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation"
|
||||
@@ -331,13 +332,24 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.2.9"
|
||||
version = "0.2.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
|
||||
checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crypto-bigint"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
|
||||
dependencies = [
|
||||
"generic-array",
|
||||
"subtle",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crypto-common"
|
||||
version = "0.1.6"
|
||||
@@ -385,9 +397,9 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
|
||||
|
||||
[[package]]
|
||||
name = "elf"
|
||||
version = "0.7.2"
|
||||
version = "0.7.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2b183d6ce6ca4cf30e3db37abf5b52568b5f9015c97d9fbdd7026aa5dcdd758"
|
||||
checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b"
|
||||
|
||||
[[package]]
|
||||
name = "equivalent"
|
||||
@@ -413,7 +425,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.87",
|
||||
"syn 2.0.89",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -434,9 +446,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.2.10"
|
||||
version = "0.2.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
|
||||
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
@@ -470,6 +482,15 @@ version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
|
||||
|
||||
[[package]]
|
||||
name = "hmac"
|
||||
version = "0.12.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
|
||||
dependencies = [
|
||||
"digest",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "2.6.0"
|
||||
@@ -491,27 +512,58 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "itoa"
|
||||
version = "1.0.9"
|
||||
version = "1.0.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
|
||||
checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2"
|
||||
|
||||
[[package]]
|
||||
name = "keccak"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654"
|
||||
dependencies = [
|
||||
"cpufeatures",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lambdaworks-crypto"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bbc2a4da0d9e52ccfe6306801a112e81a8fc0c76aa3e4449fefeda7fef72bb34"
|
||||
dependencies = [
|
||||
"lambdaworks-math",
|
||||
"serde",
|
||||
"sha2",
|
||||
"sha3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lambdaworks-math"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d1bd2632acbd9957afc5aeec07ad39f078ae38656654043bf16e046fa2730e23"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.148"
|
||||
version = "0.2.164"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
|
||||
checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f"
|
||||
|
||||
[[package]]
|
||||
name = "libm"
|
||||
version = "0.2.7"
|
||||
version = "0.2.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
|
||||
checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa"
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.20"
|
||||
version = "0.4.22"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
|
||||
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
|
||||
|
||||
[[package]]
|
||||
name = "malloc_buf"
|
||||
@@ -528,21 +580,13 @@ version = "2.7.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
|
||||
|
||||
[[package]]
|
||||
name = "merkle_membership"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"risc0-zkvm",
|
||||
"shared",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "metal"
|
||||
version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21"
|
||||
dependencies = [
|
||||
"bitflags 2.4.0",
|
||||
"bitflags 2.6.0",
|
||||
"block",
|
||||
"core-graphics-types",
|
||||
"foreign-types",
|
||||
@@ -596,15 +640,25 @@ checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
|
||||
|
||||
[[package]]
|
||||
name = "paste"
|
||||
version = "1.0.14"
|
||||
version = "1.0.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
|
||||
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
|
||||
|
||||
[[package]]
|
||||
name = "pin-project-lite"
|
||||
version = "0.2.13"
|
||||
version = "0.2.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
|
||||
checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
|
||||
|
||||
[[package]]
|
||||
name = "poseidon"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"risc0-zkvm",
|
||||
"shared",
|
||||
"starknet-crypto",
|
||||
"starknet-types-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
@@ -626,9 +680,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.89"
|
||||
version = "1.0.91"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
|
||||
checksum = "307e3004becf10f5a6e0d59d20f3cd28231b0e0827a96cd3e0ce6d14bc1e4bb3"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
@@ -668,6 +722,16 @@ version = "0.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||
|
||||
[[package]]
|
||||
name = "rfc6979"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
|
||||
dependencies = [
|
||||
"hmac",
|
||||
"subtle",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "risc0-binfmt"
|
||||
version = "1.1.3"
|
||||
@@ -680,7 +744,7 @@ dependencies = [
|
||||
"risc0-zkp",
|
||||
"risc0-zkvm-platform",
|
||||
"serde",
|
||||
"syn 2.0.87",
|
||||
"syn 2.0.89",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
@@ -739,6 +803,7 @@ dependencies = [
|
||||
"bytemuck",
|
||||
"hex",
|
||||
"num-bigint",
|
||||
"num-traits",
|
||||
"risc0-binfmt",
|
||||
"risc0-zkp",
|
||||
"serde",
|
||||
@@ -827,9 +892,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ryu"
|
||||
version = "1.0.15"
|
||||
version = "1.0.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
|
||||
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
|
||||
|
||||
[[package]]
|
||||
name = "semver"
|
||||
@@ -839,46 +904,57 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.188"
|
||||
version = "1.0.215"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
|
||||
checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.188"
|
||||
version = "1.0.215"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
|
||||
checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.87",
|
||||
"syn 2.0.89",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.107"
|
||||
version = "1.0.133"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
|
||||
checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"memchr",
|
||||
"ryu",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha2"
|
||||
version = "0.10.7"
|
||||
version = "0.10.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
|
||||
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"cpufeatures",
|
||||
"digest",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha3"
|
||||
version = "0.10.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
|
||||
dependencies = [
|
||||
"digest",
|
||||
"keccak",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "shared"
|
||||
version = "0.1.0"
|
||||
@@ -895,14 +971,56 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"syn 2.0.87",
|
||||
"syn 2.0.89",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "starknet-crypto"
|
||||
version = "0.7.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ded22ccf4cb9e572ce3f77de6066af53560cd2520d508876c83bb1e6b29d5cbc"
|
||||
dependencies = [
|
||||
"crypto-bigint",
|
||||
"hex",
|
||||
"hmac",
|
||||
"num-bigint",
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
"rfc6979",
|
||||
"sha2",
|
||||
"starknet-curve",
|
||||
"starknet-types-core",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "starknet-curve"
|
||||
version = "0.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bcde6bd74269b8161948190ace6cf069ef20ac6e79cd2ba09b320efa7500b6de"
|
||||
dependencies = [
|
||||
"starknet-types-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "starknet-types-core"
|
||||
version = "0.1.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fa1b9e01ccb217ab6d475c5cda05dbb22c30029f7bb52b192a010a00d77a3d74"
|
||||
dependencies = [
|
||||
"lambdaworks-crypto",
|
||||
"lambdaworks-math",
|
||||
"num-bigint",
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "subtle"
|
||||
version = "2.5.0"
|
||||
version = "2.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
|
||||
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
@@ -917,9 +1035,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.87"
|
||||
version = "2.0.89"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
|
||||
checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -945,11 +1063,11 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tracing"
|
||||
version = "0.1.37"
|
||||
version = "0.1.40"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
|
||||
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"log",
|
||||
"pin-project-lite",
|
||||
"tracing-attributes",
|
||||
"tracing-core",
|
||||
@@ -957,20 +1075,33 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tracing-attributes"
|
||||
version = "0.1.26"
|
||||
version = "0.1.27"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
|
||||
checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.87",
|
||||
"syn 2.0.89",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-core"
|
||||
version = "0.1.31"
|
||||
version = "0.1.32"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
|
||||
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"valuable",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-subscriber"
|
||||
version = "0.2.25"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71"
|
||||
dependencies = [
|
||||
"tracing-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "typenum"
|
||||
@@ -980,15 +1111,21 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.12"
|
||||
version = "1.0.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||
checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
|
||||
|
||||
[[package]]
|
||||
name = "valuable"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
||||
|
||||
[[package]]
|
||||
name = "version_check"
|
||||
version = "0.9.4"
|
||||
version = "0.9.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
@@ -1023,7 +1160,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.87",
|
||||
"syn 2.0.89",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1043,5 +1180,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.87",
|
||||
"syn 2.0.89",
|
||||
]
|
||||
24
risc-zero/methods/poseidon/Cargo.toml
Normal file
24
risc-zero/methods/poseidon/Cargo.toml
Normal file
@@ -0,0 +1,24 @@
|
||||
[package]
|
||||
name = "poseidon"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[workspace]
|
||||
|
||||
[dependencies]
|
||||
risc0-zkvm = { version = "1.1.2", default-features = false }
|
||||
shared = { path = "../../shared" }
|
||||
starknet-crypto = "0.7.3"
|
||||
starknet-types-core = "0.1.7"
|
||||
|
||||
[features]
|
||||
default = ["std"]
|
||||
std = [
|
||||
"risc0-zkvm/std",
|
||||
"starknet-crypto/std",
|
||||
"starknet-types-core/std"
|
||||
]
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
||||
opt-level = 3
|
||||
29
risc-zero/methods/poseidon/src/main.rs
Normal file
29
risc-zero/methods/poseidon/src/main.rs
Normal file
@@ -0,0 +1,29 @@
|
||||
#![no_main]
|
||||
#![no_std]
|
||||
|
||||
extern crate alloc;
|
||||
|
||||
use core::hint::black_box;
|
||||
|
||||
use alloc::str::FromStr;
|
||||
use risc0_zkvm::guest::env;
|
||||
use starknet_crypto::poseidon_hash_single;
|
||||
use starknet_types_core::felt::Felt;
|
||||
|
||||
risc0_zkvm::guest::entry!(main);
|
||||
|
||||
pub fn main() {
|
||||
let n: u32 = env::read();
|
||||
black_box(bench_poseidon_n(n));
|
||||
}
|
||||
|
||||
fn bench_poseidon_n(n_thousands: u32) -> Felt {
|
||||
let felt = Felt::from_str("1").unwrap();
|
||||
let mut last_hash = felt;
|
||||
|
||||
for _ in 0..(n_thousands * 1) {
|
||||
last_hash = poseidon_hash_single(felt);
|
||||
}
|
||||
|
||||
last_hash
|
||||
}
|
||||
1
risc-zero/methods/sha/.gitignore
vendored
Normal file
1
risc-zero/methods/sha/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/target/
|
||||
Reference in New Issue
Block a user