From 636f7e478162a923f4dd7afd4e2c4f40040fbb6c Mon Sep 17 00:00:00 2001 From: ggutoski Date: Mon, 9 Sep 2024 14:46:50 +0000 Subject: [PATCH] deploy: 35d6cacc4a70dd24fcaeb70588041f103335ff0c --- help.html | 2 +- jf_elgamal/struct.EncKey.html | 2 +- jf_elgamal/struct.KeyPair.html | 2 +- .../errors/enum.MerkleTreeError.html | 2 +- jf_merkle_tree/examples/struct.Interval.html | 2 +- jf_merkle_tree/prelude/struct.RescueHash.html | 6 +- jf_merkle_tree/trait.DigestAlgorithm.html | 2 +- .../struct.VerifyingKeyVar.html | 22 +- .../trait.BatchableCircuit.html | 8 +- .../struct.RescueTranscriptVar.html | 2 +- jf_plonk/enum.PlonkType.html | 8 +- jf_plonk/errors/enum.PlonkError.html | 14 +- ...fn.build_batch_proof_and_vks_for_test.html | 2 +- .../batch_arg/struct.BatchArgument.html | 6 +- .../batch_arg/struct.Instance.html | 2 +- .../proof_system/struct.PlonkKzgSnark.html | 12 +- .../structs/struct.BatchProof.html | 4 +- .../proof_system/structs/struct.Proof.html | 20 +- .../structs/struct.VerifyingKey.html | 10 +- .../proof_system/structs/type.CommitKey.html | 2 +- .../proof_system/structs/type.OpenKey.html | 2 +- .../structs/type.UniversalSrs.html | 2 +- .../proof_system/trait.UniversalSNARK.html | 12 +- .../transcript/struct.RescueTranscript.html | 8 +- .../transcript/struct.SolidityTranscript.html | 4 +- .../transcript/struct.StandardTranscript.html | 4 +- .../transcript/trait.PlonkTranscript.html | 10 +- .../struct.FixedLengthRescueCommitment.html | 14 +- .../crhf/struct.FixedLengthRescueCRHF.html | 6 +- .../crhf/struct.VariableLengthRescueCRHF.html | 6 +- jf_rescue/prf/struct.RescuePRF.html | 10 +- jf_vid/advz/index.html | 2 +- .../struct.LargeRangeProof.html | 6 +- .../struct.SmallRangeProof.html | 6 +- jf_vid/advz/struct.AdvzInternal.html | 30 +-- jf_vid/advz/struct.Common.html | 38 +-- jf_vid/advz/struct.Share.html | 2 +- jf_vid/advz/trait.MaybeGPU.html | 10 +- jf_vid/advz/type.Advz.html | 10 +- .../payload_prover/trait.PayloadProver.html | 4 +- jf_vid/trait.VidScheme.html | 2 +- settings.html | 2 +- src/jf_vid/advz.rs.html | 242 +++++++++--------- trait.impl/core/clone/trait.Clone.js | 2 +- trait.impl/core/cmp/trait.Eq.js | 2 +- trait.impl/core/cmp/trait.PartialEq.js | 2 +- trait.impl/core/convert/trait.From.js | 4 +- trait.impl/core/fmt/trait.Debug.js | 2 +- trait.impl/core/marker/trait.Copy.js | 2 +- .../core/marker/trait.StructuralPartialEq.js | 2 +- .../jf_commitment/trait.CommitmentScheme.js | 2 +- trait.impl/jf_crhf/trait.CRHF.js | 2 +- trait.impl/jf_prf/trait.PRF.js | 2 +- .../srs/struct.UnivariateProverParam.js | 2 +- .../srs/struct.UnivariateUniversalParams.js | 2 +- .../srs/struct.UnivariateVerifierParam.js | 2 +- type.impl/jf_vid/advz/struct.AdvzInternal.js | 2 +- 57 files changed, 300 insertions(+), 292 deletions(-) diff --git a/help.html b/help.html index d10e5d16e..1a9c0e912 100644 --- a/help.html +++ b/help.html @@ -1 +1 @@ -Help

Rustdoc help

Back
\ No newline at end of file +Help

Rustdoc help

Back
\ No newline at end of file diff --git a/jf_elgamal/struct.EncKey.html b/jf_elgamal/struct.EncKey.html index bde736a61..836d37f7b 100644 --- a/jf_elgamal/struct.EncKey.html +++ b/jf_elgamal/struct.EncKey.html @@ -1,7 +1,7 @@ EncKey in jf_elgamal - Rust

Struct jf_elgamal::EncKey

source ·
pub struct EncKey<P>
where P: Config,
{ /* private fields */ }
Expand description

Encryption key for encryption scheme

Implementations§

source§

impl<F, P> EncKey<P>
where - F: RescueParameter, + F: RescueParameter, P: Config<BaseField = F>,

source

pub fn deterministic_encrypt( &self, r: P::ScalarField, diff --git a/jf_elgamal/struct.KeyPair.html b/jf_elgamal/struct.KeyPair.html index d57e9642a..3f1fe548e 100644 --- a/jf_elgamal/struct.KeyPair.html +++ b/jf_elgamal/struct.KeyPair.html @@ -5,7 +5,7 @@

source

pub fn enc_key(&self) -> EncKey<P>

Get encryption key

source

pub fn enc_key_ref(&self) -> &EncKey<P>

Get encryption key reference

source§

impl<F, P> KeyPair<P>
where - F: RescueParameter, + F: RescueParameter, P: Config<BaseField = F>,

source

pub fn decrypt(&self, ctext: &Ciphertext<P>) -> Vec<F>

Decryption function

Trait Implementations§

source§

impl<P> CanonicalDeserialize for KeyPair<P>
where P: Config,

source§

fn deserialize_with_mode<R: Read>( diff --git a/jf_merkle_tree/errors/enum.MerkleTreeError.html b/jf_merkle_tree/errors/enum.MerkleTreeError.html index e921c92b6..d2b63fb38 100644 --- a/jf_merkle_tree/errors/enum.MerkleTreeError.html +++ b/jf_merkle_tree/errors/enum.MerkleTreeError.html @@ -14,7 +14,7 @@

§

ExceedCapacity

Merkle tree is already full.

§

DigestError(String)

Digest error, {0}

§

InconsistentStructureError(String)

Inconsistent Structure error, {0}

-

Trait Implementations§

source§

impl Debug for MerkleTreeError

source§

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

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

impl Display for MerkleTreeError

source§

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

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

impl Error for MerkleTreeError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<RescueError> for MerkleTreeError

source§

fn from(err: RescueError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for MerkleTreeError

source§

fn eq(&self, other: &MerkleTreeError) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Debug for MerkleTreeError

source§

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

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

impl Display for MerkleTreeError

source§

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

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

impl Error for MerkleTreeError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<RescueError> for MerkleTreeError

source§

fn from(err: RescueError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for MerkleTreeError

source§

fn eq(&self, other: &MerkleTreeError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for MerkleTreeError

source§

impl StructuralPartialEq for MerkleTreeError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for T
where diff --git a/jf_merkle_tree/examples/struct.Interval.html b/jf_merkle_tree/examples/struct.Interval.html index 1063409a8..00a241eaa 100644 --- a/jf_merkle_tree/examples/struct.Interval.html +++ b/jf_merkle_tree/examples/struct.Interval.html @@ -1,5 +1,5 @@ Interval in jf_merkle_tree::examples - Rust

Struct jf_merkle_tree::examples::Interval

source ·
pub struct Interval<F: Field>(pub F, pub F);
Expand description

Element type for interval merkle tree

-

Tuple Fields§

§0: F§1: F

Trait Implementations§

source§

impl<F: Clone + Field> Clone for Interval<F>

source§

fn clone(&self) -> Interval<F>

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<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &u64, elem: &Interval<F>) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: Hash + Field> Hash for Interval<F>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Tuple Fields§

§0: F§1: F

Trait Implementations§

source§

impl<F: Clone + Field> Clone for Interval<F>

source§

fn clone(&self) -> Interval<F>

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<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &u64, elem: &Interval<F>) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: Hash + Field> Hash for Interval<F>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<F: PartialEq + Field> PartialEq for Interval<F>

source§

fn eq(&self, other: &Interval<F>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/jf_merkle_tree/prelude/struct.RescueHash.html b/jf_merkle_tree/prelude/struct.RescueHash.html index 0550f2bf1..a6b98207b 100644 --- a/jf_merkle_tree/prelude/struct.RescueHash.html +++ b/jf_merkle_tree/prelude/struct.RescueHash.html @@ -1,7 +1,7 @@ -RescueHash in jf_merkle_tree::prelude - Rust

Struct jf_merkle_tree::prelude::RescueHash

source ·
pub struct RescueHash<F: RescueParameter> { /* private fields */ }
Expand description

Wrapper for rescue hash function

-

Trait Implementations§

source§

impl<F: Clone + RescueParameter> Clone for RescueHash<F>

source§

fn clone(&self) -> RescueHash<F>

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<F: Debug + RescueParameter> Debug for RescueHash<F>

source§

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

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

impl<I: Index, F: RescueParameter + From<I>> DigestAlgorithm<F, I, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &I, elem: &F) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &u64, elem: &Interval<F>) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: PartialEq + RescueParameter> PartialEq for RescueHash<F>

source§

fn eq(&self, other: &RescueHash<F>) -> bool

This method tests for self and other values to be equal, and is used +RescueHash in jf_merkle_tree::prelude - Rust

Struct jf_merkle_tree::prelude::RescueHash

source ·
pub struct RescueHash<F: RescueParameter> { /* private fields */ }
Expand description

Wrapper for rescue hash function

+

Trait Implementations§

source§

impl<F: Clone + RescueParameter> Clone for RescueHash<F>

source§

fn clone(&self) -> RescueHash<F>

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<F: Debug + RescueParameter> Debug for RescueHash<F>

source§

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

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

impl<I: Index, F: RescueParameter + From<I>> DigestAlgorithm<F, I, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &I, elem: &F) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &u64, elem: &Interval<F>) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: PartialEq + RescueParameter> PartialEq for RescueHash<F>

source§

fn eq(&self, other: &RescueHash<F>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<F: Copy + RescueParameter> Copy for RescueHash<F>

source§

impl<F: Eq + RescueParameter> Eq for RescueHash<F>

source§

impl<F: RescueParameter> StructuralPartialEq for RescueHash<F>

Auto Trait Implementations§

§

impl<F> Freeze for RescueHash<F>

§

impl<F> RefUnwindSafe for RescueHash<F>
where +sufficient, and should not be overridden without very good reason.

source§

impl<F: Copy + RescueParameter> Copy for RescueHash<F>

source§

impl<F: Eq + RescueParameter> Eq for RescueHash<F>

source§

impl<F: RescueParameter> StructuralPartialEq for RescueHash<F>

Auto Trait Implementations§

§

impl<F> Freeze for RescueHash<F>

§

impl<F> RefUnwindSafe for RescueHash<F>
where F: RefUnwindSafe,

§

impl<F> Send for RescueHash<F>

§

impl<F> Sync for RescueHash<F>

§

impl<F> Unpin for RescueHash<F>
where F: Unpin,

§

impl<F> UnwindSafe for RescueHash<F>
where F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/jf_merkle_tree/trait.DigestAlgorithm.html b/jf_merkle_tree/trait.DigestAlgorithm.html index e3e665f86..86b3ce4ae 100644 --- a/jf_merkle_tree/trait.DigestAlgorithm.html +++ b/jf_merkle_tree/trait.DigestAlgorithm.html @@ -11,4 +11,4 @@

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, I, H> DigestAlgorithm<E, I, HasherNode<H>> for HasherDigestAlgorithm
where E: Element + CanonicalSerialize, I: Index + CanonicalSerialize, - H: HasherDigest,

source§

impl<E: Element + CanonicalSerialize, I: Index> DigestAlgorithm<E, I, Sha3Node> for Sha3Digest

source§

impl<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

impl<I: Index, F: RescueParameter + From<I>> DigestAlgorithm<F, I, F> for RescueHash<F>

\ No newline at end of file + H: HasherDigest,

source§

impl<E: Element + CanonicalSerialize, I: Index> DigestAlgorithm<E, I, Sha3Node> for Sha3Digest

source§

impl<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

impl<I: Index, F: RescueParameter + From<I>> DigestAlgorithm<F, I, F> for RescueHash<F>

\ No newline at end of file diff --git a/jf_plonk/circuit/plonk_verifier/struct.VerifyingKeyVar.html b/jf_plonk/circuit/plonk_verifier/struct.VerifyingKeyVar.html index ee0dc61f9..75d132270 100644 --- a/jf_plonk/circuit/plonk_verifier/struct.VerifyingKeyVar.html +++ b/jf_plonk/circuit/plonk_verifier/struct.VerifyingKeyVar.html @@ -1,23 +1,23 @@ VerifyingKeyVar in jf_plonk::circuit::plonk_verifier - Rust

Struct jf_plonk::circuit::plonk_verifier::VerifyingKeyVar

source ·
pub struct VerifyingKeyVar<E: Pairing> { /* private fields */ }
Expand description

Represent variable of a Plonk verifying key.

Implementations§

source§

impl<E: Pairing> VerifyingKeyVar<E>

source

pub fn new<F, P>( - circuit: &mut PlonkCircuit<F>, + circuit: &mut PlonkCircuit<F>, verify_key: &VerifyingKey<E>, -) -> Result<Self, CircuitError>
where +) -> Result<Self, CircuitError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, - F: PrimeField + SWToTEConParam, + F: PrimeField + SWToTEConParam, P: SWParam<BaseField = F>,

Create a variable for a Plonk verifying key.

-
source

pub fn to_vec(&self) -> Vec<Variable>

Convert to a list of variables.

+
source

pub fn to_vec(&self) -> Vec<Variable>

Convert to a list of variables.

source

pub fn partial_verify_circuit<F, P>( - circuit: &mut PlonkCircuit<F>, - beta_g: &TEPoint<F>, - generator_g: &TEPoint<F>, + circuit: &mut PlonkCircuit<F>, + beta_g: &TEPoint<F>, + generator_g: &TEPoint<F>, merged_vks: &[Self], - shared_public_input_vars: &[FpElemVar<F>], + shared_public_input_vars: &[FpElemVar<F>], batch_proof: &BatchProofVar<F>, - blinding_factor: Variable, -) -> Result<(PointVariable, PointVariable), CircuitError>
where + blinding_factor: Variable, +) -> Result<(PointVariable, PointVariable), CircuitError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, - F: RescueParameter + SWToTEConParam, + F: RescueParameter + SWToTEConParam, P: SWParam<BaseField = F> + TEParam,

Circuit for partially verifying a batched proof without performing the pairing. Return the variables for the two group elements used in the final pairing. diff --git a/jf_plonk/circuit/plonk_verifier/trait.BatchableCircuit.html b/jf_plonk/circuit/plonk_verifier/trait.BatchableCircuit.html index 92ad2a65a..51dc07635 100644 --- a/jf_plonk/circuit/plonk_verifier/trait.BatchableCircuit.html +++ b/jf_plonk/circuit/plonk_verifier/trait.BatchableCircuit.html @@ -4,7 +4,7 @@ &mut self, vk_type_a_vars: &[VerifyingKeyVar<E>], vk_type_b_vars: &[VerifyingKeyVar<E>], - ) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError> + ) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError> where E: Pairing, P: TEParam<BaseField = F>; }

Expand description

Plonk Circuit that support batch verification

@@ -12,15 +12,15 @@ &mut self, vk_type_a_vars: &[VerifyingKeyVar<E>], vk_type_b_vars: &[VerifyingKeyVar<E>], -) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError>
where +) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError>
where E: Pairing, P: TEParam<BaseField = F>,

Aggregate verification keys

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<F> BatchableCircuit<F> for PlonkCircuit<F>
where +

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<F> BatchableCircuit<F> for PlonkCircuit<F>
where F: PrimeField,

Instances batching scheme related gates

source§

fn aggregate_verify_keys<E, P>( &mut self, vk_type_a_vars: &[VerifyingKeyVar<E>], vk_type_b_vars: &[VerifyingKeyVar<E>], -) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError>
where +) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError>
where E: Pairing, P: TEParam<BaseField = F>,

Implementors§

\ No newline at end of file diff --git a/jf_plonk/circuit/transcript/struct.RescueTranscriptVar.html b/jf_plonk/circuit/transcript/struct.RescueTranscriptVar.html index c01c6e3d0..dd87192a4 100644 --- a/jf_plonk/circuit/transcript/struct.RescueTranscriptVar.html +++ b/jf_plonk/circuit/transcript/struct.RescueTranscriptVar.html @@ -1,4 +1,4 @@ -RescueTranscriptVar in jf_plonk::circuit::transcript - Rust

Struct jf_plonk::circuit::transcript::RescueTranscriptVar

source ·
pub struct RescueTranscriptVar<F: RescueParameter> { /* private fields */ }
Expand description

Struct of variables representing a Rescue transcript type, including +RescueTranscriptVar in jf_plonk::circuit::transcript - Rust

Struct jf_plonk::circuit::transcript::RescueTranscriptVar

source ·
pub struct RescueTranscriptVar<F: RescueParameter> { /* private fields */ }
Expand description

Struct of variables representing a Rescue transcript type, including STATE_SIZE variables for the state, and a vector of variables for the transcript.

Auto Trait Implementations§

§

impl<F> Freeze for RescueTranscriptVar<F>

§

impl<F> RefUnwindSafe for RescueTranscriptVar<F>
where diff --git a/jf_plonk/enum.PlonkType.html b/jf_plonk/enum.PlonkType.html index c8a9ed5a6..a548cb90d 100644 --- a/jf_plonk/enum.PlonkType.html +++ b/jf_plonk/enum.PlonkType.html @@ -1,15 +1,15 @@ -PlonkType in jf_plonk - Rust

Enum jf_plonk::PlonkType

source ·
pub enum PlonkType {
+PlonkType in jf_plonk - Rust

Enum jf_plonk::PlonkType

pub enum PlonkType {
     TurboPlonk,
     UltraPlonk,
 }
Expand description

Enum for each type of Plonk scheme.

Variants§

§

TurboPlonk

TurboPlonk

§

UltraPlonk

TurboPlonk that supports Plookup

-

Trait Implementations§

source§

impl Clone for PlonkType

source§

fn clone(&self) -> PlonkType

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 Debug for PlonkType

source§

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

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

impl Hash for PlonkType

source§

fn hash<__H>(&self, state: &mut __H)
where +

Trait Implementations§

§

impl Clone for PlonkType

§

fn clone(&self) -> PlonkType

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
§

impl Debug for PlonkType

§

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

Formats the value using the given formatter. Read more
§

impl Hash for PlonkType

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for PlonkType

source§

fn eq(&self, other: &PlonkType) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl PartialEq for PlonkType

§

fn eq(&self, other: &PlonkType) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Copy for PlonkType

source§

impl Eq for PlonkType

source§

impl StructuralPartialEq for PlonkType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

§

impl Copy for PlonkType

§

impl Eq for PlonkType

§

impl StructuralPartialEq for PlonkType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/jf_plonk/errors/enum.PlonkError.html b/jf_plonk/errors/enum.PlonkError.html index 505c1c3c2..498002bd8 100644 --- a/jf_plonk/errors/enum.PlonkError.html +++ b/jf_plonk/errors/enum.PlonkError.html @@ -4,12 +4,12 @@ IndexError, DivisionError, SnarkError(SnarkError), - PCSError(PCSError), - CircuitError(CircuitError), + PCSError(PCSError), + CircuitError(CircuitError), IoError(Error), SerializationError(SerializationError), WrongProof, - RescueError(RescueError), + RescueError(RescueError), InvalidParameters(String), NonNativeFieldOverflow, IteratorOutOfRange, @@ -20,17 +20,17 @@
§

IndexError

Failed to get array value by index

§

DivisionError

Divided by zero field element

§

SnarkError(SnarkError)

An error in the Plonk SNARK logic: {0}

-
§

PCSError(PCSError)

An error in the underlying polynomial commitment: {0}

-
§

CircuitError(CircuitError)

An error in the Plonk circuit: {0}

+
§

PCSError(PCSError)

An error in the underlying polynomial commitment: {0}

+
§

CircuitError(CircuitError)

An error in the Plonk circuit: {0}

§

IoError(Error)

An error during IO: {0}

§

SerializationError(SerializationError)

An error during (de)serialization

§

WrongProof

Plonk proof verification failed due to wrong proof

-
§

RescueError(RescueError)

Rescue Error

+
§

RescueError(RescueError)

Rescue Error

§

InvalidParameters(String)

Invalid parameters

§

NonNativeFieldOverflow

Non-native field overflow

§

IteratorOutOfRange

Iterator out of range

§

PublicInputsDoNotMatch

Public inputs for partial verification circuit do not match

-

Trait Implementations§

source§

impl Debug for PlonkError

source§

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

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

impl Display for PlonkError

source§

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

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

impl Error for PlonkError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<CircuitError> for PlonkError

source§

fn from(e: CircuitError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for PlonkError

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<PCSError> for PlonkError

source§

fn from(e: PCSError) -> Self

Converts to this type from the input type.
source§

impl From<PlonkError> for CircuitError

source§

fn from(e: PlonkError) -> Self

Converts to this type from the input type.
source§

impl From<RescueError> for PlonkError

source§

fn from(e: RescueError) -> Self

Converts to this type from the input type.
source§

impl From<SerializationError> for PlonkError

source§

fn from(e: SerializationError) -> Self

Converts to this type from the input type.
source§

impl From<SnarkError> for PlonkError

source§

fn from(e: SnarkError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for PlonkError

source§

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

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

impl Display for PlonkError

source§

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

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

impl Error for PlonkError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<CircuitError> for PlonkError

source§

fn from(e: CircuitError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for PlonkError

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<PCSError> for PlonkError

source§

fn from(e: PCSError) -> Self

Converts to this type from the input type.
source§

impl From<PlonkError> for CircuitError

source§

fn from(e: PlonkError) -> Self

Converts to this type from the input type.
source§

impl From<RescueError> for PlonkError

source§

fn from(e: RescueError) -> Self

Converts to this type from the input type.
source§

impl From<SerializationError> for PlonkError

source§

fn from(e: SerializationError) -> Self

Converts to this type from the input type.
source§

impl From<SnarkError> for PlonkError

source§

fn from(e: SnarkError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for T
where T: Error + 'static,

§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method diff --git a/jf_plonk/proof_system/batch_arg/fn.build_batch_proof_and_vks_for_test.html b/jf_plonk/proof_system/batch_arg/fn.build_batch_proof_and_vks_for_test.html index 4b1c979fe..198d23c01 100644 --- a/jf_plonk/proof_system/batch_arg/fn.build_batch_proof_and_vks_for_test.html +++ b/jf_plonk/proof_system/batch_arg/fn.build_batch_proof_and_vks_for_test.html @@ -5,7 +5,7 @@ shared_public_input: E::ScalarField, ) -> Result<(BatchProof<E>, Vec<VerifyingKey<E>>, Vec<VerifyingKey<E>>), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, - F: RescueParameter + SWToTEConParam, + F: RescueParameter + SWToTEConParam, P: SWCurveConfig<BaseField = F>, R: CryptoRng + RngCore, T: PlonkTranscript<F>,
Expand description

Create num_instances type A/B instance verifying keys and diff --git a/jf_plonk/proof_system/batch_arg/struct.BatchArgument.html b/jf_plonk/proof_system/batch_arg/struct.BatchArgument.html index f4e40c1d6..9e60c542b 100644 --- a/jf_plonk/proof_system/batch_arg/struct.BatchArgument.html +++ b/jf_plonk/proof_system/batch_arg/struct.BatchArgument.html @@ -1,11 +1,11 @@ BatchArgument in jf_plonk::proof_system::batch_arg - Rust

Struct jf_plonk::proof_system::batch_arg::BatchArgument

source ·
pub struct BatchArgument<E: Pairing>(/* private fields */);
Expand description

A batching argument.

Implementations§

source§

impl<E, F, P> BatchArgument<E>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, - F: RescueParameter + SWToTEConParam, + F: RescueParameter + SWToTEConParam, P: SWCurveConfig<BaseField = F>,

source

pub fn setup_instance( srs: &UniversalSrs<E>, - circuit: PlonkCircuit<E::ScalarField>, - circuit_type: MergeableCircuitType, + circuit: PlonkCircuit<E::ScalarField>, + circuit_type: MergeableCircuitType, ) -> Result<Instance<E>, PlonkError>

Setup the circuit and the proving key for a (mergeable) instance.

source

pub fn batch_prove<R, T>( prng: &mut R, diff --git a/jf_plonk/proof_system/batch_arg/struct.Instance.html b/jf_plonk/proof_system/batch_arg/struct.Instance.html index b49bf4301..705094b4a 100644 --- a/jf_plonk/proof_system/batch_arg/struct.Instance.html +++ b/jf_plonk/proof_system/batch_arg/struct.Instance.html @@ -1,7 +1,7 @@ Instance in jf_plonk::proof_system::batch_arg - Rust

Struct jf_plonk::proof_system::batch_arg::Instance

source ·
pub struct Instance<E: Pairing> { /* private fields */ }
Expand description

A circuit instance that consists of the corresponding proving key/verification key/circuit.

Implementations§

source§

impl<E: Pairing> Instance<E>

source

pub fn verify_key_ref(&self) -> &VerifyingKey<E>

Get verification key by reference.

-
source

pub fn circuit_mut_ref(&mut self) -> &mut PlonkCircuit<E::ScalarField>

Get mutable circuit by reference.

+
source

pub fn circuit_mut_ref(&mut self) -> &mut PlonkCircuit<E::ScalarField>

Get mutable circuit by reference.

Trait Implementations§

source§

impl<E: Clone + Pairing> Clone for Instance<E>
where E::ScalarField: Clone,

source§

fn clone(&self) -> Instance<E>

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

Auto Trait Implementations§

§

impl<E> Freeze for Instance<E>
where <E as Pairing>::ScalarField: Freeze, diff --git a/jf_plonk/proof_system/struct.PlonkKzgSnark.html b/jf_plonk/proof_system/struct.PlonkKzgSnark.html index d3362d3e5..9112a01ec 100644 --- a/jf_plonk/proof_system/struct.PlonkKzgSnark.html +++ b/jf_plonk/proof_system/struct.PlonkKzgSnark.html @@ -1,14 +1,14 @@ PlonkKzgSnark in jf_plonk::proof_system - Rust

Struct jf_plonk::proof_system::PlonkKzgSnark

source ·
pub struct PlonkKzgSnark<E: Pairing>(/* private fields */);
Expand description

A Plonk instantiated with KZG PCS

Implementations§

source§

impl<E, F, P> PlonkKzgSnark<E>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, - F: RescueParameter + SWToTEConParam, + F: RescueParameter + SWToTEConParam, P: SWCurveConfig<BaseField = F>,

source

pub fn new() -> Self

A new Plonk KZG SNARK

source

pub fn batch_prove<C, R, T>( prng: &mut R, circuits: &[&C], prove_keys: &[&ProvingKey<E>], ) -> Result<BatchProof<E>, PlonkError>
where - C: Arithmetization<E::ScalarField>, + C: Arithmetization<E::ScalarField>, R: CryptoRng + RngCore, T: PlonkTranscript<F>,

Generate an aggregated Plonk proof for multiple instances.

source

pub fn verify_batch_proof<T>( @@ -26,8 +26,8 @@ T: PlonkTranscript<F>,

Batch verify multiple SNARK proofs (w.r.t. different verifying keys).

Trait Implementations§

source§

impl<E, F, P> UniversalSNARK<E> for PlonkKzgSnark<E>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, - F: RescueParameter + SWToTEConParam, - P: SWCurveConfig<BaseField = F>,

source§

fn preprocess<C: Arithmetization<E::ScalarField>>( + F: RescueParameter + SWToTEConParam, + P: SWCurveConfig<BaseField = F>,

source§

fn preprocess<C: Arithmetization<E::ScalarField>>( srs: &Self::UniversalSRS, circuit: &C, ) -> Result<(Self::ProvingKey, Self::VerifyingKey), Self::Error>

Input a circuit and the SRS, precompute the proving key and verification @@ -38,7 +38,7 @@ prove_key: &Self::ProvingKey, extra_transcript_init_msg: Option<Vec<u8>>, ) -> Result<Self::Proof, Self::Error>

where - C: Arithmetization<E::ScalarField>, + C: Arithmetization<E::ScalarField>, R: CryptoRng + RngCore, T: PlonkTranscript<F>,

Compute a Plonk proof. Refer to Sec 8.4 of https://eprint.iacr.org/2019/953.pdf

@@ -46,7 +46,7 @@ domain etc.), otherwise return error.

§

type Proof = Proof<E>

The SNARK proof computed by the prover.
§

type ProvingKey = ProvingKey<E>

The parameters required by the prover to compute a proof for a specific circuit.
§

type VerifyingKey = VerifyingKey<E>

The parameters required by the verifier to validate a proof for a -specific circuit.
§

type UniversalSRS = UnivariateUniversalParams<E>

Universal Structured Reference String from universal_setup, used for +specific circuit.
§

type UniversalSRS = UnivariateUniversalParams<E>

Universal Structured Reference String from universal_setup, used for all subsequent circuit-specific preprocessing
§

type Error = PlonkError

SNARK related error
source§

fn verify<T>( verify_key: &Self::VerifyingKey, public_input: &[E::ScalarField], diff --git a/jf_plonk/proof_system/structs/struct.BatchProof.html b/jf_plonk/proof_system/structs/struct.BatchProof.html index f1d1af31b..b3b0c4f42 100644 --- a/jf_plonk/proof_system/structs/struct.BatchProof.html +++ b/jf_plonk/proof_system/structs/struct.BatchProof.html @@ -4,12 +4,12 @@

source

pub fn dummy(n: usize) -> Self

Create a dummy batch proof over n TurboPlonk instances.

source§

impl<E: Pairing> BatchProof<E>

source

pub fn create_variables<F, P>( &self, - circuit: &mut PlonkCircuit<F>, + circuit: &mut PlonkCircuit<F>, m: usize, two_power_m: Option<F>, ) -> Result<BatchProofVar<F>, PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, - F: RescueParameter + SWToTEConParam, + F: RescueParameter + SWToTEConParam, P: SWCurveConfig<BaseField = F>,

Create a BatchProofVar variable from a BatchProof.

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for BatchProof<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, diff --git a/jf_plonk/proof_system/structs/struct.Proof.html b/jf_plonk/proof_system/structs/struct.Proof.html index a5a8fd0c6..689d5e75e 100644 --- a/jf_plonk/proof_system/structs/struct.Proof.html +++ b/jf_plonk/proof_system/structs/struct.Proof.html @@ -1,17 +1,17 @@ Proof in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::Proof

source ·
pub struct Proof<E: Pairing> {
-    pub wires_poly_comms: Vec<Commitment<E>>,
-    pub prod_perm_poly_comm: Commitment<E>,
-    pub split_quot_poly_comms: Vec<Commitment<E>>,
-    pub opening_proof: Commitment<E>,
-    pub shifted_opening_proof: Commitment<E>,
+    pub wires_poly_comms: Vec<Commitment<E>>,
+    pub prod_perm_poly_comm: Commitment<E>,
+    pub split_quot_poly_comms: Vec<Commitment<E>>,
+    pub opening_proof: Commitment<E>,
+    pub shifted_opening_proof: Commitment<E>,
     pub poly_evals: ProofEvaluations<E::ScalarField>,
     pub plookup_proof: Option<PlookupProof<E>>,
 }
Expand description

A Plonk SNARK proof.

-

Fields§

§wires_poly_comms: Vec<Commitment<E>>

Wire witness polynomials commitments.

-
§prod_perm_poly_comm: Commitment<E>

The polynomial commitment for the wire permutation argument.

-
§split_quot_poly_comms: Vec<Commitment<E>>

Split quotient polynomial commitments.

-
§opening_proof: Commitment<E>

(Aggregated) proof of evaluations at challenge point zeta.

-
§shifted_opening_proof: Commitment<E>

(Aggregated) proof of evaluation at challenge point zeta * g where g +

Fields§

§wires_poly_comms: Vec<Commitment<E>>

Wire witness polynomials commitments.

+
§prod_perm_poly_comm: Commitment<E>

The polynomial commitment for the wire permutation argument.

+
§split_quot_poly_comms: Vec<Commitment<E>>

Split quotient polynomial commitments.

+
§opening_proof: Commitment<E>

(Aggregated) proof of evaluations at challenge point zeta.

+
§shifted_opening_proof: Commitment<E>

(Aggregated) proof of evaluation at challenge point zeta * g where g is the root of unity.

§poly_evals: ProofEvaluations<E::ScalarField>

Polynomial evaluations.

§plookup_proof: Option<PlookupProof<E>>

The partial proof for Plookup argument

diff --git a/jf_plonk/proof_system/structs/struct.VerifyingKey.html b/jf_plonk/proof_system/structs/struct.VerifyingKey.html index 626c2eae2..afa184290 100644 --- a/jf_plonk/proof_system/structs/struct.VerifyingKey.html +++ b/jf_plonk/proof_system/structs/struct.VerifyingKey.html @@ -1,8 +1,8 @@ VerifyingKey in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::VerifyingKey

source ·
pub struct VerifyingKey<E: Pairing> {
     pub domain_size: usize,
     pub num_inputs: usize,
-    pub sigma_comms: Vec<Commitment<E>>,
-    pub selector_comms: Vec<Commitment<E>>,
+    pub sigma_comms: Vec<Commitment<E>>,
+    pub selector_comms: Vec<Commitment<E>>,
     pub k: Vec<E::ScalarField>,
     pub open_key: OpenKey<E>,
     pub is_merged: bool,
@@ -11,8 +11,8 @@
 circuit.

Fields§

§domain_size: usize

The size of the evaluation domain. Should be a power of two.

§num_inputs: usize

The number of public inputs.

-
§sigma_comms: Vec<Commitment<E>>

The permutation polynomial commitments. The commitments are not hiding.

-
§selector_comms: Vec<Commitment<E>>

The selector polynomial commitments. The commitments are not hiding.

+
§sigma_comms: Vec<Commitment<E>>

The permutation polynomial commitments. The commitments are not hiding.

+
§selector_comms: Vec<Commitment<E>>

The selector polynomial commitments. The commitments are not hiding.

§k: Vec<E::ScalarField>

The constants K0, …, K_num_wire_types that ensure wire subsets are disjoint.

§open_key: OpenKey<E>

KZG PCS opening key.

@@ -20,7 +20,7 @@
§plookup_vk: Option<PlookupVerifyingKey<E>>

Plookup verifying key, None if not support lookup.

Implementations§

source§

impl<E, F, P> VerifyingKey<E>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, - F: SWToTEConParam, + F: SWToTEConParam, P: SWCurveConfig<BaseField = F>,

source

pub fn convert_te_coordinates_to_scalars(&self) -> Vec<F>

Convert the group elements to a list of scalars that represent the Twisted Edwards coordinates.

source§

impl<E: Pairing> VerifyingKey<E>

source

pub fn dummy(num_inputs: usize, domain_size: usize) -> Self

Create a dummy TurboPlonk verification key for a circuit with diff --git a/jf_plonk/proof_system/structs/type.CommitKey.html b/jf_plonk/proof_system/structs/type.CommitKey.html index f2f13adea..3328e3eed 100644 --- a/jf_plonk/proof_system/structs/type.CommitKey.html +++ b/jf_plonk/proof_system/structs/type.CommitKey.html @@ -1,4 +1,4 @@ -CommitKey in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::CommitKey

source ·
pub type CommitKey<E> = UnivariateProverParam<E>;
Expand description

Commitment key

+CommitKey in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::CommitKey

source ·
pub type CommitKey<E> = UnivariateProverParam<E>;
Expand description

Commitment key

Aliased Type§

struct CommitKey<E> {
     pub powers_of_g: Vec<<E as Pairing>::G1Affine>,
 }

Fields§

§powers_of_g: Vec<<E as Pairing>::G1Affine>

Config

diff --git a/jf_plonk/proof_system/structs/type.OpenKey.html b/jf_plonk/proof_system/structs/type.OpenKey.html index 2a3a1099f..d36c5094d 100644 --- a/jf_plonk/proof_system/structs/type.OpenKey.html +++ b/jf_plonk/proof_system/structs/type.OpenKey.html @@ -1,4 +1,4 @@ -OpenKey in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::OpenKey

source ·
pub type OpenKey<E> = UnivariateVerifierParam<E>;
Expand description

Key for verifying PCS opening proof.

+OpenKey in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::OpenKey

source ·
pub type OpenKey<E> = UnivariateVerifierParam<E>;
Expand description

Key for verifying PCS opening proof.

Aliased Type§

struct OpenKey<E> {
     pub g: <E as Pairing>::G1Affine,
     pub h: <E as Pairing>::G2Affine,
diff --git a/jf_plonk/proof_system/structs/type.UniversalSrs.html b/jf_plonk/proof_system/structs/type.UniversalSrs.html
index 7e0eb7cf8..d1f0de491 100644
--- a/jf_plonk/proof_system/structs/type.UniversalSrs.html
+++ b/jf_plonk/proof_system/structs/type.UniversalSrs.html
@@ -1,4 +1,4 @@
-UniversalSrs in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::UniversalSrs

source ·
pub type UniversalSrs<E> = UnivariateUniversalParams<E>;
Expand description

Universal StructuredReferenceString

+UniversalSrs in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::UniversalSrs

source ·
pub type UniversalSrs<E> = UnivariateUniversalParams<E>;
Expand description

Universal StructuredReferenceString

Aliased Type§

struct UniversalSrs<E> {
     pub powers_of_g: Vec<<E as Pairing>::G1Affine>,
     pub h: <E as Pairing>::G2Affine,
diff --git a/jf_plonk/proof_system/trait.UniversalSNARK.html b/jf_plonk/proof_system/trait.UniversalSNARK.html
index 32c030f1b..5447ddcf8 100644
--- a/jf_plonk/proof_system/trait.UniversalSNARK.html
+++ b/jf_plonk/proof_system/trait.UniversalSNARK.html
@@ -6,7 +6,7 @@
     type Error: 'static + Error;
 
     // Required methods
-    fn preprocess<C: Arithmetization<E::ScalarField>>(
+    fn preprocess<C: Arithmetization<E::ScalarField>>(
         srs: &Self::UniversalSRS,
         circuit: &C,
     ) -> Result<(Self::ProvingKey, Self::VerifyingKey), Self::Error>;
@@ -16,7 +16,7 @@
         prove_key: &Self::ProvingKey,
         extra_transcript_init_msg: Option<Vec<u8>>,
     ) -> Result<Self::Proof, Self::Error>
-       where C: Arithmetization<E::ScalarField>,
+       where C: Arithmetization<E::ScalarField>,
              R: CryptoRng + RngCore,
              T: PlonkTranscript<E::BaseField>;
     fn verify<T: PlonkTranscript<E::BaseField>>(
@@ -40,7 +40,7 @@
 
source

type UniversalSRS: Clone + Debug

Universal Structured Reference String from universal_setup, used for all subsequent circuit-specific preprocessing

source

type Error: 'static + Error

SNARK related error

-

Required Methods§

source

fn preprocess<C: Arithmetization<E::ScalarField>>( +

Required Methods§

source

fn preprocess<C: Arithmetization<E::ScalarField>>( srs: &Self::UniversalSRS, circuit: &C, ) -> Result<(Self::ProvingKey, Self::VerifyingKey), Self::Error>

Circuit-specific preprocessing to compute the proving/verifying keys.

@@ -50,7 +50,7 @@ prove_key: &Self::ProvingKey, extra_transcript_init_msg: Option<Vec<u8>>, ) -> Result<Self::Proof, Self::Error>
where - C: Arithmetization<E::ScalarField>, + C: Arithmetization<E::ScalarField>, R: CryptoRng + RngCore, T: PlonkTranscript<E::BaseField>,

Compute a SNARK proof of a circuit circuit, using the corresponding proving key prove_key. The witness used to @@ -78,5 +78,5 @@ away to ensure soundness of the argument system.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, F, P> UniversalSNARK<E> for PlonkKzgSnark<E>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, - F: RescueParameter + SWToTEConParam, - P: SWCurveConfig<BaseField = F>,

\ No newline at end of file + F: RescueParameter + SWToTEConParam, + P: SWCurveConfig<BaseField = F>,
§

type Proof = Proof<E>

§

type ProvingKey = ProvingKey<E>

§

type VerifyingKey = VerifyingKey<E>

§

type UniversalSRS = UnivariateUniversalParams<E>

§

type Error = PlonkError

\ No newline at end of file diff --git a/jf_plonk/transcript/struct.RescueTranscript.html b/jf_plonk/transcript/struct.RescueTranscript.html index ff872ddef..dbde54316 100644 --- a/jf_plonk/transcript/struct.RescueTranscript.html +++ b/jf_plonk/transcript/struct.RescueTranscript.html @@ -1,5 +1,5 @@ RescueTranscript in jf_plonk::transcript - Rust

Struct jf_plonk::transcript::RescueTranscript

source ·
pub struct RescueTranscript<F>
where - F: RescueParameter,
{ /* private fields */ }
Expand description

Transcript with rescue hash function.

+ F: RescueParameter,
{ /* private fields */ }
Expand description

Transcript with rescue hash function.

It is currently implemented simply as

  • an append only vector of field elements
  • @@ -14,7 +14,7 @@
  • transcript = vec![]

Trait Implementations§

source§

impl<F> PlonkTranscript<F> for RescueTranscript<F>

source§

fn new(_label: &'static [u8]) -> Self

Create a new plonk transcript. _label is omitted for efficiency.

+ F: RescueParameter + SWToTEConParam,
source§

fn new(_label: &'static [u8]) -> Self

Create a new plonk transcript. _label is omitted for efficiency.

source§

fn append_message( &mut self, _label: &'static [u8], @@ -24,7 +24,7 @@

source§

fn append_commitment<E, P>( &mut self, _label: &'static [u8], - comm: &Commitment<E>, + comm: &Commitment<E>, ) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

Append a single commitment to the transcript. _label is omitted for @@ -55,7 +55,7 @@ ) -> Result<(), PlonkError>

Append the plookup evaluation to the transcript.
source§

fn append_commitments<E, P>( &mut self, label: &'static [u8], - comms: &[Commitment<E>], + comms: &[Commitment<E>], ) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

Append a slice of commitments to the transcript.
source§

fn append_field_elems<E>( diff --git a/jf_plonk/transcript/struct.SolidityTranscript.html b/jf_plonk/transcript/struct.SolidityTranscript.html index 3389fb8bc..2c82cdc51 100644 --- a/jf_plonk/transcript/struct.SolidityTranscript.html +++ b/jf_plonk/transcript/struct.SolidityTranscript.html @@ -17,7 +17,7 @@

source§

fn append_commitment<E, P>( &mut self, label: &'static [u8], - comm: &Commitment<E>, + comm: &Commitment<E>, ) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWCurveConfig<BaseField = F>,

Append a single commitment to the transcript.
source§

fn append_field_elem<E>( @@ -40,7 +40,7 @@ E::ScalarField: PrimeField,

Generate a single challenge for the current round
source§

fn append_commitments<E, P>( &mut self, label: &'static [u8], - comms: &[Commitment<E>], + comms: &[Commitment<E>], ) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

Append a slice of commitments to the transcript.
source§

fn append_field_elems<E>( diff --git a/jf_plonk/transcript/struct.StandardTranscript.html b/jf_plonk/transcript/struct.StandardTranscript.html index 517b58b61..386083b67 100644 --- a/jf_plonk/transcript/struct.StandardTranscript.html +++ b/jf_plonk/transcript/struct.StandardTranscript.html @@ -17,13 +17,13 @@ P: SWParam<BaseField = F>,

Append the verification key and the public input to the transcript.
source§

fn append_commitments<E, P>( &mut self, label: &'static [u8], - comms: &[Commitment<E>], + comms: &[Commitment<E>], ) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

Append a slice of commitments to the transcript.
source§

fn append_commitment<E, P>( &mut self, label: &'static [u8], - comm: &Commitment<E>, + comm: &Commitment<E>, ) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

Append a single commitment to the transcript.
source§

fn append_field_elem<E>( diff --git a/jf_plonk/transcript/trait.PlonkTranscript.html b/jf_plonk/transcript/trait.PlonkTranscript.html index e86816ceb..7845852fa 100644 --- a/jf_plonk/transcript/trait.PlonkTranscript.html +++ b/jf_plonk/transcript/trait.PlonkTranscript.html @@ -23,14 +23,14 @@ fn append_commitments<E, P>( &mut self, label: &'static [u8], - comms: &[Commitment<E>], + comms: &[Commitment<E>], ) -> Result<(), PlonkError> where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F> { ... } fn append_commitment<E, P>( &mut self, label: &'static [u8], - comm: &Commitment<E>, + comm: &Commitment<E>, ) -> Result<(), PlonkError> where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F> { ... } @@ -88,14 +88,14 @@

source

fn append_commitments<E, P>( &mut self, label: &'static [u8], - comms: &[Commitment<E>], + comms: &[Commitment<E>], ) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

Append a slice of commitments to the transcript.

source

fn append_commitment<E, P>( &mut self, label: &'static [u8], - comm: &Commitment<E>, + comm: &Commitment<E>, ) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

Append a single commitment to the transcript.

@@ -129,4 +129,4 @@ already implements proper domain separation for each challenge generation, thus simply call it multiple times.

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file + F: RescueParameter + SWToTEConParam,
source§

impl<F> PlonkTranscript<F> for StandardTranscript

source§

impl<F: PrimeField> PlonkTranscript<F> for SolidityTranscript

\ No newline at end of file diff --git a/jf_rescue/commitment/struct.FixedLengthRescueCommitment.html b/jf_rescue/commitment/struct.FixedLengthRescueCommitment.html index b5ab870b6..0dbfedb6e 100644 --- a/jf_rescue/commitment/struct.FixedLengthRescueCommitment.html +++ b/jf_rescue/commitment/struct.FixedLengthRescueCommitment.html @@ -2,15 +2,15 @@

§Note

the current ugly existence of INPUT_LEN_PLUS_ONE is due to unstable feature of using const generic in expression (namely can’t use INPUT_LEN + 1 in code).

-

Trait Implementations§

source§

impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Clone for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

source§

fn clone(&self) -> FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

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<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> CommitmentScheme for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

§

type Input = [F; INPUT_LEN]

Input to the commitment
§

type Output = F

The type of output commitment value
§

type Randomness = F

The type of the hiding/blinding factor
§

type Error = RescueError

Error type
source§

fn commit<T: Borrow<Self::Input>>( +

Trait Implementations§

source§

impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Clone for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

source§

fn clone(&self) -> FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

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<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> CommitmentScheme for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

§

type Input = [F; INPUT_LEN]

Input to the commitment
§

type Output = F

The type of output commitment value
§

type Randomness = F

The type of the hiding/blinding factor
§

type Error = RescueError

Error type
source§

fn commit<T: Borrow<Self::Input>>( input: T, - r: Option<&Self::Randomness>, -) -> Result<Self::Output, Self::Error>

Commit algorithm that takes input and blinding randomness r -(optional for hiding commitment schemes), outputs a commitment.
source§

fn verify<T: Borrow<Self::Input>>( + r: Option<&Self::Randomness>, +) -> Result<Self::Output, Self::Error>

Commit algorithm that takes input and blinding randomness r +(optional for hiding commitment schemes), outputs a commitment.
source§

fn verify<T: Borrow<Self::Input>>( input: T, - r: Option<&Self::Randomness>, - comm: &Self::Output, -) -> Result<Result<(), ()>, Self::Error>

Verify algorithm that output Ok if accepted, or Err if rejected.
source§

impl<F: Debug + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Debug for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

source§

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

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

impl<F: Default + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Default for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

source§

fn default() -> FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

Returns the “default value” for a type. Read more
source§

impl<F: PartialEq + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> PartialEq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

source§

fn eq( + r: Option<&Self::Randomness>, + comm: &Self::Output, +) -> Result<Result<(), ()>, Self::Error>

Verify algorithm that output Ok if accepted, or Err if rejected.
source§

impl<F: Debug + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Debug for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

source§

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

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

impl<F: Default + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Default for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

source§

fn default() -> FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

Returns the “default value” for a type. Read more
source§

impl<F: PartialEq + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> PartialEq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

source§

fn eq( &self, other: &FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>, ) -> bool

This method tests for self and other values to be equal, and is used diff --git a/jf_rescue/crhf/struct.FixedLengthRescueCRHF.html b/jf_rescue/crhf/struct.FixedLengthRescueCRHF.html index 6127d5ed0..f33cdd142 100644 --- a/jf_rescue/crhf/struct.FixedLengthRescueCRHF.html +++ b/jf_rescue/crhf/struct.FixedLengthRescueCRHF.html @@ -1,12 +1,12 @@ FixedLengthRescueCRHF in jf_rescue::crhf - Rust

Struct jf_rescue::crhf::FixedLengthRescueCRHF

source ·
pub struct FixedLengthRescueCRHF<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize>(/* private fields */);
Expand description

A rescue-sponge-based CRHF with fixed-input size (if not multiple of 3 will get auto-padded) and variable-output size

-

Trait Implementations§

source§

impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> CRHF for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

source§

fn evaluate<T: Borrow<Self::Input>>( +

Trait Implementations§

source§

impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> CRHF for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

source§

fn evaluate<T: Borrow<Self::Input>>( input: T, -) -> Result<Self::Output, Self::Error>

§Padding
+) -> Result<Self::Output, Self::Error>
§Padding

if input length is not a multiple of CRHF_RATE, then it will be padded. By default, we use “zero padding”-style where as many “0” as required are added.

-
§

type Input = [F; INPUT_LEN]

Input to the CRHF
§

type Output = [F; OUTPUT_LEN]

Output of the CRHF
§

type Error = RescueError

Error type
source§

impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Clone for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

source§

fn clone(&self) -> FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

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<F: Debug + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Debug for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Freeze for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> RefUnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
where +
§

type Input = [F; INPUT_LEN]

Input to the CRHF
§

type Output = [F; OUTPUT_LEN]

Output of the CRHF
§

type Error = RescueError

Error type

source§

impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Clone for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

source§

fn clone(&self) -> FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

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<F: Debug + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Debug for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Freeze for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> RefUnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
where F: RefUnwindSafe,

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Send for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Sync for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Unpin for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
where F: Unpin,

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> UnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
where F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/jf_rescue/crhf/struct.VariableLengthRescueCRHF.html b/jf_rescue/crhf/struct.VariableLengthRescueCRHF.html index 54bf2765f..77c62223c 100644 --- a/jf_rescue/crhf/struct.VariableLengthRescueCRHF.html +++ b/jf_rescue/crhf/struct.VariableLengthRescueCRHF.html @@ -1,12 +1,12 @@ VariableLengthRescueCRHF in jf_rescue::crhf - Rust

Struct jf_rescue::crhf::VariableLengthRescueCRHF

source ·
pub struct VariableLengthRescueCRHF<F: RescueParameter, const OUTPUT_LEN: usize>(/* private fields */);
Expand description

A rescue-sponge-based CRHF with variable-input and variable-output size

-

Trait Implementations§

source§

impl<F: RescueParameter, const OUTPUT_LEN: usize> CRHF for VariableLengthRescueCRHF<F, OUTPUT_LEN>

source§

fn evaluate<T: Borrow<Self::Input>>( +

Trait Implementations§

source§

impl<F: RescueParameter, const OUTPUT_LEN: usize> CRHF for VariableLengthRescueCRHF<F, OUTPUT_LEN>

source§

fn evaluate<T: Borrow<Self::Input>>( input: T, -) -> Result<Self::Output, Self::Error>

§Padding
+) -> Result<Self::Output, Self::Error>

§Padding

if input length is not a multiple of CRHF_RATE, then it will be padded. By default, we use “bit padding”-style where “1” is always appended, then as many “0” as required are added for the overall length to be a multiple of CRHF_RATE.

-
§

type Input = Vec<F>

Input to the CRHF
§

type Output = [F; OUTPUT_LEN]

Output of the CRHF
§

type Error = RescueError

Error type
source§

impl<F: Clone + RescueParameter, const OUTPUT_LEN: usize> Clone for VariableLengthRescueCRHF<F, OUTPUT_LEN>

source§

fn clone(&self) -> VariableLengthRescueCRHF<F, OUTPUT_LEN>

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<F: Debug + RescueParameter, const OUTPUT_LEN: usize> Debug for VariableLengthRescueCRHF<F, OUTPUT_LEN>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<F, const OUTPUT_LEN: usize> Freeze for VariableLengthRescueCRHF<F, OUTPUT_LEN>

§

impl<F, const OUTPUT_LEN: usize> RefUnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
where +
§

type Input = Vec<F>

Input to the CRHF
§

type Output = [F; OUTPUT_LEN]

Output of the CRHF
§

type Error = RescueError

Error type

source§

impl<F: Clone + RescueParameter, const OUTPUT_LEN: usize> Clone for VariableLengthRescueCRHF<F, OUTPUT_LEN>

source§

fn clone(&self) -> VariableLengthRescueCRHF<F, OUTPUT_LEN>

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<F: Debug + RescueParameter, const OUTPUT_LEN: usize> Debug for VariableLengthRescueCRHF<F, OUTPUT_LEN>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<F, const OUTPUT_LEN: usize> Freeze for VariableLengthRescueCRHF<F, OUTPUT_LEN>

§

impl<F, const OUTPUT_LEN: usize> RefUnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
where F: RefUnwindSafe,

§

impl<F, const OUTPUT_LEN: usize> Send for VariableLengthRescueCRHF<F, OUTPUT_LEN>

§

impl<F, const OUTPUT_LEN: usize> Sync for VariableLengthRescueCRHF<F, OUTPUT_LEN>

§

impl<F, const OUTPUT_LEN: usize> Unpin for VariableLengthRescueCRHF<F, OUTPUT_LEN>
where F: Unpin,

§

impl<F, const OUTPUT_LEN: usize> UnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
where F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/jf_rescue/prf/struct.RescuePRF.html b/jf_rescue/prf/struct.RescuePRF.html index 15c18cdcf..62ba5343c 100644 --- a/jf_rescue/prf/struct.RescuePRF.html +++ b/jf_rescue/prf/struct.RescuePRF.html @@ -1,15 +1,15 @@ RescuePRF in jf_rescue::prf - Rust

Struct jf_rescue::prf::RescuePRF

source ·
pub struct RescuePRF<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize>(/* private fields */);
Expand description

A rescue-based PRF that leverages on Full State Keyed (FSK) sponge construction

-

Trait Implementations§

source§

impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Clone for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

source§

fn clone(&self) -> RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

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<F: Debug + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Debug for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

source§

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

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

impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> PRF for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

§

type Input = [F; INPUT_LEN]

Input to the PRF
§

type Output = [F; OUTPUT_LEN]

Output of the PRF
§

type Seed = F

The random seed/key that index a specific function from the PRF -ensembles
§

type Error = RescueError

Error type
source§

fn evaluate<S: Borrow<Self::Seed>, I: Borrow<Self::Input>>( +

Trait Implementations§

source§

impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Clone for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

source§

fn clone(&self) -> RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

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<F: Debug + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Debug for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

source§

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

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

impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> PRF for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

§

type Input = [F; INPUT_LEN]

Input to the PRF
§

type Output = [F; OUTPUT_LEN]

Output of the PRF
§

type Seed = F

The random seed/key that index a specific function from the PRF +ensembles
§

type Error = RescueError

Error type
source§

fn evaluate<S: Borrow<Self::Seed>, I: Borrow<Self::Input>>( seed: S, input: I, -) -> Result<Self::Output, Self::Error>

Compute PRF output with a user-provided randomly generated seed
source§

fn evaluate_with_rand_seed<R, T>( +) -> Result<Self::Output, Self::Error>

Compute PRF output with a user-provided randomly generated seed
§

fn evaluate_with_rand_seed<R, T>( rng: &mut R, input: T, -) -> Result<(Self::Seed, Self::Output), Self::Error>
where +) -> Result<(Self::Seed, Self::Output), Self::Error>
where R: RngCore + CryptoRng, - T: Borrow<Self::Input>,

same as Self::evaluate except that we generate a fresh random seed + T: Borrow<Self::Input>,

same as [Self::evaluate] except that we generate a fresh random seed for the evaluation

Auto Trait Implementations§

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Freeze for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> RefUnwindSafe for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>
where F: RefUnwindSafe,

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Send for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Sync for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Unpin for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>
where F: Unpin,

§

impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> UnwindSafe for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>
where diff --git a/jf_vid/advz/index.html b/jf_vid/advz/index.html index 3e7a7507b..7bb0d2a97 100644 --- a/jf_vid/advz/index.html +++ b/jf_vid/advz/index.html @@ -1,4 +1,4 @@ -jf_vid::advz - Rust

Module jf_vid::advz

source ·
Expand description

Implementation of Verifiable Information Dispersal (VID) from https://eprint.iacr.org/2021/1500.

+jf_vid::advz - Rust

Module jf_vid::advz

source ·
Expand description

Implementation of Verifiable Information Dispersal (VID) from https://eprint.iacr.org/2021/1500.

advz named for the authors Alhaddad-Duan-Varia-Zhang.

Modules§

Structs§

Traits§

  • A helper trait that cover API that maybe instantiated using GPU code diff --git a/jf_vid/advz/payload_prover/struct.LargeRangeProof.html b/jf_vid/advz/payload_prover/struct.LargeRangeProof.html index 45b9d7489..b869e17c2 100644 --- a/jf_vid/advz/payload_prover/struct.LargeRangeProof.html +++ b/jf_vid/advz/payload_prover/struct.LargeRangeProof.html @@ -4,7 +4,7 @@ F: CanonicalSerialize + CanonicalDeserialize,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<F: PartialEq> PartialEq for LargeRangeProof<F>

source§

fn eq(&self, other: &LargeRangeProof<F>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
where +sufficient, and should not be overridden without very good reason.

source§

impl<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
where E: Pairing, H: HasherDigest, T: Sync, @@ -12,11 +12,11 @@ &self, payload: B, range: Range<usize>, -) -> VidResult<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>>
where +) -> VidResult<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>>
where B: AsRef<[u8]>,

Compute a proof for a subslice of payload data. Read more
source§

fn payload_verify( &self, stmt: Statement<'_, Self>, - proof: &LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>, + proof: &LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>, ) -> VidResult<Result<(), ()>>

Verify a proof made by PayloadProver::payload_proof. Read more
source§

impl<F> Serialize for LargeRangeProof<F>
where F: CanonicalSerialize + CanonicalDeserialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<F: Eq> Eq for LargeRangeProof<F>

source§

impl<F> StructuralPartialEq for LargeRangeProof<F>

Auto Trait Implementations§

§

impl<F> Freeze for LargeRangeProof<F>

§

impl<F> RefUnwindSafe for LargeRangeProof<F>
where diff --git a/jf_vid/advz/payload_prover/struct.SmallRangeProof.html b/jf_vid/advz/payload_prover/struct.SmallRangeProof.html index 1254bb5ef..2ce3b8c84 100644 --- a/jf_vid/advz/payload_prover/struct.SmallRangeProof.html +++ b/jf_vid/advz/payload_prover/struct.SmallRangeProof.html @@ -5,7 +5,7 @@ P: CanonicalSerialize + CanonicalDeserialize,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<P: PartialEq> PartialEq for SmallRangeProof<P>

source§

fn eq(&self, other: &SmallRangeProof<P>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
where +sufficient, and should not be overridden without very good reason.

source§

impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
where E: Pairing, H: HasherDigest, T: Sync, @@ -13,11 +13,11 @@ &self, payload: B, range: Range<usize>, -) -> VidResult<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>>
where +) -> VidResult<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>>
where B: AsRef<[u8]>,

Compute a proof for a subslice of payload data. Read more
source§

fn payload_verify( &self, stmt: Statement<'_, Self>, - proof: &SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>, + proof: &SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>, ) -> VidResult<Result<(), ()>>

Verify a proof made by PayloadProver::payload_proof. Read more
source§

impl<P> Serialize for SmallRangeProof<P>
where P: CanonicalSerialize + CanonicalDeserialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<P: Eq> Eq for SmallRangeProof<P>

source§

impl<P> StructuralPartialEq for SmallRangeProof<P>

Auto Trait Implementations§

§

impl<P> Freeze for SmallRangeProof<P>

§

impl<P> RefUnwindSafe for SmallRangeProof<P>
where diff --git a/jf_vid/advz/struct.AdvzInternal.html b/jf_vid/advz/struct.AdvzInternal.html index 6e6d58285..70385d7ce 100644 --- a/jf_vid/advz/struct.AdvzInternal.html +++ b/jf_vid/advz/struct.AdvzInternal.html @@ -11,7 +11,7 @@ E: Pairing,

source

pub fn new( num_storage_nodes: u32, recovery_threshold: u32, - srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, + srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, ) -> VidResult<Self>

Return a new instance of Self from (mostly) implementation-independent arguments.

§Implementation-independent arguments
@@ -33,7 +33,7 @@
§Errors
num_storage_nodes: u32, recovery_threshold: u32, max_multiplicity: u32, - srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, + srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, ) -> VidResult<Self>

Like Advz::new except with a max_multiplicity arg.

max_multiplicity is an implementation-specific optimization arg. Each storage node gets up to max_multiplicity evaluations per @@ -52,7 +52,7 @@

§Errors
E: Pairing + PartialEq, T: Sync + PartialEq,
source§

fn eq(&self, other: &AdvzInternal<E, H, T>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
where +sufficient, and should not be overridden without very good reason.

source§

impl<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
where E: Pairing, H: HasherDigest, T: Sync, @@ -60,12 +60,12 @@
§Errors
&self, payload: B, range: Range<usize>, -) -> VidResult<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>>
where +) -> VidResult<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>>
where B: AsRef<[u8]>,

Compute a proof for a subslice of payload data. Read more
source§

fn payload_verify( &self, stmt: Statement<'_, Self>, - proof: &LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>, -) -> VidResult<Result<(), ()>>

Verify a proof made by PayloadProver::payload_proof. Read more
source§

impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
where + proof: &LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>, +) -> VidResult<Result<(), ()>>

Verify a proof made by PayloadProver::payload_proof. Read more
source§

impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
where E: Pairing, H: HasherDigest, T: Sync, @@ -73,11 +73,11 @@
§Errors
&self, payload: B, range: Range<usize>, -) -> VidResult<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>>
where +) -> VidResult<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>>
where B: AsRef<[u8]>,

Compute a proof for a subslice of payload data. Read more
source§

fn payload_verify( &self, stmt: Statement<'_, Self>, - proof: &SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>, + proof: &SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>, ) -> VidResult<Result<(), ()>>

Verify a proof made by PayloadProver::payload_proof. Read more
source§

impl<E, H, T> Precomputable for AdvzInternal<E, H, T>
where E: Pairing, H: HasherDigest, @@ -93,26 +93,26 @@
§Errors
data: &Self::PrecomputeData, ) -> VidResult<VidDisperse<Self>>
where B: AsRef<[u8]>,

Similar to VidScheme::disperse but takes as input additional -data for more efficient computation and faster disersal.
source§

impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
where +data for more efficient computation and faster disersal.

source§

impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
where E: Pairing, H: HasherDigest, T: Sync, - AdvzInternal<E, H, T>: MaybeGPU<E>,

§

type Commit = HasherNode<H>

Payload commitment.
§

type Share = Share<E, H>

Share-specific data sent to a storage node.
§

type Common = Common<E, H>

Common data sent to all storage nodes.
source§

fn commit_only<B>(&mut self, payload: B) -> VidResult<Self::Commit>
where - B: AsRef<[u8]>,

Compute a payload commitment
source§

fn disperse<B>(&mut self, payload: B) -> VidResult<VidDisperse<Self>>
where - B: AsRef<[u8]>,

Compute shares to send to the storage nodes
source§

fn verify_share( + AdvzInternal<E, H, T>: MaybeGPU<E>,

§

type Commit = HasherNode<H>

Payload commitment.
§

type Share = Share<E, H>

Share-specific data sent to a storage node.
§

type Common = Common<E, H>

Common data sent to all storage nodes.
source§

fn commit_only<B>(&mut self, payload: B) -> VidResult<Self::Commit>
where + B: AsRef<[u8]>,

Compute a payload commitment
source§

fn disperse<B>(&mut self, payload: B) -> VidResult<VidDisperse<Self>>
where + B: AsRef<[u8]>,

Compute shares to send to the storage nodes
source§

fn verify_share( &self, share: &Self::Share, common: &Self::Common, commit: &Self::Commit, ) -> VidResult<Result<(), ()>>

Verify a share. Used by both storage node and retrieval client. Why is return type a nested Result? See https://sled.rs/errors -Returns: Read more
source§

fn recover_payload( +Returns: Read more

source§

fn recover_payload( &self, shares: &[Self::Share], common: &Self::Common, ) -> VidResult<Vec<u8>>

Recover payload from shares. -Do not verify shares or check recovered payload against anything.
source§

fn is_consistent(commit: &Self::Commit, common: &Self::Common) -> VidResult<()>

Check that a VidScheme::Common is consistent with a -VidScheme::Commit. Read more
source§

fn get_payload_byte_len(common: &Self::Common) -> u32

Extract the payload byte length data from a VidScheme::Common.
source§

fn get_num_storage_nodes(common: &Self::Common) -> u32

Extract the number of storage nodes from a VidScheme::Common.
source§

fn get_multiplicity(common: &Self::Common) -> u32

Extract the number of poly evals per share VidScheme::Common.
source§

impl<E, H: Eq, T> Eq for AdvzInternal<E, H, T>
where +Do not verify shares or check recovered payload against anything.
source§

fn is_consistent(commit: &Self::Commit, common: &Self::Common) -> VidResult<()>

Check that a VidScheme::Common is consistent with a +VidScheme::Commit. Read more
source§

fn get_payload_byte_len(common: &Self::Common) -> u32

Extract the payload byte length data from a VidScheme::Common.
source§

fn get_num_storage_nodes(common: &Self::Common) -> u32

Extract the number of storage nodes from a VidScheme::Common.
source§

fn get_multiplicity(common: &Self::Common) -> u32

Extract the number of poly evals per share VidScheme::Common.
source§

impl<E, H: Eq, T> Eq for AdvzInternal<E, H, T>
where E: Pairing + Eq, T: Sync + Eq,

source§

impl<E, H, T> StructuralPartialEq for AdvzInternal<E, H, T>
where E: Pairing, diff --git a/jf_vid/advz/struct.Common.html b/jf_vid/advz/struct.Common.html index b5a96f938..0dfa53af3 100644 --- a/jf_vid/advz/struct.Common.html +++ b/jf_vid/advz/struct.Common.html @@ -1,9 +1,9 @@ -Common in jf_vid::advz - Rust

Struct jf_vid::advz::Common

source ·
pub struct Common<E, H>
where +Common in jf_vid::advz - Rust

Struct jf_vid::advz::Common

source ·
pub struct Common<E, H>
where E: Pairing, H: HasherDigest,
{ /* private fields */ }
Expand description

The VidScheme::Common type for Advz.

-

Trait Implementations§

source§

impl<E, H> CanonicalDeserialize for Common<E, H>
where +

Trait Implementations§

source§

impl<E, H> CanonicalDeserialize for Common<E, H>
where E: Pairing, - H: HasherDigest,

source§

fn deserialize_with_mode<R: Read>( + H: HasherDigest,

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, @@ -15,39 +15,39 @@ R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, ) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E, H> CanonicalSerialize for Common<E, H>
where + R: Read,

source§

impl<E, H> CanonicalSerialize for Common<E, H>
where E: Pairing, - H: HasherDigest,

source§

fn serialize_with_mode<W: Write>( + H: HasherDigest,

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E, H> Clone for Common<E, H>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E, H> Clone for Common<E, H>
where E: Pairing, - H: HasherDigest,

source§

fn clone(&self) -> Self

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<E, H> Debug for Common<E, H>
where + H: HasherDigest,

source§

fn clone(&self) -> Self

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<E, H> Debug for Common<E, H>
where E: Pairing, - H: HasherDigest,

source§

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

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

impl<'de, E, H> Deserialize<'de> for Common<E, H>
where + H: HasherDigest,

source§

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

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

impl<'de, E, H> Deserialize<'de> for Common<E, H>
where E: Pairing, - H: HasherDigest,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<E, H> Hash for Common<E, H>
where + H: HasherDigest,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<E, H> Hash for Common<E, H>
where E: Pairing, - H: HasherDigest,

source§

fn hash<__HEH>(&self, __state: &mut __HEH)
where + H: HasherDigest,

source§

fn hash<__HEH>(&self, __state: &mut __HEH)
where __HEH: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<E, H> PartialEq for Common<E, H>
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<E, H> PartialEq for Common<E, H>
where E: Pairing, - H: HasherDigest,

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used + H: HasherDigest,
source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<E, H> Serialize for Common<E, H>
where +sufficient, and should not be overridden without very good reason.

source§

impl<E, H> Serialize for Common<E, H>
where E: Pairing, - H: HasherDigest,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E, H> Valid for Common<E, H>
where + H: HasherDigest,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E, H> Valid for Common<E, H>
where E: Pairing, - H: HasherDigest,

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + H: HasherDigest,

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( batch: impl Iterator<Item = &'a Self> + Send, ) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E, H> Eq for Common<E, H>
where + Self: 'a,

source§

impl<E, H> Eq for Common<E, H>
where E: Pairing, H: HasherDigest,

Auto Trait Implementations§

§

impl<E, H> Freeze for Common<E, H>
where <H as HasherDigest>::Bar: Freeze,

§

impl<E, H> RefUnwindSafe for Common<E, H>
where diff --git a/jf_vid/advz/struct.Share.html b/jf_vid/advz/struct.Share.html index d975b026e..ffa8046d1 100644 --- a/jf_vid/advz/struct.Share.html +++ b/jf_vid/advz/struct.Share.html @@ -1,4 +1,4 @@ -Share in jf_vid::advz - Rust

Struct jf_vid::advz::Share

source ·
pub struct Share<E, H>
where +Share in jf_vid::advz - Rust

Struct jf_vid::advz::Share

source ·
pub struct Share<E, H>
where E: Pairing, H: HasherDigest,
{ /* private fields */ }
Expand description

The VidScheme::Share type for Advz.

Trait Implementations§

source§

impl<E, H> Clone for Share<E, H>
where diff --git a/jf_vid/advz/trait.MaybeGPU.html b/jf_vid/advz/trait.MaybeGPU.html index f66517b6d..9d7d8e8ed 100644 --- a/jf_vid/advz/trait.MaybeGPU.html +++ b/jf_vid/advz/trait.MaybeGPU.html @@ -1,19 +1,19 @@ -MaybeGPU in jf_vid::advz - Rust

Trait jf_vid::advz::MaybeGPU

source ·
pub trait MaybeGPU<E: Pairing> {
+MaybeGPU in jf_vid::advz - Rust

Trait jf_vid::advz::MaybeGPU

source ·
pub trait MaybeGPU<E: Pairing> {
     // Required method
     fn kzg_batch_commit(
         &mut self,
         polys: &[DensePolynomial<E::ScalarField>],
-    ) -> VidResult<Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>>;
+    ) -> VidResult<Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>>;
 }
Expand description

A helper trait that cover API that maybe instantiated using GPU code in specialized implementation for concrete types

-

Required Methods§

Required Methods§

source

fn kzg_batch_commit( &mut self, polys: &[DensePolynomial<E::ScalarField>], -) -> VidResult<Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>>

kzg batch commit +) -> VidResult<Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>>

kzg batch commit TODO: (alex) it’s unfortnate that we are forced to use &mut self which propagate out to VidScheme::commit_only/disperse(&mut self) This should be fixed once ICICLE improve their HostOrDeviceSlice, and we can update our GPUCommittable::commit_on_gpu() input type. depends on https://github.com/ingonyama-zk/icicle/pull/412

-

Implementors§

source§

impl<E, H> MaybeGPU<E> for Advz<E, H>
where +

Implementors§

source§

impl<E, H> MaybeGPU<E> for Advz<E, H>
where E: Pairing,

\ No newline at end of file diff --git a/jf_vid/advz/type.Advz.html b/jf_vid/advz/type.Advz.html index 84ca66b38..9249a1145 100644 --- a/jf_vid/advz/type.Advz.html +++ b/jf_vid/advz/type.Advz.html @@ -3,7 +3,7 @@ E: Pairing,
source

pub fn new( num_storage_nodes: u32, recovery_threshold: u32, - srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, + srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, ) -> VidResult<Self>

Return a new instance of Self from (mostly) implementation-independent arguments.

§Implementation-independent arguments
@@ -25,7 +25,7 @@
§Errors
num_storage_nodes: u32, recovery_threshold: u32, max_multiplicity: u32, - srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, + srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, ) -> VidResult<Self>

Like Advz::new except with a max_multiplicity arg.

max_multiplicity is an implementation-specific optimization arg. Each storage node gets up to max_multiplicity evaluations per @@ -36,11 +36,11 @@

§Errors
  • TEMPORARY max_multiplicity is not a power of two github issue
-

Trait Implementations§

source§

impl<E, H> MaybeGPU<E> for Advz<E, H>
where - E: Pairing,

Trait Implementations§

source§

impl<E, H> MaybeGPU<E> for Advz<E, H>
where + E: Pairing,

source§

fn kzg_batch_commit( &mut self, polys: &[DensePolynomial<E::ScalarField>], -) -> VidResult<Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>>

kzg batch commit +) -> VidResult<Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>>
kzg batch commit TODO: (alex) it’s unfortnate that we are forced to use &mut self which propagate out to VidScheme::commit_only/disperse(&mut self) This should be fixed once ICICLE improve their HostOrDeviceSlice, and diff --git a/jf_vid/payload_prover/trait.PayloadProver.html b/jf_vid/payload_prover/trait.PayloadProver.html index f9189a551..7d52e6339 100644 --- a/jf_vid/payload_prover/trait.PayloadProver.html +++ b/jf_vid/payload_prover/trait.PayloadProver.html @@ -38,11 +38,11 @@
§Argumentsstmt: see Statement.
  • proof: made by a call to PayloadProver::payload_proof.
  • -

    Object Safety§

    This trait is not object safe.

    Implementors§

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
    where E: Pairing, H: HasherDigest, T: Sync, - AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
    where + AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
    where E: Pairing, H: HasherDigest, T: Sync, diff --git a/jf_vid/trait.VidScheme.html b/jf_vid/trait.VidScheme.html index 8f001fdd4..d398d0568 100644 --- a/jf_vid/trait.VidScheme.html +++ b/jf_vid/trait.VidScheme.html @@ -60,7 +60,7 @@
    source

    fn get_payload_byte_len(common: &Self::Common) -> u32

    Extract the payload byte length data from a VidScheme::Common.

    source

    fn get_num_storage_nodes(common: &Self::Common) -> u32

    Extract the number of storage nodes from a VidScheme::Common.

    source

    fn get_multiplicity(common: &Self::Common) -> u32

    Extract the number of poly evals per share VidScheme::Common.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
    where +

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
    where E: Pairing, H: HasherDigest, T: Sync, diff --git a/settings.html b/settings.html index fcb2207a9..39061e9f2 100644 --- a/settings.html +++ b/settings.html @@ -1 +1 @@ -Settings

    Rustdoc settings

    Back
    \ No newline at end of file +Settings

    Rustdoc settings

    Back
    \ No newline at end of file diff --git a/src/jf_vid/advz.rs.html b/src/jf_vid/advz.rs.html index 6d424530e..ddf833674 100644 --- a/src/jf_vid/advz.rs.html +++ b/src/jf_vid/advz.rs.html @@ -1072,6 +1072,10 @@ 1072 1073 1074 +1075 +1076 +1077 +1078
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the Jellyfish library.
     
    @@ -1369,10 +1373,7 @@
         // TODO further aggregate into a single KZG proof.
         aggregate_proofs: Vec<KzgProof<E>>,
     
    -    // eval_proofs.len() equals multiplicity
    -    // TODO put all evals into a single merkle proof
    -    // https://github.com/EspressoSystems/jellyfish/issues/671
    -    eval_proofs: Vec<KzgEvalsMerkleTreeProof<E, H>>,
    +    evals_proof: KzgEvalsMerkleTreeProof<E, H>,
     }
     
     impl<E, H> Share<E, H>
    @@ -1383,21 +1384,14 @@
         /// Return a [`Vec`] of payload data for this share.
         ///
         /// These data are extracted from [`MerkleProof`] structs. The returned
    -    /// [`Vec`] has length `multiplicity * num_polys`s
    +    /// [`Vec`] has length `multiplicity * num_polys`
         ///
         /// TODO store these data in a new field `Share::evals` after fixing
         /// https://github.com/EspressoSystems/jellyfish/issues/658
    -    fn evals(&self) -> VidResult<Vec<KzgEval<E>>> {
    -        self.eval_proofs
    -            .iter()
    -            .map(|eval_proof| {
    -                eval_proof
    -                    .elem()
    -                    .cloned()
    -                    .ok_or_else(|| VidError::Internal(anyhow::anyhow!("empty merkle proof")))
    -            })
    -            .flatten_ok()
    -            .collect()
    +    fn evals(&self) -> VidResult<&Vec<KzgEval<E>>> {
    +        self.evals_proof
    +            .elem()
    +            .ok_or_else(|| VidError::Internal(anyhow::anyhow!("empty merkle proof")))
         }
     }
     
    @@ -1530,6 +1524,7 @@
             }
             let multiplicity =
                 self.min_multiplicity(common.payload_byte_len.try_into().map_err(vid)?)?;
    +        let multiplicity_usize = usize::try_from(multiplicity).map_err(vid)?;
             if common.multiplicity != multiplicity {
                 return Err(VidError::Argument(format!(
                     "common multiplicity {} differs from derived min {}",
    @@ -1544,40 +1539,34 @@
                     common.poly_commits.len()
                 )));
             }
    -        if share.eval_proofs.len() != multiplicity as usize {
    -            return Err(VidError::Argument(format!(
    -                "number of eval_proofs {} differs from common multiplicity {}",
    -                share.eval_proofs.len(),
    -                multiplicity,
    -            )));
    -        }
    -
             Self::is_consistent(commit, common)?;
    -
             if share.index >= self.num_storage_nodes {
                 return Ok(Err(())); // not an arg error
             }
     
    -        // verify eval proofs
    -        for i in 0..multiplicity {
    -            if KzgEvalsMerkleTree::<E, H>::verify(
    -                common.all_evals_digest,
    -                &KzgEvalsMerkleTreeIndex::<E, H>::from((share.index * multiplicity) + i),
    -                &share.eval_proofs[i as usize],
    -            )
    -            .map_err(vid)?
    -            .is_err()
    -            {
    -                return Ok(Err(()));
    -            }
    +        // verify eval proof
    +        if KzgEvalsMerkleTree::<E, H>::verify(
    +            common.all_evals_digest,
    +            &KzgEvalsMerkleTreeIndex::<E, H>::from(share.index),
    +            &share.evals_proof,
    +        )
    +        .map_err(vid)?
    +        .is_err()
    +        {
    +            return Ok(Err(()));
             }
    -        let pseudorandom_scalar = Self::pseudorandom_scalar(common, commit)?;
     
    -        // Compute aggregate polynomial [commitment|evaluation]
    -        // as a pseudorandom linear combo of [commitments|evaluations]
    -        // via evaluation of the polynomial whose coefficients are
    -        // [commitments|evaluations] and whose input point is the pseudorandom
    -        // scalar.
    +        // the magic pseudorandom scalar used for aggregation
    +        let pseudorandom_scalar = Self::pseudorandom_scalar(common, commit)?;
    +
    +        // Compute an aggregate polynomial [commitment|evaluation] as a
    +        // pseudorandom linear combo of [commitments|evaluations].
    +        // To this end use function `polynomoial_eval` where each "coefficient"
    +        // is actually a [commitment|evaluation] and the input point is
    +        // `pseudorandom_scalar`.
    +        //
    +        // - Here: aggregate polynomial commitment in `aggregate_poly_commit`.
    +        // - Below: aggregate polynomial evals in `aggregate_eval`.
             let aggregate_poly_commit = KzgCommit::<E>::from(
                 polynomial_eval(
                     common
    @@ -1589,41 +1578,32 @@
                 .into(),
             );
     
    -        // verify aggregate proof
    -        //
    -        // some boilerplate needed to accommodate builds without `parallel`
    -        // feature.
    -        let multiplicities = Vec::from_iter((0..multiplicity as usize));
    +        // convenience quantities
    +        let multiplicities = Vec::from_iter((0..multiplicity_usize));
             let polys_len = common.poly_commits.len();
             let multi_open_domain = self.multi_open_domain(multiplicity)?;
    -        let verification_iter = parallelizable_slice_iter(&multiplicities).map(|i| {
    -            let range = i * polys_len..(i + 1) * polys_len;
    -            let aggregate_eval = polynomial_eval(
    -                evals
    -                    .get(range.clone())
    -                    .ok_or_else(|| {
    -                        VidError::Internal(anyhow::anyhow!(
    -                            "share evals range {:?} out of bounds for length {}",
    -                            range,
    -                            evals.len()
    -                        ))
    -                    })?
    -                    .iter()
    -                    .map(FieldMultiplier),
    -                pseudorandom_scalar,
    -            );
    +
    +        // verify aggregate proofs
    +        let verification_iter = parallelizable_slice_iter(&multiplicities).map(|m| {
    +            let evals_iter = evals.iter().skip(*m).step_by(multiplicity_usize);
    +            let aggregate_eval =
    +                polynomial_eval(evals_iter.map(FieldMultiplier), pseudorandom_scalar);
    +            let domain_index = usize::try_from(share.index).map_err(vid)?
    +                + m * usize::try_from(self.num_storage_nodes).map_err(vid)?;
                 Ok(UnivariateKzgPCS::verify(
                     &self.vk,
                     &aggregate_poly_commit,
    -                &multi_open_domain.element((share.index * multiplicity) as usize + i),
    +                &multi_open_domain.element(domain_index),
                     &aggregate_eval,
    -                &share.aggregate_proofs[*i],
    +                &share.aggregate_proofs[*m],
                 )
                 .map_err(vid)?
                 .then_some(())
                 .ok_or(()))
             });
    -        let abort = |result: &VidResult<Result<(), ()>>| match result {
    +
    +        // Boilerplate needed to accommodate builds without `parallel`feature.
    +        let abort = |result: &VidResult<Result<(), ()>>| match result {
                 Ok(success) => success.is_err(),
                 Err(_) => true,
             };
    @@ -1654,17 +1634,17 @@
                 )));
             }
     
    -        let shares_evals = shares
    +        let all_shares_evals = shares
                 .iter()
                 .map(|share| share.evals())
                 .collect::<VidResult<Vec<_>>>()?;
     
             // check args: all shares must have equal evals len
    -        let num_evals = shares_evals
    +        let num_evals = all_shares_evals
                 .first()
                 .ok_or_else(|| VidError::Argument("shares is empty".into()))?
                 .len();
    -        if let Some((index, share_evals)) = shares_evals
    +        if let Some((index, share_evals)) = all_shares_evals
                 .iter()
                 .enumerate()
                 .find(|(_, evals)| evals.len() != num_evals)
    @@ -1686,8 +1666,9 @@
             }
     
             // convenience quantities
    -        let chunk_size =
    -            usize::try_from(common.multiplicity * self.recovery_threshold).map_err(vid)?;
    +        let multiplicity = usize::try_from(common.multiplicity).map_err(vid)?;
    +        let num_storage_nodes = usize::try_from(self.num_storage_nodes).map_err(vid)?;
    +        let chunk_size = multiplicity * usize::try_from(self.recovery_threshold).map_err(vid)?;
             let num_polys = common.poly_commits.len();
             let elems_capacity = num_polys * chunk_size;
             let fft_domain = Self::eval_domain(chunk_size)?;
    @@ -1695,12 +1676,12 @@
             let mut elems = Vec::with_capacity(elems_capacity);
             let mut evals = Vec::with_capacity(num_evals);
             for p in 0..num_polys {
    -            for (share, share_evals) in shares.iter().zip(shares_evals.iter()) {
    +            for (share, share_evals) in shares.iter().zip(all_shares_evals.iter()) {
                     // extract all evaluations for polynomial p from the share
                     for m in 0..common.multiplicity as usize {
                         evals.push((
    -                        (share.index * common.multiplicity) as usize + m,
    -                        share_evals[(m * num_polys) + p],
    +                        usize::try_from(share.index).map_err(vid)? + m * num_storage_nodes,
    +                        share_evals[p * multiplicity + m],
                         ))
                     }
                 }
    @@ -1772,7 +1753,9 @@
                 payload_byte_len, self.num_storage_nodes
             ));
             let multiplicity = self.min_multiplicity(payload.len())?;
    -        let code_word_size = usize::try_from(multiplicity * self.num_storage_nodes).map_err(vid)?;
    +        let multiplicity_usize = usize::try_from(multiplicity).map_err(vid)?;
    +        let num_storage_nodes_usize = usize::try_from(self.num_storage_nodes).map_err(vid)?;
    +        let code_word_size = num_storage_nodes_usize * multiplicity_usize;
             let multi_open_domain = self.multi_open_domain(multiplicity)?;
     
             // evaluate polynomials
    @@ -1789,27 +1772,41 @@
                             code_word_size,
                             &multi_open_domain,
                         )
    +                    .map(|poly_evals| {
    +                        assert_eq!(poly_evals.len(), code_word_size); // sanity
    +                        poly_evals
    +                    })
                         .map_err(vid)
                     })
                     .collect::<Result<Vec<_>, VidError>>()?;
    +            assert_eq!(all_poly_evals.len(), polys.len()); // sanity
     
    -            // distribute evals from each poly among the storage nodes
    +            // Populate a Vec of polynomial evaluations for all storage nodes:
    +            //
    +            // The `i`th item is a Vec of `polys.len() * multiplicity`
    +            // polynomial evaluations.
    +            //
    +            // Evaluations for storage node `i` are ordered as follows. Define
    +            // - `n`: the number of storage nodes: `self.num_storage_nodes`
    +            // - `k`: the number of polynomials minus 1: `polys.len() - 1`
    +            // - `m`: `multiplicity - 1`
    +            // - `p[j](x)`: the value of the `j`th polynomial evaluated at `x`.
                 //
    -            // perf warning: runtime is quadratic in payload_size
    -            let mut all_storage_node_evals = vec![Vec::with_capacity(polys.len()); code_word_size];
    +            // p[0](i), p[0](i+n), ..., p[0](i+m*n),
    +            // ...,
    +            // p[k](i), p[k](i+n), ..., p[k](i+m*n),
    +            let mut all_storage_node_evals =
    +                vec![Vec::with_capacity(polys.len() * multiplicity_usize); num_storage_nodes_usize];
                 for poly_evals in all_poly_evals {
    -                for (storage_node_evals, poly_eval) in all_storage_node_evals
    -                    .iter_mut()
    -                    .zip(poly_evals.into_iter())
    -                {
    -                    storage_node_evals.push(poly_eval);
    +                for (i, poly_eval) in poly_evals.into_iter().enumerate() {
    +                    all_storage_node_evals[i % num_storage_nodes_usize].push(poly_eval);
                     }
                 }
     
                 // sanity checks
    -            assert_eq!(all_storage_node_evals.len(), code_word_size);
    +            assert_eq!(all_storage_node_evals.len(), num_storage_nodes_usize);
                 for storage_node_evals in all_storage_node_evals.iter() {
    -                assert_eq!(storage_node_evals.len(), polys.len());
    +                assert_eq!(storage_node_evals.len(), polys.len() * multiplicity_usize);
                 }
     
                 all_storage_node_evals
    @@ -1820,7 +1817,7 @@
             let all_evals_commit_timer =
                 start_timer!(|| "compute merkle root of all storage node evals");
             let all_evals_commit =
    -            KzgEvalsMerkleTree::<E, H>::from_elems(None, &all_storage_node_evals).map_err(vid)?;
    +            KzgEvalsMerkleTree::<E, H>::from_elems(None, all_storage_node_evals).map_err(vid)?;
             end_timer!(all_evals_commit_timer);
     
             let common = Common {
    @@ -1838,9 +1835,10 @@
             )?;
             let pseudorandom_scalar = Self::pseudorandom_scalar(&common, &commit)?;
     
    -        // Compute aggregate polynomial as a pseudorandom linear combo of polynomial via
    -        // evaluation of the polynomial whose coefficients are polynomials and whose
    -        // input point is the pseudorandom scalar.
    +        // Compute the aggregate polynomial as a pseudorandom linear combo of
    +        // `polys`. To this end use function `polynomoial_eval` where each
    +        // "coefficient" is actually a polynomial from `polys` and the input
    +        // point is `pseudorandom_scalar`.
             let aggregate_poly =
                 polynomial_eval(polys.iter().map(PolynomialMultiplier), pseudorandom_scalar);
     
    @@ -1858,38 +1856,48 @@
             end_timer!(agg_proofs_timer);
     
             let assemblage_timer = start_timer!(|| "assemble shares for dispersal");
    -        let shares: Vec<_> = {
    -            // compute share data
    -            let share_data = all_storage_node_evals
    -                .into_iter()
    -                .zip(aggregate_proofs)
    -                .enumerate()
    -                .map(|(i, (eval, proof))| {
    -                    let eval_proof = all_evals_commit
    +
    +        // Populate a Vec of aggregate proofs for all storage nodes:
    +        //
    +        // The `i`th item is a Vec of `multiplicity` KZG proofs.
    +        //
    +        // Proofs for storage node `i` are ordered as follows. Define
    +        // - `n`: the number of storage nodes: `self.num_storage_nodes`
    +        // - `m`: `multiplicity - 1`
    +        // - `p(x)`: the value of the aggregate polynomial `p` evaluated at `x`.
    +        //
    +        // p(i), p(i+n), ..., p(i+m*n)
    +        let mut all_storage_node_aggregate_proofs =
    +            vec![Vec::with_capacity(multiplicity_usize); num_storage_nodes_usize];
    +        for (i, aggregate_proof) in aggregate_proofs.into_iter().enumerate() {
    +            all_storage_node_aggregate_proofs[i % num_storage_nodes_usize].push(aggregate_proof);
    +        }
    +
    +        // sanity checks
    +        assert_eq!(
    +            all_storage_node_aggregate_proofs.len(),
    +            num_storage_nodes_usize
    +        );
    +        for storage_node_aggregate_proof in all_storage_node_aggregate_proofs.iter() {
    +            assert_eq!(storage_node_aggregate_proof.len(), multiplicity_usize);
    +        }
    +
    +        let shares = all_storage_node_aggregate_proofs
    +            .into_iter()
    +            .enumerate()
    +            .map(|(i, aggregate_proofs)| {
    +                Ok(Share {
    +                    index: u32::try_from(i).map_err(vid)?,
    +                    aggregate_proofs,
    +                    evals_proof: all_evals_commit
                             .lookup(KzgEvalsMerkleTreeIndex::<E, H>::from(i as u64))
                             .expect_ok()
                             .map_err(vid)?
    -                        .1;
    -                    Ok((eval, proof, eval_proof))
    +                        .1,
                     })
    -                .collect::<Result<Vec<_>, VidError>>()?;
    +            })
    +            .collect::<VidResult<Vec<_>>>()?;
     
    -            // split share data into chunks of size multiplicity
    -            share_data
    -                .into_iter()
    -                .chunks(multiplicity as usize)
    -                .into_iter()
    -                .enumerate()
    -                .map(|(index, chunk)| {
    -                    let (evals, proofs, eval_proofs): (Vec<_>, _, _) = chunk.multiunzip();
    -                    Share {
    -                        index: index as u32,
    -                        aggregate_proofs: proofs,
    -                        eval_proofs,
    -                    }
    -                })
    -                .collect()
    -        };
             end_timer!(assemblage_timer);
             end_timer!(disperse_time);
     
    diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js
    index 0833c01a8..8f51ad98e 100644
    --- a/trait.impl/core/clone/trait.Clone.js
    +++ b/trait.impl/core/clone/trait.Clone.js
    @@ -1,7 +1,7 @@
     (function() {var implementors = {
     "jf_aead":[["impl Clone for AEADError"],["impl Clone for Ciphertext"],["impl Clone for EncKey"],["impl Clone for KeyPair"]],
     "jf_elgamal":[["impl<P> Clone for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> Clone for EncKey<P>
    where\n P: Config,
    "],["impl<P> Clone for KeyPair<P>
    where\n P: Config,
    "]], -"jf_merkle_tree":[["impl Clone for Sha3Digest"],["impl Clone for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Clone for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, I, const ARITY: usize, T> Clone for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, I, const ARITY: usize, T> Clone for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, const ARITY: usize, N, T> Clone for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Clone,\n E: Element + Namespaced<Namespace = N> + Clone,\n T: NodeValue + Clone,\n N: Namespace + Clone,
    "],["impl<E, I, T, const ARITY: usize> Clone for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E: Clone + Element, I: Clone + Index, T: Clone + NodeValue> Clone for MerkleNode<E, I, T>"],["impl<F: Clone + RescueParameter> Clone for RescueHash<F>"],["impl<F: Clone + Field> Clone for Interval<F>"],["impl<F: Clone, P: Clone, N: Clone> Clone for LookupResult<F, P, N>"],["impl<H> Clone for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_merkle_tree":[["impl Clone for Sha3Digest"],["impl Clone for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Clone for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, I, const ARITY: usize, T> Clone for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, I, const ARITY: usize, T> Clone for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, const ARITY: usize, N, T> Clone for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Clone,\n E: Element + Namespaced<Namespace = N> + Clone,\n T: NodeValue + Clone,\n N: Namespace + Clone,
    "],["impl<E, I, T, const ARITY: usize> Clone for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E: Clone + Element, I: Clone + Index, T: Clone + NodeValue> Clone for MerkleNode<E, I, T>"],["impl<F: Clone + Field> Clone for Interval<F>"],["impl<F: Clone + RescueParameter> Clone for RescueHash<F>"],["impl<F: Clone, P: Clone, N: Clone> Clone for LookupResult<F, P, N>"],["impl<H> Clone for HasherNode<H>
    where\n H: Digest,
    "]], "jf_pcs":[["impl<E: Clone + Pairing> Clone for MultilinearKzgBatchProof<E>"],["impl<E: Clone + Pairing> Clone for MultilinearKzgProof<E>
    where\n E::G1Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for Commitment<E>
    where\n E::G1Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for MultilinearProverParam<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for MultilinearUniversalParams<E>
    where\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for MultilinearVerifierParam<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateProverParam<E>
    where\n E::G1Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateUniversalParams<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateVerifierParam<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateKzgProof<E>
    where\n E::G1Affine: Clone,
    "],["impl<F: Clone + PrimeField> Clone for IOPTranscript<F>"]], "jf_plonk":[["impl<E: Clone + Pairing> Clone for VerifyingKeyVar<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for Instance<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for BatchProof<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for PlookupProof<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for PlookupProvingKey<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for PlookupVerifyingKey<E>"],["impl<E: Clone + Pairing> Clone for Proof<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for ProvingKey<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for VerifyingKey<E>
    where\n E::ScalarField: Clone,
    "],["impl<F: Clone + Field> Clone for PlookupEvaluations<F>"],["impl<F: Clone + Field> Clone for ProofEvaluations<F>"],["impl<F: Clone + PrimeField> Clone for BatchProofVar<F>"]], "jf_relation":[["impl Clone for MergeableCircuitType"],["impl Clone for PlonkType"],["impl Clone for BoolVar"],["impl Clone for PointVariable"],["impl Clone for AdditionGate"],["impl Clone for BoolGate"],["impl Clone for CondSelectGate"],["impl Clone for EqualityGate"],["impl Clone for FifthRootGate"],["impl Clone for IoGate"],["impl Clone for LogicOrGate"],["impl Clone for LogicOrOutputGate"],["impl Clone for MultiplicationGate"],["impl Clone for PaddingGate"],["impl Clone for SubtractionGate"],["impl<E: Clone + PrimeField> Clone for EmulatedSWPointVariable<E>"],["impl<E: Clone + PrimeField> Clone for EmulatedTEPointVariable<E>"],["impl<E: Clone + PrimeField> Clone for EmulatedVariable<E>"],["impl<F> Clone for PlonkCircuit<F>
    where\n F: FftField + Clone,
    "],["impl<F: Clone + Field> Clone for ConstantAdditionGate<F>"],["impl<F: Clone + Field> Clone for ConstantGate<F>"],["impl<F: Clone + Field> Clone for LinCombGate<F>"],["impl<F: Clone + Field> Clone for LookupGate<F>"],["impl<F: Clone + Field> Clone for MulAddGate<F>"],["impl<F: Clone + Field> Clone for QuadPolyGate<F>"],["impl<F: Clone + PrimeField> Clone for SWPoint<F>"],["impl<F: Clone + PrimeField> Clone for TEPoint<F>"],["impl<F: Clone + PrimeField> Clone for FpElem<F>"],["impl<F: Clone + PrimeField> Clone for FpElemVar<F>"],["impl<F: Clone + PrimeField> Clone for QuaternaryPointSelectXGate<F>"],["impl<F: Clone + PrimeField> Clone for QuaternaryPointSelectYGate<F>"],["impl<F: Clone> Clone for ConstantMultiplicationGate<F>"],["impl<F: Field> Clone for Box<dyn Gate<F>>"],["impl<P> Clone for CurvePointXAdditionGate<P>
    where\n P: Config,
    "],["impl<P> Clone for CurvePointYAdditionGate<P>
    where\n P: Config,
    "],["impl<P> Clone for EdwardsCurveEquationGate<P>
    where\n P: Config,
    "]], diff --git a/trait.impl/core/cmp/trait.Eq.js b/trait.impl/core/cmp/trait.Eq.js index a3091536d..9bd6058a1 100644 --- a/trait.impl/core/cmp/trait.Eq.js +++ b/trait.impl/core/cmp/trait.Eq.js @@ -1,7 +1,7 @@ (function() {var implementors = { "jf_aead":[["impl Eq for AEADError"],["impl Eq for Ciphertext"],["impl Eq for EncKey"]], "jf_elgamal":[["impl<P> Eq for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> Eq for EncKey<P>
    where\n P: Config,
    "]], -"jf_merkle_tree":[["impl Eq for MerkleTreeError"],["impl Eq for Sha3Digest"],["impl Eq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Eq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, I, const ARITY: usize, T> Eq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, I, const ARITY: usize, T> Eq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, const ARITY: usize, N, T> Eq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Eq,\n E: Element + Namespaced<Namespace = N> + Eq,\n T: NodeValue + Eq,\n N: Namespace + Eq,
    "],["impl<E, I, T, const ARITY: usize> Eq for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E: Eq + Element, I: Eq + Index, T: Eq + NodeValue> Eq for MerkleNode<E, I, T>"],["impl<F: Eq + RescueParameter> Eq for RescueHash<F>"],["impl<F: Eq + Field> Eq for Interval<F>"],["impl<F: Eq, P: Eq, N: Eq> Eq for LookupResult<F, P, N>"],["impl<H> Eq for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_merkle_tree":[["impl Eq for MerkleTreeError"],["impl Eq for Sha3Digest"],["impl Eq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Eq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, I, const ARITY: usize, T> Eq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, I, const ARITY: usize, T> Eq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, const ARITY: usize, N, T> Eq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Eq,\n E: Element + Namespaced<Namespace = N> + Eq,\n T: NodeValue + Eq,\n N: Namespace + Eq,
    "],["impl<E, I, T, const ARITY: usize> Eq for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E: Eq + Element, I: Eq + Index, T: Eq + NodeValue> Eq for MerkleNode<E, I, T>"],["impl<F: Eq + Field> Eq for Interval<F>"],["impl<F: Eq + RescueParameter> Eq for RescueHash<F>"],["impl<F: Eq, P: Eq, N: Eq> Eq for LookupResult<F, P, N>"],["impl<H> Eq for HasherNode<H>
    where\n H: Digest,
    "]], "jf_pcs":[["impl<E: Eq + Pairing> Eq for MultilinearKzgBatchProof<E>"],["impl<E: Eq + Pairing> Eq for MultilinearKzgProof<E>
    where\n E::G1Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for Commitment<E>
    where\n E::G1Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateProverParam<E>
    where\n E::G1Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateUniversalParams<E>
    where\n E::G1Affine: Eq,\n E::G2Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateVerifierParam<E>
    where\n E::G1Affine: Eq,\n E::G2Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateKzgProof<E>
    where\n E::G1Affine: Eq,
    "]], "jf_plonk":[["impl<E: Eq + Pairing> Eq for VerifyingKeyVar<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for BatchProof<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for PlookupProof<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for PlookupProvingKey<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for PlookupVerifyingKey<E>"],["impl<E: Eq + Pairing> Eq for Proof<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for ProvingKey<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for VerifyingKey<E>
    where\n E::ScalarField: Eq,
    "],["impl<F: Eq + Field> Eq for PlookupEvaluations<F>"],["impl<F: Eq + Field> Eq for ProofEvaluations<F>"],["impl<F: Eq + PrimeField> Eq for BatchProofVar<F>"]], "jf_relation":[["impl Eq for MergeableCircuitType"],["impl Eq for PlonkType"],["impl Eq for PointVariable"],["impl<F: Eq + PrimeField> Eq for SWPoint<F>"],["impl<F: Eq + PrimeField> Eq for TEPoint<F>"],["impl<F: Eq + PrimeField> Eq for FpElem<F>"],["impl<F: Eq + PrimeField> Eq for FpElemVar<F>"]], diff --git a/trait.impl/core/cmp/trait.PartialEq.js b/trait.impl/core/cmp/trait.PartialEq.js index f8d287eb5..1033100bc 100644 --- a/trait.impl/core/cmp/trait.PartialEq.js +++ b/trait.impl/core/cmp/trait.PartialEq.js @@ -1,7 +1,7 @@ (function() {var implementors = { "jf_aead":[["impl PartialEq for AEADError"],["impl PartialEq for Ciphertext"],["impl PartialEq for EncKey"],["impl PartialEq for KeyPair"]], "jf_elgamal":[["impl<P> PartialEq for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> PartialEq for KeyPair<P>
    where\n P: Config,
    "],["impl<P: Config> PartialEq for EncKey<P>"]], -"jf_merkle_tree":[["impl PartialEq for MerkleTreeError"],["impl PartialEq for Sha3Digest"],["impl PartialEq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> PartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, I, const ARITY: usize, T> PartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, I, const ARITY: usize, T> PartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, const ARITY: usize, N, T> PartialEq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + PartialEq,\n E: Element + Namespaced<Namespace = N> + PartialEq,\n T: NodeValue + PartialEq,\n N: Namespace + PartialEq,
    "],["impl<E, I, T, const ARITY: usize> PartialEq for MerkleProof<E, I, T, ARITY>
    where\n E: Element + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E: PartialEq + Element, I: PartialEq + Index, T: PartialEq + NodeValue> PartialEq for MerkleNode<E, I, T>"],["impl<F: PartialEq + RescueParameter> PartialEq for RescueHash<F>"],["impl<F: PartialEq + Field> PartialEq for Interval<F>"],["impl<F: PartialEq, P: PartialEq, N: PartialEq> PartialEq for LookupResult<F, P, N>"],["impl<H> PartialEq for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_merkle_tree":[["impl PartialEq for MerkleTreeError"],["impl PartialEq for Sha3Digest"],["impl PartialEq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> PartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, I, const ARITY: usize, T> PartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, I, const ARITY: usize, T> PartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, const ARITY: usize, N, T> PartialEq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + PartialEq,\n E: Element + Namespaced<Namespace = N> + PartialEq,\n T: NodeValue + PartialEq,\n N: Namespace + PartialEq,
    "],["impl<E, I, T, const ARITY: usize> PartialEq for MerkleProof<E, I, T, ARITY>
    where\n E: Element + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E: PartialEq + Element, I: PartialEq + Index, T: PartialEq + NodeValue> PartialEq for MerkleNode<E, I, T>"],["impl<F: PartialEq + Field> PartialEq for Interval<F>"],["impl<F: PartialEq + RescueParameter> PartialEq for RescueHash<F>"],["impl<F: PartialEq, P: PartialEq, N: PartialEq> PartialEq for LookupResult<F, P, N>"],["impl<H> PartialEq for HasherNode<H>
    where\n H: Digest,
    "]], "jf_pcs":[["impl<E: PartialEq + Pairing> PartialEq for MultilinearKzgBatchProof<E>"],["impl<E: PartialEq + Pairing> PartialEq for MultilinearKzgProof<E>
    where\n E::G1Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for Commitment<E>
    where\n E::G1Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateProverParam<E>
    where\n E::G1Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateUniversalParams<E>
    where\n E::G1Affine: PartialEq,\n E::G2Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateVerifierParam<E>
    where\n E::G1Affine: PartialEq,\n E::G2Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateKzgProof<E>
    where\n E::G1Affine: PartialEq,
    "]], "jf_plonk":[["impl<E> PartialEq for BatchProof<E>
    where\n E: PartialEq + Pairing,
    "],["impl<E> PartialEq for PlookupProof<E>
    where\n E: PartialEq + Pairing,
    "],["impl<E> PartialEq for Proof<E>
    where\n E: PartialEq + Pairing,
    "],["impl<E: PartialEq + Pairing> PartialEq for VerifyingKeyVar<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for PlookupProvingKey<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for PlookupVerifyingKey<E>"],["impl<E: PartialEq + Pairing> PartialEq for ProvingKey<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for VerifyingKey<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<F: PartialEq + Field> PartialEq for PlookupEvaluations<F>"],["impl<F: PartialEq + Field> PartialEq for ProofEvaluations<F>"],["impl<F: PartialEq + PrimeField> PartialEq for BatchProofVar<F>"]], "jf_relation":[["impl PartialEq for MergeableCircuitType"],["impl PartialEq for PlonkType"],["impl PartialEq for PointVariable"],["impl<F: PartialEq + PrimeField> PartialEq for SWPoint<F>"],["impl<F: PartialEq + PrimeField> PartialEq for TEPoint<F>"],["impl<F: PartialEq + PrimeField> PartialEq for FpElem<F>"],["impl<F: PartialEq + PrimeField> PartialEq for FpElemVar<F>"]], diff --git a/trait.impl/core/convert/trait.From.js b/trait.impl/core/convert/trait.From.js index 31879466b..1b5ff4854 100644 --- a/trait.impl/core/convert/trait.From.js +++ b/trait.impl/core/convert/trait.From.js @@ -1,9 +1,9 @@ (function() {var implementors = { "jf_aead":[["impl From<EncKey> for [u8; 32]"],["impl From<[u8; 32]> for EncKey"]], "jf_elgamal":[["impl<P> From<&EncKey<P>> for (P::BaseField, P::BaseField)
    where\n P: Config,
    "]], -"jf_merkle_tree":[["impl From<RescueError> for MerkleTreeError"],["impl<H> From<&HasherNode<H>> for TaggedBase64
    where\n H: Digest,
    "],["impl<H> From<HasherNode<H>> for TaggedBase64
    where\n H: Digest,
    "],["impl<H> From<GenericArray<u8, <H as OutputSizeUser>::OutputSize>> for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_merkle_tree":[["impl From<RescueError> for MerkleTreeError"],["impl<H> From<&HasherNode<H>> for TaggedBase64
    where\n H: Digest,
    "],["impl<H> From<HasherNode<H>> for TaggedBase64
    where\n H: Digest,
    "],["impl<H> From<GenericArray<u8, <H as OutputSizeUser>::OutputSize>> for HasherNode<H>
    where\n H: Digest,
    "]], "jf_pcs":[["impl From<TranscriptError> for PCSError"],["impl From<SerializationError> for PCSError"],["impl From<SerializationError> for TranscriptError"],["impl<T, E> From<T> for Commitment<E>
    where\n T: AffineRepr,\n E: Pairing<G1Affine = T>,
    "]], -"jf_plonk":[["impl From<PCSError> for PlonkError"],["impl From<PlonkError> for CircuitError"],["impl From<SnarkError> for PlonkError"],["impl From<CircuitError> for PlonkError"],["impl From<RescueError> for PlonkError"],["impl From<Error> for PlonkError"],["impl From<SerializationError> for PlonkError"],["impl<E, F, P1, P2> From<VerifyingKey<E>> for Vec<E::BaseField>
    where\n E: Pairing<G1Affine = Affine<P1>, G2Affine = Affine<P2>, TargetField = Fp2<F>>,\n F: Fp2Config<Fp = E::BaseField>,\n P1: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,\n P2: SWCurveConfig<BaseField = E::TargetField, ScalarField = E::ScalarField>,
    "],["impl<E, P> From<Proof<E>> for Vec<E::BaseField>
    where\n E: Pairing<G1Affine = Affine<P>>,\n P: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,
    "],["impl<E: Pairing> From<&BatchProof<E>> for TaggedBase64"],["impl<E: Pairing> From<&Proof<E>> for TaggedBase64"],["impl<E: Pairing> From<BatchProof<E>> for TaggedBase64"],["impl<E: Pairing> From<Proof<E>> for BatchProof<E>"],["impl<E: Pairing> From<Proof<E>> for TaggedBase64"],["impl<F: Field> From<ProofEvaluations<F>> for Vec<F>"]], +"jf_plonk":[["impl From<PlonkError> for CircuitError"],["impl From<SnarkError> for PlonkError"],["impl From<Error> for PlonkError"],["impl From<CircuitError> for PlonkError"],["impl From<PCSError> for PlonkError"],["impl From<RescueError> for PlonkError"],["impl From<SerializationError> for PlonkError"],["impl<E, F, P1, P2> From<VerifyingKey<E>> for Vec<E::BaseField>
    where\n E: Pairing<G1Affine = Affine<P1>, G2Affine = Affine<P2>, TargetField = Fp2<F>>,\n F: Fp2Config<Fp = E::BaseField>,\n P1: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,\n P2: SWCurveConfig<BaseField = E::TargetField, ScalarField = E::ScalarField>,
    "],["impl<E, P> From<Proof<E>> for Vec<E::BaseField>
    where\n E: Pairing<G1Affine = Affine<P>>,\n P: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,
    "],["impl<E: Pairing> From<&BatchProof<E>> for TaggedBase64"],["impl<E: Pairing> From<&Proof<E>> for TaggedBase64"],["impl<E: Pairing> From<BatchProof<E>> for TaggedBase64"],["impl<E: Pairing> From<Proof<E>> for BatchProof<E>"],["impl<E: Pairing> From<Proof<E>> for TaggedBase64"],["impl<F: Field> From<ProofEvaluations<F>> for Vec<F>"]], "jf_relation":[["impl From<BoolVar> for Variable"],["impl<F, P> From<TEPoint<F>> for Affine<P>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "],["impl<F, P> From<TEPoint<F>> for Projective<P>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "],["impl<F, P> From<Affine<P>> for SWPoint<F>
    where\n F: PrimeField,\n P: SWCurveConfig<BaseField = F>,
    "],["impl<F, P> From<Affine<P>> for TEPoint<F>
    where\n F: PrimeField + SWToTEConParam,\n P: SWParam<BaseField = F>,
    "],["impl<F, P> From<Affine<P>> for TEPoint<F>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "],["impl<F, P> From<Projective<P>> for TEPoint<F>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "]], "jf_rescue":[["impl<F: Copy> From<&[F; 4]> for RescueVector<F>"],["impl<F: Copy> From<&[F]> for RescueVector<F>"],["impl<F: RescueParameter> From<PRP<F>> for Permutation<F>"],["impl<F: PrimeField> From<&[RescueVector<F>; 4]> for RescueMatrix<F>"]], "jf_signature":[["impl From<BLST_ERROR> for SignatureError"]], diff --git a/trait.impl/core/fmt/trait.Debug.js b/trait.impl/core/fmt/trait.Debug.js index be218d61a..ec0903ce2 100644 --- a/trait.impl/core/fmt/trait.Debug.js +++ b/trait.impl/core/fmt/trait.Debug.js @@ -1,7 +1,7 @@ (function() {var implementors = { "jf_aead":[["impl Debug for AEADError"],["impl Debug for Ciphertext"],["impl Debug for EncKey"],["impl Debug for KeyPair"]], "jf_elgamal":[["impl Debug for ParameterError"],["impl<P> Debug for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> Debug for EncKey<P>
    where\n P: Config,
    "],["impl<P> Debug for KeyPair<P>
    where\n P: Config,
    "]], -"jf_merkle_tree":[["impl Debug for MerkleTreeError"],["impl Debug for Sha3Digest"],["impl Debug for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Debug for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, I, const ARITY: usize, T> Debug for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, I, const ARITY: usize, T> Debug for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, const ARITY: usize, N, T> Debug for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Debug,\n E: Element + Namespaced<Namespace = N> + Debug,\n T: NodeValue + Debug,\n N: Namespace + Debug,
    "],["impl<E, I, T, const ARITY: usize> Debug for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E: Debug + Element, I: Debug + Index, T: Debug + NodeValue> Debug for MerkleNode<E, I, T>"],["impl<F: Debug + RescueParameter> Debug for RescueHash<F>"],["impl<F: Debug, P: Debug, N: Debug> Debug for LookupResult<F, P, N>"],["impl<H> Debug for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_merkle_tree":[["impl Debug for MerkleTreeError"],["impl Debug for Sha3Digest"],["impl Debug for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Debug for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, I, const ARITY: usize, T> Debug for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, I, const ARITY: usize, T> Debug for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, const ARITY: usize, N, T> Debug for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Debug,\n E: Element + Namespaced<Namespace = N> + Debug,\n T: NodeValue + Debug,\n N: Namespace + Debug,
    "],["impl<E, I, T, const ARITY: usize> Debug for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E: Debug + Element, I: Debug + Index, T: Debug + NodeValue> Debug for MerkleNode<E, I, T>"],["impl<F: Debug + RescueParameter> Debug for RescueHash<F>"],["impl<F: Debug, P: Debug, N: Debug> Debug for LookupResult<F, P, N>"],["impl<H> Debug for HasherNode<H>
    where\n H: Digest,
    "]], "jf_pcs":[["impl Debug for PCSError"],["impl Debug for TranscriptError"],["impl<E: Debug + Pairing> Debug for MultilinearKzgBatchProof<E>"],["impl<E: Debug + Pairing> Debug for MultilinearKzgProof<E>
    where\n E::G1Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for Commitment<E>
    where\n E::G1Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for MultilinearProverParam<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for MultilinearUniversalParams<E>
    where\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for MultilinearVerifierParam<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateProverParam<E>
    where\n E::G1Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateUniversalParams<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateVerifierParam<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateKzgProof<E>
    where\n E::G1Affine: Debug,
    "]], "jf_plonk":[["impl Debug for PlonkError"],["impl Debug for SnarkError"],["impl<E: Debug + Pairing> Debug for VerifyingKeyVar<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for BatchProof<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for PlookupProof<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for PlookupProvingKey<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for PlookupVerifyingKey<E>"],["impl<E: Debug + Pairing> Debug for Proof<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for ProvingKey<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for VerifyingKey<E>
    where\n E::ScalarField: Debug,
    "],["impl<F: Debug + Field> Debug for PlookupEvaluations<F>"],["impl<F: Debug + Field> Debug for ProofEvaluations<F>"],["impl<F: Debug + PrimeField> Debug for BatchProofVar<F>"]], "jf_relation":[["impl Debug for MergeableCircuitType"],["impl Debug for PlonkType"],["impl Debug for CircuitError"],["impl Debug for BoolVar"],["impl Debug for PointVariable"],["impl Debug for AdditionGate"],["impl Debug for BoolGate"],["impl Debug for EqualityGate"],["impl Debug for FifthRootGate"],["impl Debug for IoGate"],["impl Debug for MultiplicationGate"],["impl Debug for PaddingGate"],["impl Debug for SubtractionGate"],["impl<E: Debug + PrimeField> Debug for EmulatedSWPointVariable<E>"],["impl<E: Debug + PrimeField> Debug for EmulatedTEPointVariable<E>"],["impl<E: Debug + PrimeField> Debug for EmulatedVariable<E>"],["impl<F> Debug for PlonkCircuit<F>
    where\n F: FftField + Debug,
    "],["impl<F: Debug + Field> Debug for ConstantAdditionGate<F>"],["impl<F: Debug + Field> Debug for ConstantGate<F>"],["impl<F: Debug + Field> Debug for LookupGate<F>"],["impl<F: Debug + PrimeField> Debug for SWPoint<F>"],["impl<F: Debug + PrimeField> Debug for TEPoint<F>"],["impl<F: Debug + PrimeField> Debug for FpElem<F>"],["impl<F: Debug + PrimeField> Debug for FpElemVar<F>"],["impl<F: Debug> Debug for ConstantMultiplicationGate<F>"],["impl<F: Field> Debug for dyn Gate<F> + 'static"]], diff --git a/trait.impl/core/marker/trait.Copy.js b/trait.impl/core/marker/trait.Copy.js index 4f5735b1f..6acab8df0 100644 --- a/trait.impl/core/marker/trait.Copy.js +++ b/trait.impl/core/marker/trait.Copy.js @@ -1,6 +1,6 @@ (function() {var implementors = { "jf_aead":[["impl Copy for AEADError"]], -"jf_merkle_tree":[["impl Copy for Sha3Node"],["impl<F: Copy + RescueParameter> Copy for RescueHash<F>"],["impl<F: Copy + Field> Copy for Interval<F>"],["impl<F: Copy, P: Copy, N: Copy> Copy for LookupResult<F, P, N>"],["impl<H> Copy for HasherNode<H>
    where\n H: Digest,\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Copy,
    "]], +"jf_merkle_tree":[["impl Copy for Sha3Node"],["impl<F: Copy + Field> Copy for Interval<F>"],["impl<F: Copy + RescueParameter> Copy for RescueHash<F>"],["impl<F: Copy, P: Copy, N: Copy> Copy for LookupResult<F, P, N>"],["impl<H> Copy for HasherNode<H>
    where\n H: Digest,\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Copy,
    "]], "jf_pcs":[["impl<E: Copy + Pairing> Copy for Commitment<E>
    where\n E::G1Affine: Copy,
    "]], "jf_relation":[["impl Copy for MergeableCircuitType"],["impl Copy for PlonkType"],["impl Copy for BoolVar"],["impl Copy for PointVariable"],["impl<F: Copy + PrimeField> Copy for SWPoint<F>"],["impl<F: Copy + PrimeField> Copy for TEPoint<F>"],["impl<F: Copy + PrimeField> Copy for FpElem<F>"],["impl<F: Copy + PrimeField> Copy for FpElemVar<F>"]], "jf_rescue":[["impl<F: Copy> Copy for RescueVector<F>"]], diff --git a/trait.impl/core/marker/trait.StructuralPartialEq.js b/trait.impl/core/marker/trait.StructuralPartialEq.js index b5fabb2b7..6628bcdce 100644 --- a/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,6 +1,6 @@ (function() {var implementors = { "jf_aead":[["impl StructuralPartialEq for AEADError"],["impl StructuralPartialEq for Ciphertext"]], -"jf_merkle_tree":[["impl StructuralPartialEq for MerkleTreeError"],["impl StructuralPartialEq for Sha3Digest"],["impl StructuralPartialEq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, const ARITY: usize, N, T> StructuralPartialEq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>,\n E: Element + Namespaced<Namespace = N>,\n T: NodeValue,\n N: Namespace,
    "],["impl<E: Element, I: Index, T: NodeValue> StructuralPartialEq for MerkleNode<E, I, T>"],["impl<F, P, N> StructuralPartialEq for LookupResult<F, P, N>"],["impl<F: RescueParameter> StructuralPartialEq for RescueHash<F>"],["impl<F: Field> StructuralPartialEq for Interval<F>"]], +"jf_merkle_tree":[["impl StructuralPartialEq for MerkleTreeError"],["impl StructuralPartialEq for Sha3Digest"],["impl StructuralPartialEq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, const ARITY: usize, N, T> StructuralPartialEq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>,\n E: Element + Namespaced<Namespace = N>,\n T: NodeValue,\n N: Namespace,
    "],["impl<E: Element, I: Index, T: NodeValue> StructuralPartialEq for MerkleNode<E, I, T>"],["impl<F, P, N> StructuralPartialEq for LookupResult<F, P, N>"],["impl<F: Field> StructuralPartialEq for Interval<F>"],["impl<F: RescueParameter> StructuralPartialEq for RescueHash<F>"]], "jf_pcs":[["impl<E: Pairing> StructuralPartialEq for MultilinearKzgBatchProof<E>"],["impl<E: Pairing> StructuralPartialEq for MultilinearKzgProof<E>"],["impl<E: Pairing> StructuralPartialEq for Commitment<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateProverParam<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateUniversalParams<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateVerifierParam<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateKzgProof<E>"]], "jf_plonk":[["impl<E: Pairing> StructuralPartialEq for VerifyingKeyVar<E>"],["impl<E: Pairing> StructuralPartialEq for PlookupProvingKey<E>"],["impl<E: Pairing> StructuralPartialEq for PlookupVerifyingKey<E>"],["impl<E: Pairing> StructuralPartialEq for ProvingKey<E>"],["impl<E: Pairing> StructuralPartialEq for VerifyingKey<E>"],["impl<F: Field> StructuralPartialEq for PlookupEvaluations<F>"],["impl<F: Field> StructuralPartialEq for ProofEvaluations<F>"],["impl<F: PrimeField> StructuralPartialEq for BatchProofVar<F>"]], "jf_relation":[["impl StructuralPartialEq for MergeableCircuitType"],["impl StructuralPartialEq for PlonkType"],["impl StructuralPartialEq for PointVariable"],["impl<F: PrimeField> StructuralPartialEq for SWPoint<F>"],["impl<F: PrimeField> StructuralPartialEq for TEPoint<F>"],["impl<F: PrimeField> StructuralPartialEq for FpElem<F>"],["impl<F: PrimeField> StructuralPartialEq for FpElemVar<F>"]], diff --git a/trait.impl/jf_commitment/trait.CommitmentScheme.js b/trait.impl/jf_commitment/trait.CommitmentScheme.js index f80b1b53a..babfef0ed 100644 --- a/trait.impl/jf_commitment/trait.CommitmentScheme.js +++ b/trait.impl/jf_commitment/trait.CommitmentScheme.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> CommitmentScheme for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"]] +"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> CommitmentScheme for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/jf_crhf/trait.CRHF.js b/trait.impl/jf_crhf/trait.CRHF.js index 8f148f9ce..26ce2181e 100644 --- a/trait.impl/jf_crhf/trait.CRHF.js +++ b/trait.impl/jf_crhf/trait.CRHF.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> CRHF for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: RescueParameter, const OUTPUT_LEN: usize> CRHF for VariableLengthRescueCRHF<F, OUTPUT_LEN>"]] +"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> CRHF for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: RescueParameter, const OUTPUT_LEN: usize> CRHF for VariableLengthRescueCRHF<F, OUTPUT_LEN>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/jf_prf/trait.PRF.js b/trait.impl/jf_prf/trait.PRF.js index 7c188f388..a2d71610c 100644 --- a/trait.impl/jf_prf/trait.PRF.js +++ b/trait.impl/jf_prf/trait.PRF.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> PRF for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>"]] +"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> PRF for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateProverParam.js b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateProverParam.js index ffb0444bf..ee2d28f12 100644 --- a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateProverParam.js +++ b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateProverParam.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_plonk":[["
    source§

    impl<E> CanonicalDeserialize for UnivariateProverParam<E>
    where\n E: Pairing,

    source§

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateProverParam<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> CanonicalSerialize for UnivariateProverParam<E>
    where\n E: Pairing,

    source§

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Clone for UnivariateProverParam<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,

    source§

    fn clone(&self) -> UnivariateProverParam<E>

    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
    ","Clone","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Debug for UnivariateProverParam<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Default for UnivariateProverParam<E>
    where\n E: Default + Pairing,\n <E as Pairing>::G1Affine: Default,

    source§

    fn default() -> UnivariateProverParam<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> PartialEq for UnivariateProverParam<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,

    source§

    fn eq(&self, other: &UnivariateProverParam<E>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Valid for UnivariateProverParam<E>
    where\n E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateProverParam<E>> + Send,\n) -> Result<(), SerializationError>
    where\n UnivariateProverParam<E>: 'a,

    ","Valid","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Eq for UnivariateProverParam<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> StructuralPartialEq for UnivariateProverParam<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::CommitKey"]] +"jf_plonk":[["
    §

    impl<E> CanonicalDeserialize for UnivariateProverParam<E>
    where\n E: Pairing,

    §

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateProverParam<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::CommitKey"],["
    §

    impl<E> CanonicalSerialize for UnivariateProverParam<E>
    where\n E: Pairing,

    §

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    §

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::CommitKey"],["
    §

    impl<E> Clone for UnivariateProverParam<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,

    §

    fn clone(&self) -> UnivariateProverParam<E>

    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
    ","Clone","jf_plonk::proof_system::structs::CommitKey"],["
    §

    impl<E> Debug for UnivariateProverParam<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,

    §

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

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::CommitKey"],["
    §

    impl<E> Default for UnivariateProverParam<E>
    where\n E: Default + Pairing,\n <E as Pairing>::G1Affine: Default,

    §

    fn default() -> UnivariateProverParam<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::CommitKey"],["
    §

    impl<E> PartialEq for UnivariateProverParam<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,

    §

    fn eq(&self, other: &UnivariateProverParam<E>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","jf_plonk::proof_system::structs::CommitKey"],["
    §

    impl<E> Valid for UnivariateProverParam<E>
    where\n E: Pairing,

    §

    fn check(&self) -> Result<(), SerializationError>

    §

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateProverParam<E>> + Send,\n) -> Result<(), SerializationError>
    where\n UnivariateProverParam<E>: 'a,

    ","Valid","jf_plonk::proof_system::structs::CommitKey"],["
    §

    impl<E> Eq for UnivariateProverParam<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::CommitKey"],["
    §

    impl<E> StructuralPartialEq for UnivariateProverParam<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::CommitKey"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateUniversalParams.js b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateUniversalParams.js index 45b936ed0..2d90346e9 100644 --- a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateUniversalParams.js +++ b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateUniversalParams.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_plonk":[["
    source§

    impl<E> CanonicalDeserialize for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateUniversalParams<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> CanonicalSerialize for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Clone for UnivariateUniversalParams<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,\n <E as Pairing>::G2Affine: Clone,

    source§

    fn clone(&self) -> UnivariateUniversalParams<E>

    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
    ","Clone","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Debug for UnivariateUniversalParams<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,\n <E as Pairing>::G2Affine: Debug,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Default for UnivariateUniversalParams<E>
    where\n E: Default + Pairing,\n <E as Pairing>::G1Affine: Default,\n <E as Pairing>::G2Affine: Default,

    source§

    fn default() -> UnivariateUniversalParams<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> PartialEq for UnivariateUniversalParams<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,\n <E as Pairing>::G2Affine: PartialEq,

    source§

    fn eq(&self, other: &UnivariateUniversalParams<E>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> StructuredReferenceString for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn extract_prover_param(\n &self,\n supported_degree: usize,\n) -> <UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam

    Extract the prover parameters from the public parameters.

    \n
    source§

    fn extract_verifier_param(\n &self,\n supported_degree: usize,\n) -> <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam

    Extract the verifier parameters from the public parameters.

    \n
    source§

    fn trim_with_verifier_degree(\n &self,\n prover_supported_degree: usize,\n verifier_supported_degree: usize,\n) -> Result<(<UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam, <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam), PCSError>

    Trim the universal parameters to specialize the public parameters\nfor univariate polynomials to the given supported_degree, and\nreturns committer key and verifier key. supported_degree should\nbe in range 1..params.len()

    \n
    source§

    fn trim(\n &self,\n supported_degree: usize,\n) -> Result<(<UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam, <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam), PCSError>

    Trim the universal parameters to specialize the public parameters\nfor univariate polynomials to the given supported_degree, and\nreturns committer key and verifier key. supported_degree should\nbe in range 1..params.len()

    \n
    §

    type ProverParam = UnivariateProverParam<E>

    Prover parameters
    §

    type VerifierParam = UnivariateVerifierParam<E>

    Verifier parameters
    source§

    fn load_srs_from_file(\n _supported_degree: usize,\n _file: Option<&str>,\n) -> Result<Self, PCSError>

    Load public parameter in production environment.\nThese parameters are loaded from files with serialized pp bytes, and\nthe actual setup is usually carried out via MPC and should be\nimplemented else where. We only load them into memory here. Read more
    ","StructuredReferenceString","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> UnivariateUniversalParams<E>
    where\n E: Pairing,

    source

    pub fn max_degree(&self) -> usize

    Returns the maximum supported degree

    \n
    ",0,"jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Valid for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateUniversalParams<E>> + Send,\n) -> Result<(), SerializationError>

    ","Valid","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Eq for UnivariateUniversalParams<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,\n <E as Pairing>::G2Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> StructuralPartialEq for UnivariateUniversalParams<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::UniversalSrs"]] +"jf_plonk":[["
    §

    impl<E> CanonicalDeserialize for UnivariateUniversalParams<E>
    where\n E: Pairing,

    §

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateUniversalParams<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::UniversalSrs"],["
    §

    impl<E> CanonicalSerialize for UnivariateUniversalParams<E>
    where\n E: Pairing,

    §

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    §

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::UniversalSrs"],["
    §

    impl<E> Clone for UnivariateUniversalParams<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,\n <E as Pairing>::G2Affine: Clone,

    §

    fn clone(&self) -> UnivariateUniversalParams<E>

    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
    ","Clone","jf_plonk::proof_system::structs::UniversalSrs"],["
    §

    impl<E> Debug for UnivariateUniversalParams<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,\n <E as Pairing>::G2Affine: Debug,

    §

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

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::UniversalSrs"],["
    §

    impl<E> Default for UnivariateUniversalParams<E>
    where\n E: Default + Pairing,\n <E as Pairing>::G1Affine: Default,\n <E as Pairing>::G2Affine: Default,

    §

    fn default() -> UnivariateUniversalParams<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::UniversalSrs"],["
    §

    impl<E> PartialEq for UnivariateUniversalParams<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,\n <E as Pairing>::G2Affine: PartialEq,

    §

    fn eq(&self, other: &UnivariateUniversalParams<E>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","jf_plonk::proof_system::structs::UniversalSrs"],["
    §

    impl<E> StructuredReferenceString for UnivariateUniversalParams<E>
    where\n E: Pairing,

    §

    fn extract_prover_param(\n &self,\n supported_degree: usize,\n) -> <UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam

    Extract the prover parameters from the public parameters.

    \n
    §

    fn extract_verifier_param(\n &self,\n supported_degree: usize,\n) -> <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam

    Extract the verifier parameters from the public parameters.

    \n
    §

    fn trim_with_verifier_degree(\n &self,\n prover_supported_degree: usize,\n verifier_supported_degree: usize,\n) -> Result<(<UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam, <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam), PCSError>

    Trim the universal parameters to specialize the public parameters\nfor univariate polynomials to the given supported_degree, and\nreturns committer key and verifier key. supported_degree should\nbe in range 1..params.len()

    \n
    §

    fn trim(\n &self,\n supported_degree: usize,\n) -> Result<(<UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam, <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam), PCSError>

    Trim the universal parameters to specialize the public parameters\nfor univariate polynomials to the given supported_degree, and\nreturns committer key and verifier key. supported_degree should\nbe in range 1..params.len()

    \n
    §

    type ProverParam = UnivariateProverParam<E>

    Prover parameters
    §

    type VerifierParam = UnivariateVerifierParam<E>

    Verifier parameters
    §

    fn load_srs_from_file(\n _supported_degree: usize,\n _file: Option<&str>,\n) -> Result<Self, PCSError>

    Load public parameter in production environment.\nThese parameters are loaded from files with serialized pp bytes, and\nthe actual setup is usually carried out via MPC and should be\nimplemented else where. We only load them into memory here. Read more
    ","StructuredReferenceString","jf_plonk::proof_system::structs::UniversalSrs"],["
    §

    impl<E> UnivariateUniversalParams<E>
    where\n E: Pairing,

    pub fn max_degree(&self) -> usize

    Returns the maximum supported degree

    \n
    ",0,"jf_plonk::proof_system::structs::UniversalSrs"],["
    §

    impl<E> Valid for UnivariateUniversalParams<E>
    where\n E: Pairing,

    §

    fn check(&self) -> Result<(), SerializationError>

    §

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateUniversalParams<E>> + Send,\n) -> Result<(), SerializationError>
    where\n UnivariateUniversalParams<E>: 'a,

    ","Valid","jf_plonk::proof_system::structs::UniversalSrs"],["
    §

    impl<E> Eq for UnivariateUniversalParams<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,\n <E as Pairing>::G2Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::UniversalSrs"],["
    §

    impl<E> StructuralPartialEq for UnivariateUniversalParams<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::UniversalSrs"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateVerifierParam.js b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateVerifierParam.js index 41dead1b4..95d22af94 100644 --- a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateVerifierParam.js +++ b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateVerifierParam.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_plonk":[["
    source§

    impl<E> CanonicalDeserialize for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateVerifierParam<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> CanonicalSerialize for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Clone for UnivariateVerifierParam<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,\n <E as Pairing>::G2Affine: Clone,

    source§

    fn clone(&self) -> UnivariateVerifierParam<E>

    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
    ","Clone","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Debug for UnivariateVerifierParam<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,\n <E as Pairing>::G2Affine: Debug,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Default for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn default() -> UnivariateVerifierParam<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> PartialEq for UnivariateVerifierParam<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,\n <E as Pairing>::G2Affine: PartialEq,

    source§

    fn eq(&self, other: &UnivariateVerifierParam<E>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Valid for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateVerifierParam<E>> + Send,\n) -> Result<(), SerializationError>
    where\n UnivariateVerifierParam<E>: 'a,

    ","Valid","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Eq for UnivariateVerifierParam<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,\n <E as Pairing>::G2Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> StructuralPartialEq for UnivariateVerifierParam<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::OpenKey"]] +"jf_plonk":[["
    §

    impl<E> CanonicalDeserialize for UnivariateVerifierParam<E>
    where\n E: Pairing,

    §

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateVerifierParam<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::OpenKey"],["
    §

    impl<E> CanonicalSerialize for UnivariateVerifierParam<E>
    where\n E: Pairing,

    §

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    §

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::OpenKey"],["
    §

    impl<E> Clone for UnivariateVerifierParam<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,\n <E as Pairing>::G2Affine: Clone,

    §

    fn clone(&self) -> UnivariateVerifierParam<E>

    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
    ","Clone","jf_plonk::proof_system::structs::OpenKey"],["
    §

    impl<E> Debug for UnivariateVerifierParam<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,\n <E as Pairing>::G2Affine: Debug,

    §

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

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::OpenKey"],["
    §

    impl<E> Default for UnivariateVerifierParam<E>
    where\n E: Pairing,

    §

    fn default() -> UnivariateVerifierParam<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::OpenKey"],["
    §

    impl<E> PartialEq for UnivariateVerifierParam<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,\n <E as Pairing>::G2Affine: PartialEq,

    §

    fn eq(&self, other: &UnivariateVerifierParam<E>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","jf_plonk::proof_system::structs::OpenKey"],["
    §

    impl<E> Valid for UnivariateVerifierParam<E>
    where\n E: Pairing,

    §

    fn check(&self) -> Result<(), SerializationError>

    §

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateVerifierParam<E>> + Send,\n) -> Result<(), SerializationError>
    where\n UnivariateVerifierParam<E>: 'a,

    ","Valid","jf_plonk::proof_system::structs::OpenKey"],["
    §

    impl<E> Eq for UnivariateVerifierParam<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,\n <E as Pairing>::G2Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::OpenKey"],["
    §

    impl<E> StructuralPartialEq for UnivariateVerifierParam<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::OpenKey"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/jf_vid/advz/struct.AdvzInternal.js b/type.impl/jf_vid/advz/struct.AdvzInternal.js index 551f840fd..cef77c9ec 100644 --- a/type.impl/jf_vid/advz/struct.AdvzInternal.js +++ b/type.impl/jf_vid/advz/struct.AdvzInternal.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_vid":[["
    source§

    impl<E, H: Clone, T> Clone for AdvzInternal<E, H, T>
    where\n E: Pairing + Clone,\n T: Sync + Clone,

    source§

    fn clone(&self) -> AdvzInternal<E, H, T>

    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
    ","Clone","jf_vid::advz::Advz"],["
    source§

    impl<E, H: Debug, T> Debug for AdvzInternal<E, H, T>
    where\n E: Pairing + Debug,\n T: Sync + Debug,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","jf_vid::advz::Advz"],["
    source§

    impl<E, H: PartialEq, T> PartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing + PartialEq,\n T: Sync + PartialEq,

    source§

    fn eq(&self, other: &AdvzInternal<E, H, T>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>(\n &self,\n payload: B,\n range: Range<usize>,\n) -> VidResult<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>>
    where\n B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify(\n &self,\n stmt: Statement<'_, Self>,\n proof: &LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>,\n) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    ","PayloadProver as PolynomialCommitmentScheme>::Evaluation>>","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>(\n &self,\n payload: B,\n range: Range<usize>,\n) -> VidResult<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>>
    where\n B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify(\n &self,\n stmt: Statement<'_, Self>,\n proof: &SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>,\n) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    ","PayloadProver as PolynomialCommitmentScheme>::Proof>>","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> Precomputable for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type PrecomputeData = PrecomputeData<E>

    Precomputed data that can be (re-)used during disperse computation
    source§

    fn commit_only_precompute<B>(\n &self,\n payload: B,\n) -> VidResult<(Self::Commit, Self::PrecomputeData)>
    where\n B: AsRef<[u8]>,

    Similar to VidScheme::commit_only but returns additional data that\ncan be used as input to disperse_precompute for faster dispersal.
    source§

    fn disperse_precompute<B>(\n &self,\n payload: B,\n data: &Self::PrecomputeData,\n) -> VidResult<VidDisperse<Self>>
    where\n B: AsRef<[u8]>,

    Similar to VidScheme::disperse but takes as input additional\ndata for more efficient computation and faster disersal.
    ","Precomputable","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type Commit = HasherNode<H>

    Payload commitment.
    §

    type Share = Share<E, H>

    Share-specific data sent to a storage node.
    §

    type Common = Common<E, H>

    Common data sent to all storage nodes.
    source§

    fn commit_only<B>(&mut self, payload: B) -> VidResult<Self::Commit>
    where\n B: AsRef<[u8]>,

    Compute a payload commitment
    source§

    fn disperse<B>(&mut self, payload: B) -> VidResult<VidDisperse<Self>>
    where\n B: AsRef<[u8]>,

    Compute shares to send to the storage nodes
    source§

    fn verify_share(\n &self,\n share: &Self::Share,\n common: &Self::Common,\n commit: &Self::Commit,\n) -> VidResult<Result<(), ()>>

    Verify a share. Used by both storage node and retrieval client.\nWhy is return type a nested Result? See https://sled.rs/errors\nReturns: Read more
    source§

    fn recover_payload(\n &self,\n shares: &[Self::Share],\n common: &Self::Common,\n) -> VidResult<Vec<u8>>

    Recover payload from shares.\nDo not verify shares or check recovered payload against anything.
    source§

    fn is_consistent(commit: &Self::Commit, common: &Self::Common) -> VidResult<()>

    Check that a VidScheme::Common is consistent with a\nVidScheme::Commit. Read more
    source§

    fn get_payload_byte_len(common: &Self::Common) -> u32

    Extract the payload byte length data from a VidScheme::Common.
    source§

    fn get_num_storage_nodes(common: &Self::Common) -> u32

    Extract the number of storage nodes from a VidScheme::Common.
    source§

    fn get_multiplicity(common: &Self::Common) -> u32

    Extract the number of poly evals per share VidScheme::Common.
    ","VidScheme","jf_vid::advz::Advz"],["
    source§

    impl<E, H: Eq, T> Eq for AdvzInternal<E, H, T>
    where\n E: Pairing + Eq,\n T: Sync + Eq,

    ","Eq","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> StructuralPartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing,\n T: Sync,

    ","StructuralPartialEq","jf_vid::advz::Advz"]] +"jf_vid":[["
    source§

    impl<E, H: Clone, T> Clone for AdvzInternal<E, H, T>
    where\n E: Pairing + Clone,\n T: Sync + Clone,

    source§

    fn clone(&self) -> AdvzInternal<E, H, T>

    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
    ","Clone","jf_vid::advz::Advz"],["
    source§

    impl<E, H: Debug, T> Debug for AdvzInternal<E, H, T>
    where\n E: Pairing + Debug,\n T: Sync + Debug,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","jf_vid::advz::Advz"],["
    source§

    impl<E, H: PartialEq, T> PartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing + PartialEq,\n T: Sync + PartialEq,

    source§

    fn eq(&self, other: &AdvzInternal<E, H, T>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>(\n &self,\n payload: B,\n range: Range<usize>,\n) -> VidResult<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>>
    where\n B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify(\n &self,\n stmt: Statement<'_, Self>,\n proof: &LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>,\n) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    ","PayloadProver as PolynomialCommitmentScheme>::Evaluation>>","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>(\n &self,\n payload: B,\n range: Range<usize>,\n) -> VidResult<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>>
    where\n B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify(\n &self,\n stmt: Statement<'_, Self>,\n proof: &SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>,\n) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    ","PayloadProver as PolynomialCommitmentScheme>::Proof>>","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> Precomputable for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type PrecomputeData = PrecomputeData<E>

    Precomputed data that can be (re-)used during disperse computation
    source§

    fn commit_only_precompute<B>(\n &self,\n payload: B,\n) -> VidResult<(Self::Commit, Self::PrecomputeData)>
    where\n B: AsRef<[u8]>,

    Similar to VidScheme::commit_only but returns additional data that\ncan be used as input to disperse_precompute for faster dispersal.
    source§

    fn disperse_precompute<B>(\n &self,\n payload: B,\n data: &Self::PrecomputeData,\n) -> VidResult<VidDisperse<Self>>
    where\n B: AsRef<[u8]>,

    Similar to VidScheme::disperse but takes as input additional\ndata for more efficient computation and faster disersal.
    ","Precomputable","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type Commit = HasherNode<H>

    Payload commitment.
    §

    type Share = Share<E, H>

    Share-specific data sent to a storage node.
    §

    type Common = Common<E, H>

    Common data sent to all storage nodes.
    source§

    fn commit_only<B>(&mut self, payload: B) -> VidResult<Self::Commit>
    where\n B: AsRef<[u8]>,

    Compute a payload commitment
    source§

    fn disperse<B>(&mut self, payload: B) -> VidResult<VidDisperse<Self>>
    where\n B: AsRef<[u8]>,

    Compute shares to send to the storage nodes
    source§

    fn verify_share(\n &self,\n share: &Self::Share,\n common: &Self::Common,\n commit: &Self::Commit,\n) -> VidResult<Result<(), ()>>

    Verify a share. Used by both storage node and retrieval client.\nWhy is return type a nested Result? See https://sled.rs/errors\nReturns: Read more
    source§

    fn recover_payload(\n &self,\n shares: &[Self::Share],\n common: &Self::Common,\n) -> VidResult<Vec<u8>>

    Recover payload from shares.\nDo not verify shares or check recovered payload against anything.
    source§

    fn is_consistent(commit: &Self::Commit, common: &Self::Common) -> VidResult<()>

    Check that a VidScheme::Common is consistent with a\nVidScheme::Commit. Read more
    source§

    fn get_payload_byte_len(common: &Self::Common) -> u32

    Extract the payload byte length data from a VidScheme::Common.
    source§

    fn get_num_storage_nodes(common: &Self::Common) -> u32

    Extract the number of storage nodes from a VidScheme::Common.
    source§

    fn get_multiplicity(common: &Self::Common) -> u32

    Extract the number of poly evals per share VidScheme::Common.
    ","VidScheme","jf_vid::advz::Advz"],["
    source§

    impl<E, H: Eq, T> Eq for AdvzInternal<E, H, T>
    where\n E: Pairing + Eq,\n T: Sync + Eq,

    ","Eq","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> StructuralPartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing,\n T: Sync,

    ","StructuralPartialEq","jf_vid::advz::Advz"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file