diff --git a/hash/risc0/bench/methods/guest/src/bin/blake2b.rs b/hash/risc0/bench/methods/guest/src/bin/blake2b.rs index 4d6c3e5..87ce9a6 100644 --- a/hash/risc0/bench/methods/guest/src/bin/blake2b.rs +++ b/hash/risc0/bench/methods/guest/src/bin/blake2b.rs @@ -2,12 +2,15 @@ use risc0_zkvm::{guest::env, sha::Digest}; use risc0_zkp::core::hash::blake2b::{Blake2b, Blake2bCpuImpl}; +use std::io::Read; risc0_zkvm::guest::entry!(main); pub fn main() { - let data: Vec = env::read(); + let mut data = Vec::::new(); + env::stdin().read_to_end(&mut data).unwrap(); + let hash = Blake2bCpuImpl::blake2b(&data); let digest: Digest = hash.into(); env::commit(&digest) diff --git a/hash/risc0/bench/methods/guest/src/bin/blake3.rs b/hash/risc0/bench/methods/guest/src/bin/blake3.rs index fc78b7a..ce639a6 100644 --- a/hash/risc0/bench/methods/guest/src/bin/blake3.rs +++ b/hash/risc0/bench/methods/guest/src/bin/blake3.rs @@ -2,12 +2,15 @@ use risc0_zkvm::{guest::env, sha::Digest}; use blake3::hash; +use std::io::Read; risc0_zkvm::guest::entry!(main); pub fn main() { - let data: Vec = env::read(); + let mut data = Vec::::new(); + env::stdin().read_to_end(&mut data).unwrap(); + let result = hash(&data); let digest = Digest::try_from(*result.as_bytes()).unwrap(); env::commit(&digest) diff --git a/hash/risc0/bench/methods/guest/src/bin/keccak.rs b/hash/risc0/bench/methods/guest/src/bin/keccak.rs index c28e7e0..dcd4b7d 100644 --- a/hash/risc0/bench/methods/guest/src/bin/keccak.rs +++ b/hash/risc0/bench/methods/guest/src/bin/keccak.rs @@ -2,12 +2,15 @@ use risc0_zkvm::{guest::env, sha::Digest}; use sha3::{Digest as _, Keccak256}; +use std::io::Read; risc0_zkvm::guest::entry!(main); pub fn main() { - let data: Vec = env::read(); + let mut data = Vec::::new(); + env::stdin().read_to_end(&mut data).unwrap(); + let hash: [u8;32] = Keccak256::digest(data).into(); let digest = Digest::try_from(hash).unwrap(); env::commit(&digest) diff --git a/hash/risc0/bench/methods/guest/src/bin/sha256.rs b/hash/risc0/bench/methods/guest/src/bin/sha256.rs index 185a9d7..f6b1b74 100644 --- a/hash/risc0/bench/methods/guest/src/bin/sha256.rs +++ b/hash/risc0/bench/methods/guest/src/bin/sha256.rs @@ -1,13 +1,17 @@ #![no_main] +use std::io::Read; use risc0_zkvm::{guest::env, sha, sha::Sha256}; risc0_zkvm::guest::entry!(main); use risc0_zkvm::guest::env::cycle_count; pub fn main() { - - let data: Vec = env::read(); + let start = cycle_count(); + let mut data = Vec::::new(); + env::stdin().read_to_end(&mut data).unwrap(); + let end = cycle_count(); let hash = sha::Impl::hash_bytes(&data); + eprintln!("total cycle count for input: {:?}",end - start); eprintln!("total cycle count for hashing: {:?}",cycle_count()); env::commit(&hash) } diff --git a/hash/risc0/bench/methods/guest/src/bin/sha256_accelerated.rs b/hash/risc0/bench/methods/guest/src/bin/sha256_accelerated.rs index 2162da4..2aecc65 100644 --- a/hash/risc0/bench/methods/guest/src/bin/sha256_accelerated.rs +++ b/hash/risc0/bench/methods/guest/src/bin/sha256_accelerated.rs @@ -1,7 +1,7 @@ // accelerated sha2 crate #![no_main] - +use std::io::Read; use risc0_zkvm::guest::env; use sha2::{Sha256, Digest}; use risc0_zkvm::guest::env::cycle_count; @@ -10,7 +10,9 @@ risc0_zkvm::guest::entry!(main); pub fn main() { - let data: Vec = env::read(); + let mut data = Vec::::new(); + env::stdin().read_to_end(&mut data).unwrap(); + let result = Sha256::digest(data); let c1 = cycle_count(); eprintln!("total cycle count for hashing: {:?}",c1); diff --git a/hash/risc0/bench/src/benches/blake2b.rs b/hash/risc0/bench/src/benches/blake2b.rs index 75bbf05..1d928fc 100644 --- a/hash/risc0/bench/src/benches/blake2b.rs +++ b/hash/risc0/bench/src/benches/blake2b.rs @@ -8,7 +8,10 @@ use std::time::Instant; pub fn blake2b_bench(input: Vec) { - let env = ExecutorEnv::builder().write(&input).unwrap().build().unwrap(); + let env = ExecutorEnv::builder() + .write_slice(&input) + .build() + .unwrap(); // Obtain the default prover. let prover = default_prover(); diff --git a/hash/risc0/bench/src/benches/blake3.rs b/hash/risc0/bench/src/benches/blake3.rs index 2f12a7f..38e85cc 100644 --- a/hash/risc0/bench/src/benches/blake3.rs +++ b/hash/risc0/bench/src/benches/blake3.rs @@ -7,10 +7,11 @@ use risc0_zkvm::{ sha}; use std::time::Instant; pub fn blake3_bench(input: Vec) { - - - let env = ExecutorEnv::builder().write(&input).unwrap().build().unwrap(); + let env = ExecutorEnv::builder() + .write_slice(&input) + .build() + .unwrap(); // Obtain the default prover. let prover = default_prover(); diff --git a/hash/risc0/bench/src/benches/keccak.rs b/hash/risc0/bench/src/benches/keccak.rs index 73c8506..6369492 100644 --- a/hash/risc0/bench/src/benches/keccak.rs +++ b/hash/risc0/bench/src/benches/keccak.rs @@ -7,14 +7,17 @@ use risc0_zkvm::{ sha}; use std::time::Instant; pub fn keccak_bench(input: Vec) { - - let start_time = Instant::now(); - - let env = ExecutorEnv::builder().write(&input).unwrap().build().unwrap(); + let env = ExecutorEnv::builder() + .write_slice(&input) + .build() + .unwrap(); + // Obtain the default prover. let prover = default_prover(); + let start_time = Instant::now(); + // Produce a receipt by proving the specified ELF binary. let receipt = prover.prove(env, KECCAK_ELF).unwrap(); diff --git a/hash/risc0/bench/src/benches/sha256.rs b/hash/risc0/bench/src/benches/sha256.rs index 1777f56..df6113b 100644 --- a/hash/risc0/bench/src/benches/sha256.rs +++ b/hash/risc0/bench/src/benches/sha256.rs @@ -4,10 +4,14 @@ use benchmark_methods::{ use risc0_zkvm::{default_prover, ExecutorEnv}; use risc0_zkvm::{ sha}; use std::time::Instant; + pub fn sha_bench(input: Vec) { - let env = ExecutorEnv::builder().write(&input).unwrap().build().unwrap(); - + let env = ExecutorEnv::builder() + .write_slice(&input) + .build() + .unwrap(); + // Obtain the default prover. let prover = default_prover(); eprintln!("\n------risc0_zkvm sha hashing------\n"); diff --git a/hash/risc0/bench/src/benches/sha256_accelerated.rs b/hash/risc0/bench/src/benches/sha256_accelerated.rs index 6233cae..a979f0b 100644 --- a/hash/risc0/bench/src/benches/sha256_accelerated.rs +++ b/hash/risc0/bench/src/benches/sha256_accelerated.rs @@ -6,7 +6,11 @@ use std::time::Instant; use hex::encode; pub fn sha_accelerated_bench(input: Vec) { - let env = ExecutorEnv::builder().write(&input).unwrap().build().unwrap(); + let env = ExecutorEnv::builder() + .write_slice(&input) + .build() + .unwrap(); + eprintln!("\n------RustCrypto sha hashing(accelerated)------\n"); // Obtain the default prover. let prover = default_prover(); diff --git a/hash/risc0/external/risc0 b/hash/risc0/external/risc0 index 1742ef8..02fad7a 160000 --- a/hash/risc0/external/risc0 +++ b/hash/risc0/external/risc0 @@ -1 +1 @@ -Subproject commit 1742ef8098d246871055501a0559811c9a8fece4 +Subproject commit 02fad7a498764d5c6cc851f246813b73b41c30b8