2022-10-25 10:50:40 +02:00
fmt
2022-08-26 16:10:44 -04:00
2022-10-25 10:50:40 +02:00
2022-10-25 10:50:40 +02:00
2022-10-25 10:50:40 +02:00
fmt
2022-09-06 14:58:42 -04:00
2022-10-25 10:50:40 +02:00
2022-09-23 10:54:17 -07:00
2022-06-27 15:07:52 -07:00
2022-10-25 10:50:40 +02:00
2022-10-25 10:50:40 +02:00
2022-10-25 10:50:40 +02:00
2021-10-27 10:44:36 -07:00
2022-07-21 16:59:20 -04:00
2022-08-15 07:43:00 -07:00
2021-06-10 14:10:35 -07:00

Plonky2 & more

This repository was originally for Plonky2, a SNARK implementation based on techniques from PLONK and FRI. It has since expanded to include tools such as Starky, a highly performant STARK implementation.

Documentation

For more details about the Plonky2 argument system, see this writeup.

Building

Plonky2 requires a recent nightly toolchain, although we plan to transition to stable in the future.

To use a nightly toolchain for Plonky2 by default, you can run

rustup override set nightly

in the Plonky2 directory.

Running

To see recursion performance, one can run this bench, which generates a chain of three recursion proofs:

RUSTFLAGS=-Ctarget-cpu=native cargo run --release --example bench_recursion -- -vv

Jemalloc

Plonky2 prefers the Jemalloc memory allocator due to its superior performance. To use it, include jemallocator = "0.3.2" inCargo.tomland add the following lines to your main.rs:

use jemallocator::Jemalloc;

#[global_allocator]
static GLOBAL: Jemalloc = Jemalloc;

Jemalloc is known to cause crashes when a binary compiled for x86 is run on an Apple silicon-based Mac under Rosetta 2. If you are experiencing crashes on your Apple silicon Mac, run rustc --print target-libdir. The output should contain aarch64-apple-darwin. If the output contains x86_64-apple-darwin, then you are running the Rust toolchain for x86; we recommend switching to the native ARM version.

Licenses

As this is a monorepo, see the individual crates within for license information.

Disclaimer

This code has not yet been audited, and should not be used in any production systems.

S
Description
the Plonky2 proof system
Readme
17 MiB
Languages
Rust 98.4%
JavaScript 0.6%
Python 0.6%
HTML 0.3%