Integrate Elastic Prover SDK
Introduction
The Snarkify Elastic Prover SDK is a Rust-based library that offers a comprehensive interface for engaging with the Snarkify Network. It allows for the swift conversion of your existing circuit code into a deployable prover. With the SDK's streamlined process, you can easily tap into the capabilities of Snarkify Network using just a handful of straightforward steps.
Installation
cargo add snarkify-sdk async-trait serdeImplement your prover
Create a new file
snarkify.rsin yoursrc/bindirectoryImplement the
ProofHandlertrait andprovemethod for proof creationInvoke
snarkify_sdk::run::<{YourProofHandler}>()in the main function
Here's a snippet of code illustrating how to use the SDK:
use async_trait::async_trait;
use serde::{Deserialize, Serialize};
use snarkify_sdk::prover::ProofHandler;
use std::io;
struct MyProofHandler;
#[derive(Deserialize)]
struct MyInput {
public_input: String,
}
#[derive(Serialize)]
struct MyOutput {
proof: String,
}
#[async_trait]
impl ProofHandler for MyProofHandler {
type Input = MyInput;
type Output = MyOutput;
type Error = ();
async fn prove(data: Self::Input) -> Result<Self::Output, Self::Error> {
Ok(MyOutput {
proof: data.public_input.chars().rev().collect(),
})
}
}
fn main() -> Result<(), io::Error> {
snarkify_sdk::run::<MyProofHandler>()
}Please also checkout this library for a ready-to-deploy example of Poseidon hash prover.
Testing locally
To run your prover locally, simply run,
and you can test the prover locally with a sample request like
Last updated