passing string to env::read()

This commit is contained in:
Manish Kumar 2024-01-31 13:01:11 +05:30
parent f4b4d6e6e6
commit 09bfd1b8c0
3 changed files with 19 additions and 6 deletions

View File

@ -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);
}

View File

@ -5,8 +5,8 @@ use risc0_zkvm::{guest::env, sha, sha::Sha256};
risc0_zkvm::guest::entry!(main);
fn main() {
let data: Vec<u8> = 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)
}

View File

@ -4,9 +4,18 @@ use risc0_zkvm::{ sha};
use rand::Rng;
pub fn generate_bytes(size: u32) -> Vec<u8> {
pub fn generate_bytes(size: u32) -> String {
let mut rng = rand::thread_rng();
(0..size).map(|_| rng.gen()).collect()
let random_bytes: Vec<u8> = (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) {