Type Alias InnerValMmcs

Source
pub type InnerValMmcs = MerkleTreeMmcs<<InnerVal as Field>::Packing, <InnerVal as Field>::Packing, InnerHash, InnerCompress, 8>;

Aliased Type§

struct InnerValMmcs { /* private fields */ }

Implementations

Source§

impl<P, PW, H, C, const DIGEST_ELEMS: usize> MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS>

Source

pub const fn new( hash: H, compress: C, ) -> MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS>

Trait Implementations

Source§

impl<P, PW, H, C, const DIGEST_ELEMS: usize> Clone for MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS>
where P: Clone, PW: Clone, H: Clone, C: Clone,

Source§

fn clone(&self) -> MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<P, PW, H, C, const DIGEST_ELEMS: usize> Debug for MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS>
where P: Debug, PW: Debug, H: Debug, C: Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<P, PW, H, C, const DIGEST_ELEMS: usize> Mmcs<<P as PackedValue>::Value> for MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS>

Source§

type ProverData<M> = MerkleTree<<P as PackedValue>::Value, <PW as PackedValue>::Value, M, DIGEST_ELEMS>

Source§

type Commitment = Hash<<P as PackedValue>::Value, <PW as PackedValue>::Value, DIGEST_ELEMS>

Source§

type Proof = Vec<[<PW as PackedValue>::Value; DIGEST_ELEMS]>

Source§

type Error = MerkleTreeError

Source§

fn commit<M>( &self, inputs: Vec<M>, ) -> (<MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS> as Mmcs<<P as PackedValue>::Value>>::Commitment, <MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS> as Mmcs<<P as PackedValue>::Value>>::ProverData<M>)
where M: Matrix<<P as PackedValue>::Value>,

Source§

fn open_batch<M>( &self, index: usize, prover_data: &MerkleTree<<P as PackedValue>::Value, <PW as PackedValue>::Value, M, DIGEST_ELEMS>, ) -> (Vec<Vec<<P as PackedValue>::Value>>, Vec<[<PW as PackedValue>::Value; DIGEST_ELEMS]>)
where M: Matrix<<P as PackedValue>::Value>,

Opens a batch of rows from committed matrices returns (openings, proof) where openings is a vector whose ith element is the jth row of the ith matrix M[i], and j = index >> (log2_ceil(max_height) - log2_ceil(M[i].height)).
Source§

fn get_matrices<'a, M>( &self, prover_data: &'a <MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS> as Mmcs<<P as PackedValue>::Value>>::ProverData<M>, ) -> Vec<&'a M>
where M: Matrix<<P as PackedValue>::Value>,

Get the matrices that were committed to.
Source§

fn verify_batch( &self, commit: &<MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS> as Mmcs<<P as PackedValue>::Value>>::Commitment, dimensions: &[Dimensions], index: usize, opened_values: &[Vec<<P as PackedValue>::Value>], proof: &<MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS> as Mmcs<<P as PackedValue>::Value>>::Proof, ) -> Result<(), <MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS> as Mmcs<<P as PackedValue>::Value>>::Error>

Verify a batch opening. index is the row index we’re opening for each matrix, following the same semantics as open_batch. dimensions is a slice whose ith element is the dimensions of the matrix being opened in the ith opening
Source§

fn commit_matrix<M>(&self, input: M) -> (Self::Commitment, Self::ProverData<M>)
where M: Matrix<T>,

Source§

fn commit_vec( &self, input: Vec<T>, ) -> (Self::Commitment, Self::ProverData<DenseMatrix<T>>)
where T: Clone + Send + Sync,

Source§

fn get_matrix_heights<M>(&self, prover_data: &Self::ProverData<M>) -> Vec<usize>
where M: Matrix<T>,

Source§

fn get_max_height<M>(&self, prover_data: &Self::ProverData<M>) -> usize
where M: Matrix<T>,

Get the largest height of any committed matrix.
Source§

impl<P, PW, H, C, const DIGEST_ELEMS: usize> Copy for MerkleTreeMmcs<P, PW, H, C, DIGEST_ELEMS>
where P: Copy, PW: Copy, H: Copy, C: Copy,