From 09bfd1b8c0954e28141bcc1d5c02874114a94f50 Mon Sep 17 00:00:00 2001 From: Manish Kumar Date: Wed, 31 Jan 2024 13:01:11 +0530 Subject: [PATCH] passing string to env::read() --- hash/risc0/composition/methods/guest/src/main.rs | 8 ++++++-- hash/risc0/inner_proof/methods/guest/src/main.rs | 4 ++-- hash/risc0/inner_proof/src/lib.rs | 13 +++++++++++-- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/hash/risc0/composition/methods/guest/src/main.rs b/hash/risc0/composition/methods/guest/src/main.rs index 1f30186..c575ece 100644 --- a/hash/risc0/composition/methods/guest/src/main.rs +++ b/hash/risc0/composition/methods/guest/src/main.rs @@ -16,12 +16,16 @@ use inner_proof_methods::INNER_PROOF_METHOD_ID; use risc0_zkvm::{guest::env, serde}; use risc0_zkvm::sha; fn main() { - + let c1 = env::cycle_count(); let hash: sha::Digest = env::read(); let hash2: sha::Digest = env::read(); + let c2 = env::cycle_count(); + env::verify(INNER_PROOF_METHOD_ID, &serde::to_vec(&hash).unwrap()).unwrap(); env::verify(INNER_PROOF_METHOD_ID, &serde::to_vec(&hash2).unwrap()).unwrap(); - + let c3 = env::cycle_count(); + eprintln!("cycles for input builder: {:?}", c2 - c1); + eprintln!("cycles for inner_proof verification inside guest: {:?}", c3 - c2); env::commit(&hash); } diff --git a/hash/risc0/inner_proof/methods/guest/src/main.rs b/hash/risc0/inner_proof/methods/guest/src/main.rs index 2da5528..28fc0ac 100644 --- a/hash/risc0/inner_proof/methods/guest/src/main.rs +++ b/hash/risc0/inner_proof/methods/guest/src/main.rs @@ -5,8 +5,8 @@ use risc0_zkvm::{guest::env, sha, sha::Sha256}; risc0_zkvm::guest::entry!(main); fn main() { - let data: Vec = env::read(); - let hash = sha::Impl::hash_bytes(&data); + let data: String = env::read(); + let hash = sha::Impl::hash_bytes(&data.as_bytes()); env::commit(&hash) } diff --git a/hash/risc0/inner_proof/src/lib.rs b/hash/risc0/inner_proof/src/lib.rs index 902f1ad..6c6ab88 100644 --- a/hash/risc0/inner_proof/src/lib.rs +++ b/hash/risc0/inner_proof/src/lib.rs @@ -4,9 +4,18 @@ use risc0_zkvm::{ sha}; use rand::Rng; -pub fn generate_bytes(size: u32) -> Vec { +pub fn generate_bytes(size: u32) -> String { let mut rng = rand::thread_rng(); - (0..size).map(|_| rng.gen()).collect() + let random_bytes: Vec = (0..(size/2)).map(|_| rng.gen()).collect(); + + let random_string: String = random_bytes + .iter() + .map(|byte| format!("{:02X}", byte)) // Convert each byte to a two-digit hexadecimal string + .collect(); + + // eprintln!("bytes: {:?}", random_string.as_bytes().len()); + random_string + } pub fn sha_bench(size: u32) -> (Receipt, sha::Digest) {