Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • dragoon/komodo
  • a.stevan/komodo
  • c.heme/komodo
3 results
Show changes
Commits on Source (2)
use ark_bls12_381::Fr;
use ark_ff::PrimeField;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use komodo::linalg::Matrix;
......
use ark_bls12_381::Fr;
use ark_ff::PrimeField;
use criterion::{criterion_group, criterion_main, Criterion};
use rand::Rng;
use komodo::{
......@@ -8,8 +9,6 @@ use komodo::{
field,
};
use criterion::{criterion_group, criterion_main, Criterion};
fn to_curve<F: PrimeField>(n: u128) -> F {
F::from_le_bytes_mod_order(&n.to_le_bytes())
}
......
use std::ops::Div;
use ark_bls12_381::{Fr, G1Projective};
use ark_ec::CurveGroup;
use ark_ff::PrimeField;
use ark_poly::univariate::DensePolynomial;
use ark_poly::DenseUVPolynomial;
use ark_poly::{univariate::DensePolynomial, DenseUVPolynomial};
use ark_serialize::{CanonicalDeserialize, CanonicalSerialize, Compress, Validate};
use ark_std::test_rng;
use ark_std::{ops::Div, test_rng};
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use komodo::zk::{self, Powers};
type UniPoly12_381 = DensePolynomial<Fr>;
......@@ -17,7 +15,7 @@ fn setup_template<F, G, P>(c: &mut Criterion, nb_bytes: usize)
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let mut group = c.benchmark_group("setup");
......
use std::ops::Div;
use ark_bls12_381::{Fr, G1Projective};
use ark_ec::CurveGroup;
use ark_ff::PrimeField;
use ark_poly::univariate::DensePolynomial;
use ark_poly::DenseUVPolynomial;
use ark_poly::{univariate::DensePolynomial, DenseUVPolynomial};
use ark_serialize::{CanonicalSerialize, Compress, Validate};
use ark_std::test_rng;
use ark_std::{ops::Div, test_rng};
use komodo::zk;
type UniPoly12_381 = DensePolynomial<Fr>;
......@@ -16,7 +13,7 @@ fn setup_template<F, G, P>(nb_bytes: usize)
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let rng = &mut test_rng();
......
use ark_bls12_381::Fr;
use ark_ff::Field;
use komodo::linalg::Matrix;
use rand::{rngs::ThreadRng, Rng};
use komodo::linalg::Matrix;
fn rand<T: Field>(rng: &mut ThreadRng) -> T {
let element: u128 = rng.gen();
T::from(element)
......
......@@ -2,12 +2,10 @@
use ark_ff::PrimeField;
use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
use rs_merkle::algorithms::Sha256;
use rs_merkle::Hasher;
use crate::error::KomodoError;
use crate::field;
use crate::linalg::Matrix;
use rs_merkle::{algorithms::Sha256, Hasher};
use crate::{error::KomodoError, field, linalg::Matrix};
/// representation of a FEC shard of data
///
......
......@@ -5,11 +5,11 @@ use std::{
path::{Path, PathBuf},
};
use anyhow::Result;
use ark_ec::CurveGroup;
use ark_ff::PrimeField;
use ark_serialize::{CanonicalDeserialize, CanonicalSerialize, Compress, Validate};
use anyhow::Result;
use rs_merkle::{algorithms::Sha256, Hasher};
use tracing::info;
......
//! Komodo: Cryptographically-proven Erasure Coding
use std::ops::Div;
use ark_ec::CurveGroup;
use ark_ff::PrimeField;
use ark_poly::DenseUVPolynomial;
use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
use ark_std::ops::Div;
use tracing::{debug, info};
pub mod error;
......@@ -96,7 +96,7 @@ pub fn commit<F, G, P>(
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let mut commits = Vec::new();
......@@ -121,7 +121,7 @@ pub fn encode<F, G, P>(
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
info!("encoding and proving {} bytes", bytes.len());
......@@ -222,7 +222,7 @@ pub fn verify<F, G, P>(
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let elements = block.shard.data.clone();
......@@ -241,13 +241,11 @@ where
#[cfg(test)]
mod tests {
use std::ops::Div;
use ark_bls12_381::{Fr, G1Projective};
use ark_ec::CurveGroup;
use ark_ff::{Field, PrimeField};
use ark_poly::{univariate::DensePolynomial, DenseUVPolynomial};
use ark_std::test_rng;
use ark_std::{ops::Div, test_rng};
use crate::{
encode,
......@@ -268,7 +266,7 @@ mod tests {
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let rng = &mut test_rng();
......@@ -290,7 +288,7 @@ mod tests {
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let rng = &mut test_rng();
......@@ -321,7 +319,7 @@ mod tests {
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let rng = &mut test_rng();
......@@ -350,7 +348,7 @@ mod tests {
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let rng = &mut test_rng();
......@@ -373,7 +371,7 @@ mod tests {
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let rng = &mut test_rng();
......@@ -422,7 +420,7 @@ mod tests {
F: PrimeField,
T: Field,
Fun: Fn(&[u8], &Matrix<T>) -> Result<(), KomodoError>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let (k, n) = (3, 6);
......
......@@ -4,6 +4,7 @@
//! field.
use ark_ff::Field;
use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
use rand::Rng;
use crate::error::KomodoError;
......
use std::ops::Div;
use std::path::{Path, PathBuf};
use std::process::exit;
use anyhow::Result;
use ark_bls12_381::{Fr, G1Projective};
use ark_ec::CurveGroup;
use ark_ff::PrimeField;
use ark_poly::univariate::DensePolynomial;
use ark_poly::DenseUVPolynomial;
use ark_poly::{univariate::DensePolynomial, DenseUVPolynomial};
use ark_serialize::{CanonicalDeserialize, Compress, Validate};
use ark_std::test_rng;
use komodo::error::KomodoError;
use komodo::zk::Powers;
use ark_std::{ops::Div, test_rng};
use anyhow::Result;
use tracing::{info, warn};
use komodo::{
encode,
error::KomodoError,
fec::{decode, Shard},
fs,
linalg::Matrix,
recode, verify, zk, Block,
recode, verify,
zk::{self, Powers},
Block,
};
type UniPoly12_381 = DensePolynomial<Fr>;
......@@ -128,7 +127,7 @@ pub fn generate_random_powers<F, G, P>(
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let rng = &mut test_rng();
......@@ -148,7 +147,7 @@ pub fn verify_blocks<F, G, P>(
where
F: PrimeField,
G: CurveGroup<ScalarField = F>,
P: DenseUVPolynomial<F, Point = F>,
P: DenseUVPolynomial<F>,
for<'a, 'b> &'a P: Div<&'b P, Output = P>,
{
let res = blocks
......