1
0
Fork 0
mirror of synced 2025-09-23 12:18:44 +00:00
A toolbox for zkSNARKs on Ethereum
Find a file
2017-02-06 18:09:44 +01:00
examples Finish parser implementation for complete grammar (pow, ifelse, brackets) 2017-02-06 00:39:32 +01:00
lib Add Sub to R1CS; Add Dockerfile 2017-02-01 17:24:44 +01:00
src Add two's complement 2017-02-06 18:09:44 +01:00
.dockerignore Add Sub to R1CS; Add Dockerfile 2017-02-01 17:24:44 +01:00
.gitignore Add libsnark "is_satisfied" binding with [0, 0, .., 0] solution vector test. 2017-01-29 16:59:13 +01:00
build.rs Add build feature: nolibsnark 2017-02-01 23:18:52 +01:00
Cargo.toml Add build feature: nolibsnark 2017-02-01 23:18:52 +01:00
Dockerfile Add Sub to R1CS; Add Dockerfile 2017-02-01 17:24:44 +01:00
README.md Update README with features and examples 2017-02-02 16:26:54 +01:00

VerifiableStatementCompiler

Using VerifiableStatementCompiler

Set include the libsnark library path in LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Command

./code_to_r1cs program [inputs]
  • program: Path to the program that you want to be compiled.
  • inputs (optional): String of variable assignments of the inputs of a program split with whitespaces.

Example

To execute the program

def add(a, b, c):
  return a + b + c

with add(1, 2, 3), call

./code_to_r1cs program "1 2 3"

Building

Currently needs to be build with nightly Rust.

With libsnark

Install libsnark to /usr/local with

make install lib PREFIX=/usr/local NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 CURVE=ALT_BN128 FEATUREFLAGS="-DBINARY_OUTPUT=1 -DMONTGOMERY_OUTPUT=1 -DNO_PT_COMPRESSION=1"

and build with

cargo build

Without libsnark

Build with the feature nolibsnark

cargo build --features nolibsnark