Make Plonky2 config more explicit (#209)
This commit is contained in:
parent
29545f03fc
commit
e420aa7b32
2 changed files with 21 additions and 5 deletions
|
|
@ -2,14 +2,30 @@
|
|||
//! `backend_plonky2` feature is enabled.
|
||||
//! See src/middleware/basetypes.rs for more details.
|
||||
|
||||
use plonky2::plonk::{config::PoseidonGoldilocksConfig, proof::Proof as Plonky2Proof};
|
||||
use plonky2::{
|
||||
field::extension::quadratic::QuadraticExtension,
|
||||
hash::poseidon::PoseidonHash,
|
||||
plonk::{config::GenericConfig, proof::Proof as Plonky2Proof},
|
||||
};
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::middleware::F;
|
||||
|
||||
/// C is the Plonky2 config used in POD2 to work with Plonky2 recursion.
|
||||
pub type C = PoseidonGoldilocksConfig;
|
||||
/// D defines the extension degree of the field used in the Plonky2 proofs (quadratic extension).
|
||||
pub const D: usize = 2;
|
||||
|
||||
/// FE is the degree D field extension used in Plonky2 proofs.
|
||||
pub type FE = QuadraticExtension<F>;
|
||||
|
||||
/// C is the Plonky2 config used in POD2 to work with Plonky2 recursion.
|
||||
#[derive(Debug, Copy, Clone, Default, Eq, PartialEq, Serialize)]
|
||||
pub struct C;
|
||||
impl GenericConfig<D> for C {
|
||||
type F = F;
|
||||
type FE = FE;
|
||||
type Hasher = PoseidonHash;
|
||||
type InnerHasher = PoseidonHash;
|
||||
}
|
||||
|
||||
/// proof system proof
|
||||
pub type Proof = Plonky2Proof<F, PoseidonGoldilocksConfig, D>;
|
||||
pub type Proof = Plonky2Proof<F, C, D>;
|
||||
|
|
|
|||
|
|
@ -352,7 +352,7 @@ pub struct MainPod {
|
|||
params: Params,
|
||||
id: PodId,
|
||||
public_statements: Vec<Statement>,
|
||||
proof: ProofWithPublicInputs<F, C, 2>,
|
||||
proof: ProofWithPublicInputs<F, C, D>,
|
||||
}
|
||||
|
||||
/// Convert a Statement into middleware::Statement and replace references to SELF by `self_id`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue