mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-04-28 03:00:18 -04:00
save and load params
This commit is contained in:
@@ -5,7 +5,7 @@ use bls12_381::Bls12;
|
||||
use ff::Field;
|
||||
use group::{Curve, Group, GroupEncoding};
|
||||
|
||||
use sapvi::crypto::{setup_mint_prover, create_mint_proof, verify_mint_proof};
|
||||
use sapvi::crypto::{save_params, load_params, setup_mint_prover, create_mint_proof, verify_mint_proof};
|
||||
|
||||
fn main() {
|
||||
use rand::rngs::OsRng;
|
||||
@@ -19,7 +19,11 @@ fn main() {
|
||||
let serial: jubjub::Fr = jubjub::Fr::random(&mut OsRng);
|
||||
let randomness_coin: jubjub::Fr = jubjub::Fr::random(&mut OsRng);
|
||||
|
||||
let (params, pvk) = setup_mint_prover();
|
||||
{
|
||||
let params = setup_mint_prover();
|
||||
save_params("mint.params", ¶ms);
|
||||
}
|
||||
let (params, pvk) = load_params("mint.params").expect("params should load");
|
||||
|
||||
let (proof, revealed) = create_mint_proof(¶ms, value, randomness_value, serial, randomness_coin,
|
||||
public);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
pub mod payment_proof;
|
||||
|
||||
pub use payment_proof::{setup_mint_prover, create_mint_proof, verify_mint_proof};
|
||||
pub use payment_proof::{save_params, load_params, setup_mint_prover, create_mint_proof, verify_mint_proof};
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ use bls12_381::Bls12;
|
||||
use ff::Field;
|
||||
use group::{Curve, Group, GroupEncoding};
|
||||
|
||||
use crate::error::Result;
|
||||
use crate::circuit::mint_contract::MintContract;
|
||||
|
||||
pub struct MintRevealedValues {
|
||||
@@ -73,7 +74,20 @@ impl MintRevealedValues {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn setup_mint_prover() -> (groth16::Parameters<Bls12>, groth16::PreparedVerifyingKey<Bls12>) {
|
||||
pub fn save_params(filename: &str, params: &groth16::Parameters<Bls12>) -> Result<()> {
|
||||
let buffer = std::fs::File::create(filename)?;
|
||||
params.write(buffer)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn load_params(filename: &str) -> Result<(groth16::Parameters<Bls12>, groth16::PreparedVerifyingKey<Bls12>)> {
|
||||
let buffer = std::fs::File::open(filename)?;
|
||||
let params = groth16::Parameters::<Bls12>::read(buffer, false)?;
|
||||
let pvk = groth16::prepare_verifying_key(¶ms.vk);
|
||||
Ok((params, pvk))
|
||||
}
|
||||
|
||||
pub fn setup_mint_prover() -> groth16::Parameters<Bls12> {
|
||||
println!("Making random params...");
|
||||
let start = Instant::now();
|
||||
let params = {
|
||||
@@ -86,9 +100,8 @@ pub fn setup_mint_prover() -> (groth16::Parameters<Bls12>, groth16::PreparedVeri
|
||||
};
|
||||
groth16::generate_random_parameters::<Bls12, _, _>(c, &mut OsRng).unwrap()
|
||||
};
|
||||
let pvk = groth16::prepare_verifying_key(¶ms.vk);
|
||||
println!("Setup: [{:?}]", start.elapsed());
|
||||
(params, pvk)
|
||||
params
|
||||
}
|
||||
|
||||
pub fn create_mint_proof(
|
||||
|
||||
Reference in New Issue
Block a user