|
|
# 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:
```bash > curl -L https://nixos.org/nix/install | sh
```
### Compiling the project for the first time
```bash > nix-shell
> cargo build
```
### Direnv
We recommend the following tools:
- [nix](https://nixos.org/download.html) - [direnv](https://direnv.net/docs/installation.html)
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.
|