Skip to content
Snippets Groups Projects

update the API

Merged STEVAN Antoine requested to merge work-on-api into main

changelog

  • rename the encode function to prove and have it take shards instead of an encoding matrix: this is to isolate the "encoding" process inside the fec module and leave the main komodo::prove only 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.combine to fec::Shard.recode_with to get rid of "combine"
  • rename fec::recode to fec::recode_with_coeffs to show that this version takes a list of coefficients
  • rename Block.commit to Block.proof: "commit" should be "commits" and it's usually refered to as "proof"
  • split prove further into prove and build: prove now outputs a Vec<Commitment<F>>, build simply takes a Vec<Shard<F>> and a Vec<Commitment<F>> and outputs a Vec<Block<F>>
  • add fec::recode_random that does the "shard" part of recode to wrap around fec::recode_with_coeffs
  • remove R: RngCore from the signature of zk::setup, to avoid having to pass a generic _ annotation everywhere zk::setup is used, same change has been applied to recode and the generate_random_powers in main.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 simpler prove most of the time, i.e. when there is at least one generic annotation somewhere in the scope
Edited by STEVAN Antoine

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply