mirror of
https://github.com/logos-blockchain/lssa.git
synced 2026-01-07 15:53:14 +00:00
add execute function
This commit is contained in:
parent
3d86cc745e
commit
54df676a87
@ -1,4 +1,4 @@
|
|||||||
use risc0_zkvm::{default_prover, sha::Digest, ExecutorEnv, Receipt};
|
use risc0_zkvm::{default_prover, sha::Digest, ExecutorEnv, Receipt, default_executor};
|
||||||
|
|
||||||
pub fn prove<T: serde::ser::Serialize>(input_vec: Vec<T>, elf: &[u8]) -> (u64, Receipt) {
|
pub fn prove<T: serde::ser::Serialize>(input_vec: Vec<T>, elf: &[u8]) -> (u64, Receipt) {
|
||||||
let mut builder = ExecutorEnv::builder();
|
let mut builder = ExecutorEnv::builder();
|
||||||
@ -17,6 +17,21 @@ pub fn prove<T: serde::ser::Serialize>(input_vec: Vec<T>, elf: &[u8]) -> (u64, R
|
|||||||
(digest, receipt)
|
(digest, receipt)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This only executes the program and does not generate a receipt.
|
||||||
|
pub fn execute<T: serde::ser::Serialize>(input_vec: Vec<T>, elf: &[u8]) {
|
||||||
|
let mut builder = ExecutorEnv::builder();
|
||||||
|
|
||||||
|
for input in input_vec {
|
||||||
|
builder.write(&input).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
let env = builder.build().unwrap();
|
||||||
|
|
||||||
|
let exec = default_executor();
|
||||||
|
|
||||||
|
exec.execute(env, elf).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
pub fn verify(receipt: Receipt, image_id: impl Into<Digest>) {
|
pub fn verify(receipt: Receipt, image_id: impl Into<Digest>) {
|
||||||
receipt
|
receipt
|
||||||
.verify(image_id)
|
.verify(image_id)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user