prepare for publishing

This commit is contained in:
Alex Vlasov 2019-03-31 09:08:33 +03:00
parent 219929ee33
commit 4ed620ebf2
42 changed files with 144 additions and 155 deletions

View File

@ -1,12 +1,12 @@
[package] [package]
authors = ["Sean Bowe <ewillbefull@gmail.com>", "Alex Vlasov <alex.m.vlasov@gmail.com>", "Alex Gluchowski <alex@gluchowski.net"] authors = ["Sean Bowe <ewillbefull@gmail.com>", "Alex Vlasov <alex.m.vlasov@gmail.com>", "Alex Gluchowski <alex@gluchowski.net"]
description = "zk-SNARK library" description = "zk-SNARK library"
documentation = "https://github.com/matterinc/bellman" documentation = "https://github.com/matter-labs/bellman"
homepage = "https://github.com/matterinc/bellman" homepage = "https://github.com/matter-labs/bellman"
license = "MIT/Apache-2.0" license = "MIT/Apache-2.0"
name = "bellman" name = "bellman_ce"
repository = "https://github.com/matterinc/bellman" repository = "https://github.com/matter-labs/bellman"
version = "0.2.0" version = "0.3.0"
edition = "2018" edition = "2018"
[lib] [lib]
@ -18,8 +18,8 @@ bit-vec = "0.4.4"
futures = "0.1" futures = "0.1"
cfg-if = "0.1.7" cfg-if = "0.1.7"
pairing = { git = 'https://github.com/matterinc/pairing', tag = "0.16.2" } #pairing = { git = 'https://github.com/matterinc/pairing', tag = "0.16.2" }
#pairing = { path = "../pairing" } pairing_ce = { version = "0.17.0" }
byteorder = "1" byteorder = "1"
futures-cpupool = {version = "0.1", optional = true} futures-cpupool = {version = "0.1", optional = true}

View File

@ -1,6 +1,6 @@
# bellman "Community edition" # bellman "Community edition"
Originally developed for ZCash, with extensions from us to make it a little more pleasant. Uses our "community edition" pairing for Ethereum's BN256 curve. Originally developed for ZCash, with extensions from us to make it a little more pleasant. Uses our "community edition" pairing for Ethereum's BN256 curve. Now published as `bellman_ce` on `crate.io` to allow ease of use.
## License ## License

View File

@ -1,5 +1,5 @@
use pairing::{Engine}; use crate::pairing::{Engine};
use pairing::ff::Field; use crate::pairing::ff::Field;
use std::ops::{Add, Sub}; use std::ops::{Add, Sub};
use std::fmt; use std::fmt;

View File

@ -10,12 +10,12 @@
//! This allows us to perform polynomial operations in O(n) //! This allows us to perform polynomial operations in O(n)
//! by performing an O(n log n) FFT over such a domain. //! by performing an O(n log n) FFT over such a domain.
use pairing::{ use crate::pairing::{
Engine, Engine,
CurveProjective CurveProjective
}; };
use pairing::ff::{ use crate::pairing::ff::{
Field, Field,
PrimeField PrimeField
}; };
@ -51,7 +51,7 @@ impl<E: Engine, G: Group<E>> EvaluationDomain<E, G> {
pub fn from_coeffs(mut coeffs: Vec<G>) -> Result<EvaluationDomain<E, G>, SynthesisError> pub fn from_coeffs(mut coeffs: Vec<G>) -> Result<EvaluationDomain<E, G>, SynthesisError>
{ {
use pairing::ff::PrimeField; use crate::pairing::ff::PrimeField;
// Compute the size of our evaluation domain // Compute the size of our evaluation domain
let coeffs_len = coeffs.len(); let coeffs_len = coeffs.len();
@ -101,7 +101,7 @@ impl<E: Engine, G: Group<E>> EvaluationDomain<E, G> {
// this one does expect coefficients to be smaller than `num_roots_of_unity/2` as we expect multiplication // this one does expect coefficients to be smaller than `num_roots_of_unity/2` as we expect multiplication
pub fn from_coeffs_into_sized(mut coeffs: Vec<G>, size: usize) -> Result<EvaluationDomain<E, G>, SynthesisError> pub fn from_coeffs_into_sized(mut coeffs: Vec<G>, size: usize) -> Result<EvaluationDomain<E, G>, SynthesisError>
{ {
use pairing::ff::PrimeField; use crate::pairing::ff::PrimeField;
// Compute the size of our evaluation domain // Compute the size of our evaluation domain
assert!(size >= coeffs.len()); assert!(size >= coeffs.len());
@ -379,7 +379,7 @@ pub(crate) fn parallel_fft<E: Engine, T: Group<E>>(
// comparing with naive evaluations. // comparing with naive evaluations.
#[test] #[test]
fn polynomial_arith() { fn polynomial_arith() {
use pairing::bls12_381::Bls12; use crate::pairing::bls12_381::Bls12;
use rand::{self, Rand}; use rand::{self, Rand};
fn test_mul<E: Engine, R: rand::Rng>(rng: &mut R) fn test_mul<E: Engine, R: rand::Rng>(rng: &mut R)
@ -426,7 +426,7 @@ fn polynomial_arith() {
#[test] #[test]
fn fft_composition() { fn fft_composition() {
use pairing::bls12_381::Bls12; use crate::pairing::bls12_381::Bls12;
use rand; use rand;
fn test_comp<E: Engine, R: rand::Rng>(rng: &mut R) fn test_comp<E: Engine, R: rand::Rng>(rng: &mut R)
@ -464,7 +464,7 @@ fn fft_composition() {
#[test] #[test]
fn parallel_fft_consistency() { fn parallel_fft_consistency() {
use pairing::bls12_381::Bls12; use crate::pairing::bls12_381::Bls12;
use rand::{self, Rand}; use rand::{self, Rand};
use std::cmp::min; use std::cmp::min;
@ -498,8 +498,8 @@ fn parallel_fft_consistency() {
#[test] #[test]
fn test_field_element_multiplication_bn256() { fn test_field_element_multiplication_bn256() {
use rand::{self, Rand}; use rand::{self, Rand};
use pairing::bn256::Bn256; use crate::pairing::bn256::Bn256;
use pairing::bn256::Fr; use crate::pairing::bn256::Fr;
use num_cpus; use num_cpus;
let cpus = num_cpus::get(); let cpus = num_cpus::get();
@ -527,8 +527,8 @@ fn test_field_element_multiplication_bn256() {
#[test] #[test]
fn test_fft_bn256() { fn test_fft_bn256() {
use rand::{self, Rand}; use rand::{self, Rand};
use pairing::bn256::Bn256; use crate::pairing::bn256::Bn256;
use pairing::bn256::Fr; use crate::pairing::bn256::Fr;
use num_cpus; use num_cpus;
let cpus = num_cpus::get(); let cpus = num_cpus::get();

View File

@ -4,14 +4,14 @@ use rand::Rng;
use std::sync::Arc; use std::sync::Arc;
use pairing::{ use crate::pairing::{
Engine, Engine,
Wnaf, Wnaf,
CurveProjective, CurveProjective,
CurveAffine CurveAffine
}; };
use pairing::ff::{ use crate::pairing::ff::{
PrimeField, PrimeField,
Field Field
}; };

View File

@ -1,4 +1,4 @@
use pairing::{ use crate::pairing::{
Engine, Engine,
CurveAffine, CurveAffine,
EncodedPoint EncodedPoint
@ -474,8 +474,8 @@ impl<E: Engine> PartialEq for Parameters<E> {
// use {Circuit, SynthesisError, ConstraintSystem}; // use {Circuit, SynthesisError, ConstraintSystem};
// use rand::{Rand, thread_rng}; // use rand::{Rand, thread_rng};
// use pairing::ff::{Field}; // use crate::pairing::ff::{Field};
// use pairing::bls12_381::{Bls12, Fr}; // use crate::pairing::bls12_381::{Bls12, Fr};
// #[test] // #[test]
// fn serialization() { // fn serialization() {

View File

@ -1,8 +1,8 @@
use pairing::{ use crate::pairing::{
Engine Engine
}; };
use pairing::ff:: { use crate::pairing::ff:: {
Field, Field,
PrimeField, PrimeField,
}; };

View File

@ -4,14 +4,14 @@ use rand::Rng;
use std::sync::Arc; use std::sync::Arc;
use pairing::{ use crate::pairing::{
Engine, Engine,
Wnaf, Wnaf,
CurveProjective, CurveProjective,
CurveAffine CurveAffine
}; };
use pairing::ff::{ use crate::pairing::ff::{
PrimeField, PrimeField,
Field Field
}; };

View File

@ -1,4 +1,4 @@
use pairing::{ use crate::pairing::{
Engine, Engine,
CurveAffine, CurveAffine,
EncodedPoint EncodedPoint
@ -487,8 +487,8 @@ mod test_with_bls12_381 {
use crate::{Circuit, SynthesisError, ConstraintSystem}; use crate::{Circuit, SynthesisError, ConstraintSystem};
use rand::{Rand, thread_rng}; use rand::{Rand, thread_rng};
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::bls12_381::{Bls12, Fr}; use crate::pairing::bls12_381::{Bls12, Fr};
#[test] #[test]
fn serialization() { fn serialization() {

View File

@ -6,13 +6,13 @@ use std::sync::Arc;
use futures::Future; use futures::Future;
use pairing::{ use crate::pairing::{
Engine, Engine,
CurveProjective, CurveProjective,
CurveAffine CurveAffine
}; };
use pairing::ff::{ use crate::pairing::ff::{
PrimeField, PrimeField,
Field Field
}; };

View File

@ -1,8 +1,8 @@
use pairing::{ use crate::pairing::{
Engine Engine
}; };
use pairing::ff:: { use crate::pairing::ff:: {
Field, Field,
PrimeField, PrimeField,
}; };

View File

@ -1,10 +1,10 @@
use pairing::{ use crate::pairing::{
Engine, Engine,
CurveProjective, CurveProjective,
CurveAffine CurveAffine
}; };
use pairing::ff::{PrimeField}; use crate::pairing::ff::{PrimeField};
use super::{ use super::{
Proof, Proof,

View File

@ -1,9 +1,9 @@
use pairing::{ use crate::pairing::{
Engine, Engine,
CurveProjective CurveProjective
}; };
use pairing::ff::{ use crate::pairing::ff::{
Field, Field,
PrimeField PrimeField
}; };

View File

@ -3,7 +3,7 @@
#[macro_use] #[macro_use]
extern crate cfg_if; extern crate cfg_if;
extern crate pairing as pairing_import; extern crate pairing_ce as pairing_import;
extern crate rand; extern crate rand;
extern crate bit_vec; extern crate bit_vec;
extern crate byteorder; extern crate byteorder;
@ -50,20 +50,9 @@ pub mod pairing {
mod cs; mod cs;
pub use self::cs::*; pub use self::cs::*;
// todo move to log module after removing all references
static mut VERBOSE_SWITCH: i8 = -1;
use std::str::FromStr; use std::str::FromStr;
use std::env; use std::env;
fn verbose_flag() -> bool { fn verbose_flag() -> bool {
unsafe { option_env!("BELLMAN_VERBOSE").unwrap_or("0") == "1"
if VERBOSE_SWITCH < 0 {
VERBOSE_SWITCH = FromStr::from_str(&env::var("BELLMAN_VERBOSE").unwrap_or(String::new())).unwrap_or(1);
}
match VERBOSE_SWITCH {
1 => true,
_ => false,
}
}
} }

View File

@ -1,10 +1,10 @@
use pairing::{ use crate::pairing::{
CurveAffine, CurveAffine,
CurveProjective, CurveProjective,
Engine Engine
}; };
use pairing::ff::{ use crate::pairing::ff::{
PrimeField, PrimeField,
Field, Field,
PrimeFieldRepr, PrimeFieldRepr,
@ -323,7 +323,7 @@ fn test_with_bls12() {
} }
use rand::{self, Rand}; use rand::{self, Rand};
use pairing::bls12_381::Bls12; use crate::pairing::bls12_381::Bls12;
const SAMPLES: usize = 1 << 14; const SAMPLES: usize = 1 << 14;
@ -348,7 +348,7 @@ fn test_with_bls12() {
#[test] #[test]
fn test_speed_with_bn256() { fn test_speed_with_bn256() {
use rand::{self, Rand}; use rand::{self, Rand};
use pairing::bn256::Bn256; use crate::pairing::bn256::Bn256;
use num_cpus; use num_cpus;
let cpus = num_cpus::get(); let cpus = num_cpus::get();
@ -380,7 +380,7 @@ fn test_speed_with_bn256() {
#[test] #[test]
fn test_dense_multiexp() { fn test_dense_multiexp() {
use rand::{XorShiftRng, SeedableRng, Rand, Rng}; use rand::{XorShiftRng, SeedableRng, Rand, Rng};
use pairing::bn256::Bn256; use crate::pairing::bn256::Bn256;
use num_cpus; use num_cpus;
// const SAMPLES: usize = 1 << 22; // const SAMPLES: usize = 1 << 22;

View File

@ -1,5 +1,5 @@
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine}; use crate::pairing::{Engine};
use std::ops::{Add, Sub, Neg}; use std::ops::{Add, Sub, Neg};
/// This represents a linear combination of some variables, with coefficients /// This represents a linear combination of some variables, with coefficients

View File

@ -1,7 +1,7 @@
extern crate pairing; extern crate pairing;
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine}; use crate::pairing::{Engine};
use crate::{SynthesisError}; use crate::{SynthesisError};
use std::marker::PhantomData; use std::marker::PhantomData;

View File

@ -1,5 +1,5 @@
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine, CurveProjective}; use crate::pairing::{Engine, CurveProjective};
use std::marker::PhantomData; use std::marker::PhantomData;
use rand::{Rand, Rng}; use rand::{Rand, Rng};

View File

@ -1,5 +1,5 @@
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine, CurveProjective}; use crate::pairing::{Engine, CurveProjective};
use std::marker::PhantomData; use std::marker::PhantomData;
use super::{Proof, SxyAdvice}; use super::{Proof, SxyAdvice};
@ -97,8 +97,8 @@ pub fn create_proof_on_srs<E: Engine, C: Circuit<E> + Clone>(
// #[test] // #[test]
// fn my_fun_circuit_test() { // fn my_fun_circuit_test() {
// use pairing::ff::PrimeField; // use crate::pairing::ff::PrimeField;
// use pairing::bls12_381::{Bls12, Fr}; // use crate::pairing::bls12_381::{Bls12, Fr};
// use super::*; // use super::*;
// use crate::sonic::cs::{Basic, ConstraintSystem, LinearCombination}; // use crate::sonic::cs::{Basic, ConstraintSystem, LinearCombination};

View File

@ -1,5 +1,5 @@
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine, CurveProjective}; use crate::pairing::{Engine, CurveProjective};
use std::marker::PhantomData; use std::marker::PhantomData;
use rand::{Rand, Rng}; use rand::{Rand, Rng};
@ -53,8 +53,8 @@ pub fn verify_aggregate<E: Engine, C: Circuit<E> + Clone, R: Rng>(
// #[test] // #[test]
// fn my_fun_circuit_test() { // fn my_fun_circuit_test() {
// use pairing::ff::PrimeField; // use crate::pairing::ff::PrimeField;
// use pairing::bls12_381::{Bls12, Fr}; // use crate::pairing::bls12_381::{Bls12, Fr};
// use super::*; // use super::*;
// use crate::sonic::cs::{Basic, ConstraintSystem, LinearCombination}; // use crate::sonic::cs::{Basic, ConstraintSystem, LinearCombination};

View File

@ -8,8 +8,8 @@
//! This submodule contains the `Batch` abstraction for creating a //! This submodule contains the `Batch` abstraction for creating a
//! context for batch verification. //! context for batch verification.
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine, CurveAffine, CurveProjective}; use crate::pairing::{Engine, CurveAffine, CurveProjective};
use crate::SynthesisError; use crate::SynthesisError;

View File

@ -2,14 +2,14 @@ use rand::Rng;
use std::sync::Arc; use std::sync::Arc;
use pairing::{ use crate::pairing::{
Engine, Engine,
Wnaf, Wnaf,
CurveProjective, CurveProjective,
CurveAffine CurveAffine
}; };
use pairing::ff::{ use crate::pairing::ff::{
PrimeField, PrimeField,
Field Field
}; };

View File

@ -1,5 +1,5 @@
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine, CurveProjective}; use crate::pairing::{Engine, CurveProjective};
use std::marker::PhantomData; use std::marker::PhantomData;
use super::{Proof, SxyAdvice}; use super::{Proof, SxyAdvice};

View File

@ -1,7 +1,7 @@
extern crate pairing; extern crate pairing;
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine, CurveProjective}; use crate::pairing::{Engine, CurveProjective};
use std::marker::PhantomData; use std::marker::PhantomData;
mod batch; mod batch;

View File

@ -1,10 +1,10 @@
use pairing::ff::{ use crate::pairing::ff::{
Field, Field,
PrimeField, PrimeField,
PrimeFieldRepr PrimeFieldRepr
}; };
use pairing::{ use crate::pairing::{
Engine, Engine,
CurveAffine, CurveAffine,
EncodedPoint EncodedPoint
@ -64,7 +64,7 @@ impl<E: Engine> Proof<E> {
mut writer: W mut writer: W
) -> io::Result<()> ) -> io::Result<()>
{ {
use pairing::ff::{PrimeField, PrimeFieldRepr}; use crate::pairing::ff::{PrimeField, PrimeFieldRepr};
writer.write_all(self.r.into_compressed().as_ref())?; writer.write_all(self.r.into_compressed().as_ref())?;
writer.write_all(self.t.into_compressed().as_ref())?; writer.write_all(self.t.into_compressed().as_ref())?;
let mut buffer = vec![]; let mut buffer = vec![];
@ -388,7 +388,7 @@ impl<E: Engine> Parameters<E> {
fn parameters_generation() { fn parameters_generation() {
use crate::{ConstraintSystem, Circuit}; use crate::{ConstraintSystem, Circuit};
use pairing::bls12_381::{Bls12, Fr}; use crate::pairing::bls12_381::{Bls12, Fr};
#[derive(Clone)] #[derive(Clone)]
struct MySillyCircuit<E: Engine> { struct MySillyCircuit<E: Engine> {

View File

@ -1,5 +1,5 @@
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine, CurveProjective}; use crate::pairing::{Engine, CurveProjective};
use std::marker::PhantomData; use std::marker::PhantomData;
use crate::sonic::cs::{Backend}; use crate::sonic::cs::{Backend};

View File

@ -1,5 +1,5 @@
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine, CurveProjective}; use crate::pairing::{Engine, CurveProjective};
use std::marker::PhantomData; use std::marker::PhantomData;
use super::{Proof, SxyAdvice}; use super::{Proof, SxyAdvice};
@ -397,8 +397,8 @@ pub fn create_proof_on_srs<E: Engine, C: Circuit<E>, S: SynthesisDriver>(
#[test] #[test]
fn my_fun_circuit_test() { fn my_fun_circuit_test() {
use pairing::ff::PrimeField; use crate::pairing::ff::PrimeField;
use pairing::bls12_381::{Bls12, Fr}; use crate::pairing::bls12_381::{Bls12, Fr};
use super::*; use super::*;
use crate::sonic::cs::{Basic, ConstraintSystem, LinearCombination}; use crate::sonic::cs::{Basic, ConstraintSystem, LinearCombination};
use rand::{thread_rng}; use rand::{thread_rng};
@ -449,13 +449,13 @@ fn my_fun_circuit_test() {
#[test] #[test]
fn polynomial_commitment_test() { fn polynomial_commitment_test() {
use pairing::ff::PrimeField; use crate::pairing::ff::PrimeField;
use pairing::ff::PrimeFieldRepr; use crate::pairing::ff::PrimeFieldRepr;
use pairing::bls12_381::{Bls12, Fr}; use crate::pairing::bls12_381::{Bls12, Fr};
use super::*; use super::*;
use crate::sonic::cs::{Basic, ConstraintSystem, LinearCombination}; use crate::sonic::cs::{Basic, ConstraintSystem, LinearCombination};
use rand::{thread_rng}; use rand::{thread_rng};
use pairing::{CurveAffine}; use crate::pairing::{CurveAffine};
let srs = SRS::<Bls12>::new( let srs = SRS::<Bls12>::new(
20, 20,

View File

@ -1,5 +1,5 @@
use pairing::ff::{Field}; use crate::pairing::ff::{Field};
use pairing::{Engine, CurveProjective}; use crate::pairing::{Engine, CurveProjective};
use std::marker::PhantomData; use std::marker::PhantomData;
use rand::{Rand, Rng}; use rand::{Rand, Rng};

View File

@ -1,7 +1,7 @@
#[test] #[test]
fn test_paper_results() { fn test_paper_results() {
use pairing::bls12_381::{Bls12, Fr}; use crate::pairing::bls12_381::{Bls12, Fr};
use std::time::{Instant}; use std::time::{Instant};
let srs_x = Fr::from_str("23923").unwrap(); let srs_x = Fr::from_str("23923").unwrap();
@ -78,8 +78,8 @@ fn test_paper_results() {
} }
{ {
use pairing::{CurveAffine}; use crate::pairing::{CurveAffine};
use pairing::bls12_381::{G1Affine, G2Affine}; use crate::pairing::bls12_381::{G1Affine, G2Affine};
let a = G1Affine::one(); let a = G1Affine::one();
let b = G2Affine::one(); let b = G2Affine::one();
let c = G1Affine::one(); let c = G1Affine::one();
@ -106,8 +106,8 @@ fn test_paper_results() {
{ {
use sonic::util::multiexp; use sonic::util::multiexp;
use pairing::{CurveAffine}; use crate::pairing::{CurveAffine};
use pairing::bls12_381::{G1Affine, G2Affine}; use crate::pairing::bls12_381::{G1Affine, G2Affine};
// e([\alpha G], [\beta H]) = e(A, B) e(IV, [\gamma] H) e(C, [\delta] H) // e([\alpha G], [\beta H]) = e(A, B) e(IV, [\gamma] H) e(C, [\delta] H)
let a = G1Affine::one(); let a = G1Affine::one();
let b = G2Affine::one(); let b = G2Affine::one();

View File

@ -1,8 +1,8 @@
extern crate pairing; extern crate pairing;
extern crate rand; extern crate rand;
use pairing::ff::{Field, PrimeField}; use crate::pairing::ff::{Field, PrimeField};
use pairing::{Engine, CurveProjective}; use crate::pairing::{Engine, CurveProjective};
// this one is for all external interfaces // this one is for all external interfaces
// use crate::{LinearCombination, ConstraintSystem, Circuit, Variable}; // use crate::{LinearCombination, ConstraintSystem, Circuit, Variable};

View File

@ -1,5 +1,5 @@
use pairing::ff::{Field, PrimeField}; use crate::pairing::ff::{Field, PrimeField};
use pairing::{CurveAffine, CurveProjective, Engine, Wnaf}; use crate::pairing::{CurveAffine, CurveProjective, Engine, Wnaf};
use std::io::{self, Read, Write}; use std::io::{self, Read, Write};
use std::sync::Arc; use std::sync::Arc;
@ -169,7 +169,7 @@ impl<E: Engine> SRS<E> {
checked: bool checked: bool
) -> io::Result<Self> ) -> io::Result<Self>
{ {
use pairing::EncodedPoint; use crate::pairing::EncodedPoint;
let read_g1 = |reader: &mut R| -> io::Result<E::G1Affine> { let read_g1 = |reader: &mut R| -> io::Result<E::G1Affine> {
let mut repr = <E::G1Affine as CurveAffine>::Uncompressed::empty(); let mut repr = <E::G1Affine as CurveAffine>::Uncompressed::empty();

View File

@ -9,20 +9,20 @@ use rand::{thread_rng, Rng};
use std::time::{Duration, Instant}; use std::time::{Duration, Instant};
// Bring in some tools for using pairing-friendly curves // Bring in some tools for using pairing-friendly curves
use pairing::{ use crate::pairing::{
Engine Engine
}; };
use pairing::ff::{ use crate::pairing::ff::{
Field, Field,
}; };
// We're going to use the BLS12-381 pairing-friendly elliptic curve. // We're going to use the BLS12-381 pairing-friendly elliptic curve.
use pairing::bls12_381::{ use crate::pairing::bls12_381::{
Bls12 Bls12
}; };
use pairing::bn256::{ use crate::pairing::bn256::{
Bn256 Bn256
}; };
@ -143,9 +143,9 @@ impl<'a, E: Engine> Circuit<E> for MiMCDemoNoInputs<'a, E> {
#[test] #[test]
fn test_sonic_mimc() { fn test_sonic_mimc() {
use pairing::ff::{Field, PrimeField}; use crate::pairing::ff::{Field, PrimeField};
use pairing::{Engine, CurveAffine, CurveProjective}; use crate::pairing::{Engine, CurveAffine, CurveProjective};
use pairing::bls12_381::{Bls12, Fr}; use crate::pairing::bls12_381::{Bls12, Fr};
use std::time::{Instant}; use std::time::{Instant};
use bellman::sonic::srs::SRS; use bellman::sonic::srs::SRS;
@ -247,10 +247,10 @@ fn test_sonic_mimc() {
#[test] #[test]
fn test_inputs_into_sonic_mimc() { fn test_inputs_into_sonic_mimc() {
use pairing::ff::{Field, PrimeField}; use crate::pairing::ff::{Field, PrimeField};
use pairing::{Engine, CurveAffine, CurveProjective}; use crate::pairing::{Engine, CurveAffine, CurveProjective};
use pairing::bn256::{Bn256, Fr}; use crate::pairing::bn256::{Bn256, Fr};
// use pairing::bls12_381::{Bls12, Fr}; // use crate::pairing::bls12_381::{Bls12, Fr};
use std::time::{Instant}; use std::time::{Instant};
use bellman::sonic::srs::SRS; use bellman::sonic::srs::SRS;
@ -354,7 +354,7 @@ fn test_inputs_into_sonic_mimc() {
#[test] #[test]
fn test_high_level_sonic_api() { fn test_high_level_sonic_api() {
use pairing::bn256::{Bn256}; use crate::pairing::bn256::{Bn256};
use std::time::{Instant}; use std::time::{Instant};
use bellman::sonic::helped::{ use bellman::sonic::helped::{
generate_random_parameters, generate_random_parameters,

View File

@ -1,7 +1,7 @@
extern crate pairing; extern crate pairing;
use pairing::ff::{Field, PrimeField, PrimeFieldRepr}; use crate::pairing::ff::{Field, PrimeField, PrimeFieldRepr};
use pairing::{CurveAffine, CurveProjective, Engine}; use crate::pairing::{CurveAffine, CurveProjective, Engine};
use std::io; use std::io;
mod hasher; mod hasher;

View File

@ -2,8 +2,8 @@
/// in those two polynomials are equal (part of the permutation argument) with additional assumption that /// in those two polynomials are equal (part of the permutation argument) with additional assumption that
/// those coefficients are never equal to zero /// those coefficients are never equal to zero
use pairing::ff::{Field, PrimeField, PrimeFieldRepr}; use crate::pairing::ff::{Field, PrimeField, PrimeFieldRepr};
use pairing::{Engine, CurveProjective, CurveAffine}; use crate::pairing::{Engine, CurveProjective, CurveAffine};
use std::marker::PhantomData; use std::marker::PhantomData;
use crate::sonic::srs::SRS; use crate::sonic::srs::SRS;
@ -658,7 +658,7 @@ impl<E: Engine> GrandProductArgument<E> {
#[test] #[test]
fn test_grand_product_argument() { fn test_grand_product_argument() {
use pairing::bls12_381::{Fr, G1Affine, G1, Bls12}; use crate::pairing::bls12_381::{Fr, G1Affine, G1, Bls12};
use rand::{XorShiftRng, SeedableRng, Rand, Rng}; use rand::{XorShiftRng, SeedableRng, Rand, Rng};
use crate::sonic::srs::SRS; use crate::sonic::srs::SRS;

View File

@ -2,8 +2,8 @@
/// actually a commitment to a vector of values that are equal to `(s^{perm})_i * y^{perm(i)}` /// actually a commitment to a vector of values that are equal to `(s^{perm})_i * y^{perm(i)}`
/// for some fixed permutation `perm` /// for some fixed permutation `perm`
use pairing::ff::{Field, PrimeField, PrimeFieldRepr, ScalarEngine}; use crate::pairing::ff::{Field, PrimeField, PrimeFieldRepr, ScalarEngine};
use pairing::{Engine, CurveProjective, CurveAffine}; use crate::pairing::{Engine, CurveProjective, CurveAffine};
use std::marker::PhantomData; use std::marker::PhantomData;
use crate::sonic::srs::SRS; use crate::sonic::srs::SRS;
@ -584,7 +584,7 @@ impl<E: Engine> PermutationArgument<E> {
#[test] #[test]
fn test_permutation_argument() { fn test_permutation_argument() {
use pairing::bls12_381::{Fr, G1Affine, G1, Bls12}; use crate::pairing::bls12_381::{Fr, G1Affine, G1, Bls12};
use rand::{XorShiftRng, SeedableRng, Rand, Rng}; use rand::{XorShiftRng, SeedableRng, Rand, Rng};
use crate::sonic::srs::SRS; use crate::sonic::srs::SRS;

View File

@ -1,5 +1,5 @@
use pairing::ff::{Field, PrimeField, PrimeFieldRepr}; use crate::pairing::ff::{Field, PrimeField, PrimeFieldRepr};
use pairing::{Engine, CurveProjective, CurveAffine}; use crate::pairing::{Engine, CurveProjective, CurveAffine};
use std::marker::PhantomData; use std::marker::PhantomData;
use crate::sonic::srs::SRS; use crate::sonic::srs::SRS;

View File

@ -1,8 +1,8 @@
/// Wellformedness argument allows to verify that some committment was to multivariate polynomial of degree n, /// Wellformedness argument allows to verify that some committment was to multivariate polynomial of degree n,
/// with no constant term and negative powers /// with no constant term and negative powers
use pairing::ff::{Field, PrimeField, PrimeFieldRepr}; use crate::pairing::ff::{Field, PrimeField, PrimeFieldRepr};
use pairing::{Engine, CurveProjective, CurveAffine}; use crate::pairing::{Engine, CurveProjective, CurveAffine};
use std::marker::PhantomData; use std::marker::PhantomData;
use crate::sonic::srs::SRS; use crate::sonic::srs::SRS;
@ -132,7 +132,7 @@ impl<E: Engine> WellformednessArgument<E> {
#[test] #[test]
fn test_argument() { fn test_argument() {
use pairing::bls12_381::{Fr, G1Affine, G1, Bls12}; use crate::pairing::bls12_381::{Fr, G1Affine, G1, Bls12};
use rand::{XorShiftRng, SeedableRng, Rand, Rng}; use rand::{XorShiftRng, SeedableRng, Rand, Rng};
use crate::sonic::srs::SRS; use crate::sonic::srs::SRS;
@ -158,7 +158,7 @@ fn test_argument() {
#[test] #[test]
fn test_argument_soundness() { fn test_argument_soundness() {
use pairing::bls12_381::{Fr, G1Affine, G1, Bls12}; use crate::pairing::bls12_381::{Fr, G1Affine, G1, Bls12};
use rand::{XorShiftRng, SeedableRng, Rand, Rng}; use rand::{XorShiftRng, SeedableRng, Rand, Rng};
use crate::sonic::srs::SRS; use crate::sonic::srs::SRS;

View File

@ -1,6 +1,6 @@
use crate::SynthesisError; use crate::SynthesisError;
use pairing::ff::{Field, PrimeField, PrimeFieldRepr, ScalarEngine}; use crate::pairing::ff::{Field, PrimeField, PrimeFieldRepr, ScalarEngine};
use pairing::{CurveAffine, CurveProjective, Engine}; use crate::pairing::{CurveAffine, CurveProjective, Engine};
use super::srs::SRS; use super::srs::SRS;
pub trait ChainExt: Iterator { pub trait ChainExt: Iterator {
@ -437,8 +437,8 @@ pub fn check_polynomial_commitment<E: Engine>(
#[test] #[test]
fn laurent_division() { fn laurent_division() {
use pairing::ff::PrimeField; use crate::pairing::ff::PrimeField;
use pairing::bls12_381::{Fr}; use crate::pairing::bls12_381::{Fr};
let mut poly = vec![ let mut poly = vec![
Fr::from_str("328947234").unwrap(), Fr::from_str("328947234").unwrap(),
@ -696,8 +696,8 @@ impl<T> OptionExt<T> for Option<T> {
fn test_mul() { fn test_mul() {
use rand::{self, Rand}; use rand::{self, Rand};
use pairing::bls12_381::Bls12; use crate::pairing::bls12_381::Bls12;
use pairing::bls12_381::Fr; use crate::pairing::bls12_381::Fr;
const SAMPLES: usize = 100; const SAMPLES: usize = 100;
@ -715,8 +715,8 @@ fn test_mul() {
#[test] #[test]
fn test_eval_at_powers() { fn test_eval_at_powers() {
use rand::{self, Rand, Rng}; use rand::{self, Rand, Rng};
use pairing::bls12_381::Bls12; use crate::pairing::bls12_381::Bls12;
use pairing::bls12_381::Fr; use crate::pairing::bls12_381::Fr;
const SAMPLES: usize = 100000; const SAMPLES: usize = 100000;
@ -747,8 +747,8 @@ fn test_eval_at_powers() {
#[test] #[test]
fn test_mut_eval_at_powers() { fn test_mut_eval_at_powers() {
use rand::{self, Rand, Rng}; use rand::{self, Rand, Rng};
use pairing::bls12_381::Bls12; use crate::pairing::bls12_381::Bls12;
use pairing::bls12_381::Fr; use crate::pairing::bls12_381::Fr;
const SAMPLES: usize = 100000; const SAMPLES: usize = 100000;
@ -780,8 +780,8 @@ fn test_mut_eval_at_powers() {
#[test] #[test]
fn test_mut_distribute_powers() { fn test_mut_distribute_powers() {
use rand::{self, Rand, Rng}; use rand::{self, Rand, Rng};
use pairing::bls12_381::Bls12; use crate::pairing::bls12_381::Bls12;
use pairing::bls12_381::Fr; use crate::pairing::bls12_381::Fr;
const SAMPLES: usize = 100000; const SAMPLES: usize = 100000;

View File

@ -1,10 +1,10 @@
use pairing::{ use crate::pairing::{
CurveAffine, CurveAffine,
CurveProjective, CurveProjective,
Engine Engine
}; };
use pairing::ff::{ use crate::pairing::ff::{
PrimeField, PrimeField,
Field, Field,
PrimeFieldRepr, PrimeFieldRepr,

View File

@ -1,4 +1,4 @@
use pairing::{ use crate::pairing::{
Engine, Engine,
CurveProjective, CurveProjective,
CurveAffine, CurveAffine,
@ -6,7 +6,7 @@ use pairing::{
EncodedPoint EncodedPoint
}; };
use pairing::ff::{ use crate::pairing::ff::{
PrimeField, PrimeField,
PrimeFieldRepr, PrimeFieldRepr,
Field, Field,

View File

@ -1,8 +1,8 @@
use pairing::{ use crate::pairing::{
Engine Engine
}; };
use pairing::ff:: { use crate::pairing::ff:: {
Field, Field,
PrimeField, PrimeField,
}; };

View File

@ -9,20 +9,20 @@ use rand::{thread_rng, Rng};
use std::time::{Duration, Instant}; use std::time::{Duration, Instant};
// Bring in some tools for using pairing-friendly curves // Bring in some tools for using pairing-friendly curves
use pairing::{ use crate::pairing::{
Engine Engine
}; };
use pairing::ff::{ use crate::pairing::ff::{
Field, Field,
}; };
// We're going to use the BLS12-381 pairing-friendly elliptic curve. // We're going to use the BLS12-381 pairing-friendly elliptic curve.
use pairing::bls12_381::{ use crate::pairing::bls12_381::{
Bls12 Bls12
}; };
use pairing::bn256::{ use crate::pairing::bn256::{
Bn256 Bn256
}; };