risc0 version changed to 0.21.0, reading input data as raw bytes to avoid (de)serialization

This commit is contained in:
Manish Kumar 2024-03-20 12:51:43 +05:30
parent 835929eba3
commit 2a5def4a80
11 changed files with 49 additions and 19 deletions

View File

@ -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<u8> = env::read();
let mut data = Vec::<u8>::new();
env::stdin().read_to_end(&mut data).unwrap();
let hash = Blake2bCpuImpl::blake2b(&data);
let digest: Digest = hash.into();
env::commit(&digest)

View File

@ -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<u8> = env::read();
let mut data = Vec::<u8>::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)

View File

@ -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<u8> = env::read();
let mut data = Vec::<u8>::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)

View File

@ -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<u8> = env::read();
let start = cycle_count();
let mut data = Vec::<u8>::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)
}

View File

@ -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<u8> = env::read();
let mut data = Vec::<u8>::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);

View File

@ -8,7 +8,10 @@ use std::time::Instant;
pub fn blake2b_bench(input: Vec<u8>) {
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();

View File

@ -7,10 +7,11 @@ use risc0_zkvm::{ sha};
use std::time::Instant;
pub fn blake3_bench(input: Vec<u8>) {
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();

View File

@ -7,14 +7,17 @@ use risc0_zkvm::{ sha};
use std::time::Instant;
pub fn keccak_bench(input: Vec<u8>) {
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();

View File

@ -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<u8>) {
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");

View File

@ -6,7 +6,11 @@ use std::time::Instant;
use hex::encode;
pub fn sha_accelerated_bench(input: Vec<u8>) {
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();

@ -1 +1 @@
Subproject commit 1742ef8098d246871055501a0559811c9a8fece4
Subproject commit 02fad7a498764d5c6cc851f246813b73b41c30b8