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<()>;
}