You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Ivan Mikushin 56b1085c11
Bump to arkworks-0.4.0 (#126)
1 year ago
.github update nix to flake (#101) 1 year ago
arithmetic Bump to arkworks-0.4.0 (#126) 1 year ago
bench_results Batch all (#89) 2 years ago
hyperplonk Bump to arkworks-0.4.0 (#126) 1 year ago
scripts fix script 1 year ago
subroutines Bump to arkworks-0.4.0 (#126) 1 year ago
transcript Bump to arkworks-0.4.0 (#126) 1 year ago
util open source under MIT license 1 year ago
.envrc env setup (#6) 2 years ago
.gitignore enabling batch opening and mock tests (#80) 2 years ago
Cargo.toml Batch all (#89) 2 years ago
LICENSE open source under MIT license 1 year ago
README.md README (#116) 1 year ago
flake.lock update nix to flake (#101) 1 year ago
flake.nix update nix to flake (#101) 1 year ago
rustfmt.toml env setup (#6) 2 years ago
shell.nix update nix to flake (#101) 1 year ago

README.md

Hyperplonk library

A linear-time FFT-free SNARK proof system (https://eprint.iacr.org/2022/1355.pdf).

Disclaimer

DISCLAIMER: This software is provided "as is" and its security has not been externally audited. Use at your own risk.

Development environment setup

Install RUST

We recommend using nix for installing the correct version of rust and additional libraries:

> curl -L https://nixos.org/nix/install | sh

Compiling the project for the first time

> nix-shell
> cargo build

Direnv

We recommend the following tools:

Run direnv allow at the repo root. You should see dependencies (including Rust) being installed (the first time might take a while). Upon modification on flake.nix, run direnv reload to reflect new dependencies or environment setups.

Tests

> cargo test --release --all

Generate and read the documentation

Standard

> cargo doc --open

Code formatting

To format your code run

> cargo fmt

Updating non-cargo dependencies

Run nix flake update if you would like to pin other version edit flake.nix beforehand. Commit the lock file when happy.

To update only a single input specify it as an argument, for example

nix flake update github:oxalica/rust-overlay

Benchmarks

To obtain benchmarks, run the script file scripts/run_benchmarks.sh. We refer to Table 5 and Table 6 in https://eprint.iacr.org/2022/1355.pdf for an example benchmark.