Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ To ensure a smooth workflow for all contributors, the following general procedur
* Be sure to include a relevant changelog entry in the Pending section of CHANGELOG.md (see file for log format)
* If the change is breaking, we may add migration instructions.

Note that for very small or clear problems (such as typos), or well isolated improvements, it is not required to an open issue to submit a PR.
Note that for very small or clear problems (such as typos), or well isolated improvements, it is not required to open an issue to submit a PR.
But be aware that for more complex problems/features touching multiple parts of the codebase, if a PR is opened before an adequate design discussion has taken place in a GitHub issue, that PR runs a larger likelihood of being rejected.

Looking for a good place to start contributing? How about checking out some good first issues
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<a href="https://discord.gg/UNtS7QXyPk"><img src="https://img.shields.io/discord/908465643727253524?label=Discord&logo=discord"></a>
</p>

The arkworks ecosystem consist of Rust libraries for designing and working with *zero knowledge succinct non-interactive arguments (zkSNARKs)*. This repository contains efficient implementations of the key algebraic components underlying zkSNARKs: finite fields, elliptic curves, and polynomials.
The arkworks ecosystem consists of Rust libraries for designing and working with *zero knowledge succinct non-interactive arguments (zkSNARKs)*. This repository contains efficient implementations of the key algebraic components underlying zkSNARKs: finite fields, elliptic curves, and polynomials.

This library is released under the MIT License and the Apache v2 License (see [License](#license)).

Expand All @@ -23,11 +23,11 @@ This repository contains several Rust crates:
* [`ark-poly`](poly): Interfaces for univariate, multivariate, and multilinear polynomials, and FFTs over finite fields
* [`ark-serialize`](serialize): Efficient interfaces for serialization and point compression for finite fields and elliptic curves

In addition, the [`curves`](https://github.com/arkworks-rs/algebra/tree/master/curves) repository contains concrete implementations of popular elliptic curves; see [here](https://github.com/arkworks-rs/algebra/blob/master/curves/README.md) for details.
In addition, the [`curves`](curves) directory contains concrete implementations of popular elliptic curves; see its [README](curves/README.md) for details.

## Build guide

The library compiles on the `stable` toolchain of the Rust compiler (v 1.51+). To install the latest version of Rust, first install `rustup` by following the instructions [here](https://rustup.rs/), or via your platform's package manager. Once `rustup` is installed, install the Rust toolchain by invoking:
The library compiles on the `stable` toolchain of the Rust compiler (v 1.56+). To install the latest version of Rust, first install `rustup` by following the instructions [here](https://rustup.rs/), or via your platform's package manager. Once `rustup` is installed, install the Rust toolchain by invoking:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be updated; can you check which version is the minimal one required?


```bash
rustup install stable
Expand Down
2 changes: 1 addition & 1 deletion bench-templates/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# bench-templates

**Warning!!!** This package does not implement any benchmarks, but exports templates and macros for benchmarking.
In order to benchmark arkworks, please run `cargo bench` inside [ark-curves](https://github.com/arkworks-rs/algebra/tree/master/curves).
In order to benchmark arkworks, please run `cargo bench` inside the curves directory.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In order to benchmark arkworks, please run `cargo bench` inside the curves directory.
In order to benchmark arkworks, please run `cargo bench` inside the [`curves`](../curves) directory.

15 changes: 15 additions & 0 deletions bench-templates/benches/deps_touch.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
use ark_ec as _;
use ark_std as _;
use criterion::{criterion_group, criterion_main, Criterion};

fn bench_deps(c: &mut Criterion) {
let mut g = c.benchmark_group("deps_touch");
let a: ark_ff::BigInt<1> = ark_ff::BigInt::from(123u64);
let _ = a;
let _ = ark_serialize::Compress::Yes;
g.bench_function("noop", |b| b.iter(|| ()));
g.finish();
}
Comment on lines +5 to +12
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the purpose of this?


criterion_group!(benches, bench_deps);
criterion_main!(benches);
6 changes: 5 additions & 1 deletion poly/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,4 +141,8 @@ assert_eq!(g_prime.evaluate(&random_point), g.evaluate(&random_point));

## Domains

TODO
The `domain` module provides traits and implementations for FFT-friendly subsets of finite fields. These domains are used to perform efficient polynomial operations such as multiplication and division through FFT-based algorithms.

- [`EvaluationDomain`](./src/domain/mod.rs#L16): Trait defining the interface for evaluation domains
- [`GeneralEvaluationDomain`](./src/domain/mod.rs#L31): Generic implementation for evaluation domains
- [`Radix2EvaluationDomain`](./src/domain/radix2/mod.rs#L15): Efficient implementation for radix-2 domains
2 changes: 1 addition & 1 deletion test-templates/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# test-templates

**Warning!!!** This package does not implement any tests, but exports templates and macros for testing.
In order to test arkworks, please run `cargo test` inside [algebra](https://github.com/arkworks-rs/algebra).
In order to test arkworks, please run `cargo test` inside the algebra directory.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In order to test arkworks, please run `cargo test` inside the algebra directory.
In order to test arkworks, please run `cargo test` inside the [`algebra`](../algebra) directory.

Loading