1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
#![deny(clippy::all, clippy::perf, clippy::correctness, rust_2018_idioms)] #![warn(clippy::unwrap_used)] #![cfg_attr(target_arch = "aarch64", feature(stdsimd))] #![warn(clippy::unnecessary_wraps)] use std::path::PathBuf; use filecoin_hashers::Hasher; use merkletree::store::StoreConfig; use storage_proofs_core::{error::Result, merkle::BinaryMerkleTree, proof::ProofScheme, Data}; pub mod drg; pub mod stacked; mod encode; pub const MAX_LEGACY_POREP_REGISTERED_PROOF_ID: u64 = 4; pub trait PoRep<'a, H: Hasher, G: Hasher>: ProofScheme<'a> { type Tau; type ProverAux; fn replicate( pub_params: &'a Self::PublicParams, replica_id: &H::Domain, data: Data<'a>, data_tree: Option<BinaryMerkleTree<G>>, config: StoreConfig, replica_path: PathBuf, ) -> Result<(Self::Tau, Self::ProverAux)>; fn extract_all( pub_params: &'a Self::PublicParams, replica_id: &H::Domain, data: &mut [u8], config: Option<StoreConfig>, ) -> Result<()>; fn extract( pub_params: &'a Self::PublicParams, replica_id: &H::Domain, data: &mut [u8], node: usize, config: Option<StoreConfig>, ) -> Result<()>; }