openvm_stark_sdk::engine

Trait StarkFriEngine

Source
pub trait StarkFriEngine<SC: StarkGenericConfig>: StarkEngine<SC> + Sized {
    // Required methods
    fn new(fri_parameters: FriParameters) -> Self;
    fn fri_params(&self) -> FriParameters;

    // Provided methods
    fn run_test(
        &self,
        air_proof_inputs: Vec<AirProofInput<SC>>,
    ) -> Result<VerificationDataWithFriParams<SC>, VerificationError>
       where AirProofInput<SC>: Send + Sync { ... }
    fn run_test_fast(
        air_proof_inputs: Vec<AirProofInput<SC>>,
    ) -> Result<VerificationDataWithFriParams<SC>, VerificationError>
       where AirProofInput<SC>: Send + Sync { ... }
    fn run_simple_test_impl(
        &self,
        chips: Vec<Arc<dyn AnyRap<SC>>>,
        traces: Vec<DenseMatrix<Val<SC>>>,
        public_values: Vec<Vec<Val<SC>>>,
    ) -> Result<VerificationDataWithFriParams<SC>, VerificationError>
       where AirProofInput<SC>: Send + Sync { ... }
    fn run_simple_test_fast(
        chips: Vec<Arc<dyn AnyRap<SC>>>,
        traces: Vec<DenseMatrix<Val<SC>>>,
        public_values: Vec<Vec<Val<SC>>>,
    ) -> Result<VerificationDataWithFriParams<SC>, VerificationError> { ... }
    fn run_simple_test_no_pis_fast(
        chips: Vec<Arc<dyn AnyRap<SC>>>,
        traces: Vec<DenseMatrix<Val<SC>>>,
    ) -> Result<VerificationDataWithFriParams<SC>, VerificationError> { ... }
}
Expand description

Stark engine using Fri.

Required Methods§

Source

fn new(fri_parameters: FriParameters) -> Self

Source

fn fri_params(&self) -> FriParameters

Provided Methods§

Source

fn run_test( &self, air_proof_inputs: Vec<AirProofInput<SC>>, ) -> Result<VerificationDataWithFriParams<SC>, VerificationError>
where AirProofInput<SC>: Send + Sync,

Source

fn run_test_fast( air_proof_inputs: Vec<AirProofInput<SC>>, ) -> Result<VerificationDataWithFriParams<SC>, VerificationError>
where AirProofInput<SC>: Send + Sync,

Source

fn run_simple_test_impl( &self, chips: Vec<Arc<dyn AnyRap<SC>>>, traces: Vec<DenseMatrix<Val<SC>>>, public_values: Vec<Vec<Val<SC>>>, ) -> Result<VerificationDataWithFriParams<SC>, VerificationError>
where AirProofInput<SC>: Send + Sync,

Source

fn run_simple_test_fast( chips: Vec<Arc<dyn AnyRap<SC>>>, traces: Vec<DenseMatrix<Val<SC>>>, public_values: Vec<Vec<Val<SC>>>, ) -> Result<VerificationDataWithFriParams<SC>, VerificationError>

Source

fn run_simple_test_no_pis_fast( chips: Vec<Arc<dyn AnyRap<SC>>>, traces: Vec<DenseMatrix<Val<SC>>>, ) -> Result<VerificationDataWithFriParams<SC>, VerificationError>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl StarkFriEngine<StarkConfig<TwoAdicFriPcs<MontyField31<BabyBearParameters>, Radix2DitParallel<MontyField31<BabyBearParameters>>, MerkleTreeMmcs<<MontyField31<BabyBearParameters> as Field>::Packing, <MontyField31<BabyBearParameters> as Field>::Packing, PaddingFreeSponge<Poseidon2<<MontyField31<BabyBearParameters> as Field>::Packing, Poseidon2ExternalLayerMonty31<BabyBearParameters, WIDTH>, Poseidon2InternalLayerMonty31<BabyBearParameters, WIDTH, BabyBearInternalLayerParameters>, WIDTH, p3_baby_bear::::poseidon2::Poseidon2BabyBear::{constant#0}>, WIDTH, RATE, DIGEST_WIDTH>, TruncatedPermutation<Poseidon2<<MontyField31<BabyBearParameters> as Field>::Packing, Poseidon2ExternalLayerMonty31<BabyBearParameters, WIDTH>, Poseidon2InternalLayerMonty31<BabyBearParameters, WIDTH, BabyBearInternalLayerParameters>, WIDTH, p3_baby_bear::::poseidon2::Poseidon2BabyBear::{constant#0}>, 2, DIGEST_WIDTH, WIDTH>, DIGEST_WIDTH>, ExtensionMmcs<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MerkleTreeMmcs<<MontyField31<BabyBearParameters> as Field>::Packing, <MontyField31<BabyBearParameters> as Field>::Packing, PaddingFreeSponge<Poseidon2<<MontyField31<BabyBearParameters> as Field>::Packing, Poseidon2ExternalLayerMonty31<BabyBearParameters, WIDTH>, Poseidon2InternalLayerMonty31<BabyBearParameters, WIDTH, BabyBearInternalLayerParameters>, WIDTH, p3_baby_bear::::poseidon2::Poseidon2BabyBear::{constant#0}>, WIDTH, RATE, DIGEST_WIDTH>, TruncatedPermutation<Poseidon2<<MontyField31<BabyBearParameters> as Field>::Packing, Poseidon2ExternalLayerMonty31<BabyBearParameters, WIDTH>, Poseidon2InternalLayerMonty31<BabyBearParameters, WIDTH, BabyBearInternalLayerParameters>, WIDTH, p3_baby_bear::::poseidon2::Poseidon2BabyBear::{constant#0}>, 2, DIGEST_WIDTH, WIDTH>, DIGEST_WIDTH>>>, StarkLogUpPhase<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, DuplexChallenger<MontyField31<BabyBearParameters>, Poseidon2<<MontyField31<BabyBearParameters> as Field>::Packing, Poseidon2ExternalLayerMonty31<BabyBearParameters, WIDTH>, Poseidon2InternalLayerMonty31<BabyBearParameters, WIDTH, BabyBearInternalLayerParameters>, WIDTH, p3_baby_bear::::poseidon2::Poseidon2BabyBear::{constant#0}>, WIDTH, RATE>>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, DuplexChallenger<MontyField31<BabyBearParameters>, Poseidon2<<MontyField31<BabyBearParameters> as Field>::Packing, Poseidon2ExternalLayerMonty31<BabyBearParameters, WIDTH>, Poseidon2InternalLayerMonty31<BabyBearParameters, WIDTH, BabyBearInternalLayerParameters>, WIDTH, p3_baby_bear::::poseidon2::Poseidon2BabyBear::{constant#0}>, WIDTH, RATE>>> for BabyBearPoseidon2Engine

Source§

impl StarkFriEngine<StarkConfig<TwoAdicFriPcs<MontyField31<BabyBearParameters>, Radix2DitParallel<MontyField31<BabyBearParameters>>, MerkleTreeMmcs<MontyField31<BabyBearParameters>, Bn254Fr, MultiField32PaddingFreeSponge<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, WIDTH>, Poseidon2InternalLayerBn254, WIDTH, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, WIDTH, RATE, DIGEST_WIDTH>, TruncatedPermutation<Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, WIDTH>, Poseidon2InternalLayerBn254, WIDTH, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, 2, 1, WIDTH>, 1>, ExtensionMmcs<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MerkleTreeMmcs<MontyField31<BabyBearParameters>, Bn254Fr, MultiField32PaddingFreeSponge<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, WIDTH>, Poseidon2InternalLayerBn254, WIDTH, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, WIDTH, RATE, DIGEST_WIDTH>, TruncatedPermutation<Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, WIDTH>, Poseidon2InternalLayerBn254, WIDTH, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, 2, 1, WIDTH>, 1>>>, StarkLogUpPhase<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MultiField32Challenger<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, WIDTH>, Poseidon2InternalLayerBn254, WIDTH, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, WIDTH, 2>>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MultiField32Challenger<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, WIDTH>, Poseidon2InternalLayerBn254, WIDTH, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, WIDTH, 2>>> for BabyBearPoseidon2RootEngine

Source§

impl<H: CryptographicHasher<u8, [u8; 32]> + Clone + Send + Sync> StarkFriEngine<StarkConfig<TwoAdicFriPcs<MontyField31<BabyBearParameters>, Radix2DitParallel<MontyField31<BabyBearParameters>>, MerkleTreeMmcs<MontyField31<BabyBearParameters>, u8, SerializingHasher32<H>, CompressionFunctionFromHasher<H, 2, 32>, 32>, ExtensionMmcs<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MerkleTreeMmcs<MontyField31<BabyBearParameters>, u8, SerializingHasher32<H>, CompressionFunctionFromHasher<H, 2, 32>, 32>>>, StarkLogUpPhase<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, SerializingChallenger32<MontyField31<BabyBearParameters>, HashChallenger<u8, H, 32>>>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, SerializingChallenger32<MontyField31<BabyBearParameters>, HashChallenger<u8, H, 32>>>> for BabyBearByteHashEngine<H>