update the API
changelog
- rename the encodefunction toproveand have it take shards instead of an encoding matrix: this is to isolate the "encoding" process inside thefecmodule and leave the mainkomodo::proveonly compute the "proof", i.e. the commits of the data
from
fn encode<F, G, P>(
    bytes: &[u8],
    encoding_mat: &Matrix<F>,
    powers: &Powers<F, G>,
) -> Result<Vec<Block<F, G>>, KomodoError>to
fn prove<F, G, P>(
    bytes: &[u8],
    powers: &Powers<F, G>,
    k: usize,
) -> Result<Vec<Commitment<F, G>>, KomodoError>- rename fec::Shard.combinetofec::Shard.recode_withto get rid of "combine"
- rename fec::recodetofec::recode_with_coeffsto show that this version takes a list of coefficients
- rename Block.committoBlock.proof: "commit" should be "commits" and it's usually refered to as "proof"
- split provefurther intoproveandbuild:provenow outputs aVec<Commitment<F>>,buildsimply takes aVec<Shard<F>>and aVec<Commitment<F>>and outputs aVec<Block<F>>
- add fec::recode_randomthat does the "shard" part ofrecodeto wrap aroundfec::recode_with_coeffs
- remove R: RngCorefrom the signature ofzk::setup, to avoid having to pass a generic_annotation everywherezk::setupis used, same change has been applied torecodeand thegenerate_random_powersinmain.rs
from
fn setup<R: RngCore, F: PrimeField, G: CurveGroup<ScalarField = F>>(
    max_degree: usize,
    rng: &mut R,
) -> Result<Powers<F, G>, KomodoError> {to
fn setup<F: PrimeField, G: CurveGroup<ScalarField = F>>(
    max_degree: usize,
    rng: &mut impl RngCore,
) -> Result<Powers<F, G>, KomodoError> {some extra minor changes
- remove some useles generic type annotations, e.g. prove::<F, G, P>can become a simplerprovemost of the time, i.e. when there is at least one generic annotation somewhere in the scope
Edited  by STEVAN Antoine