Skip to main content

ProverBackend

Trait ProverBackend 

Source
pub trait ProverBackend {
    type Val: Copy + Send + Sync + Serialize + DeserializeOwned;
    type Challenge: Copy + Send + Sync + Serialize + DeserializeOwned;
    type Commitment: Clone + Send + Sync + Serialize + DeserializeOwned;
    type Matrix: MatrixDimensions + Send + Sync;
    type OtherAirData: Send + Sync;
    type PcsData: Send + Sync;

    const CHALLENGE_EXT_DEGREE: u8;
}
Expand description

Associated types needed by the prover, in the form of buffers and views, specific to a specific hardware backend.

Memory allocation and copying is not handled by this trait.

Required Associated Constants§

Source

const CHALLENGE_EXT_DEGREE: u8

Extension field degree for the challenge field Self::Challenge over base field Self::Val.

Required Associated Types§

Source

type Val: Copy + Send + Sync + Serialize + DeserializeOwned

Base field type, on host.

Source

type Challenge: Copy + Send + Sync + Serialize + DeserializeOwned

Challenge field (extension field of base field), on host.

Source

type Commitment: Clone + Send + Sync + Serialize + DeserializeOwned

Single commitment on host.

Source

type Matrix: MatrixDimensions + Send + Sync

Single matrix buffer on device together with dimension metadata. Owning this means nothing else has a shared reference to the buffer.

Source

type OtherAirData: Send + Sync

Backend specific type for any pre-computed data associated with a single AIR. For example, it may contain prover-specific precomputations based on the AIR constraints (but independent from any trace data).

Source

type PcsData: Send + Sync

Owned buffer for the preimage of a PCS commitment on device, together with any metadata necessary for computing opening proofs.

For example, multiple buffers for LDE matrices, their trace domain sizes, and pointer to mixed merkle tree.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§