1
0
Fork 0
mirror of synced 2025-09-23 12:18:44 +00:00
A toolbox for zkSNARKs on Ethereum
Find a file
JacobEberhardt 1a2c1401c9
Merge pull request #1 from JacobEberhardt/cli
Cli added, c-interface updated, function flattening rewritten.
2017-10-29 17:00:56 +01:00
examples Function flattening rewritten 2017-10-29 00:28:14 +02:00
lib Removed run_libsnark and shortcut cli operation. Some output cleanup. 2017-10-29 11:42:05 +01:00
src Removed run_libsnark and shortcut cli operation. Some output cleanup. 2017-10-29 11:42:05 +01:00
templates manual merge 2017-10-26 18:09:49 +02:00
.dockerignore Add Sub to R1CS; Add Dockerfile 2017-02-01 17:24:44 +01:00
.gitignore Add first tests of parser and equality of structs 2017-02-08 22:06:38 +01:00
build.rs Intermediary commit. Serialization added, Deserialization still ToDo. Formatted. 2017-10-09 13:24:31 +02:00
Cargo.lock added export verifier functionality and required template 2017-10-25 10:02:52 +02:00
Cargo.toml added export verifier functionality and required template 2017-10-25 10:02:52 +02:00
Dockerfile Dockerfile fixed. Example fixed. 2017-10-23 16:02:46 +02:00
README.md README updated 2017-10-29 16:59:24 +01:00

ZoKrates

Using ZoKrates

ZoKrates provides a command line interface. To see an overview of the available subcommands, run

./zokrates

Example

To execute the program, perform the setup for the program, generate a proof

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

with add(1, 2, 3), call

./zokrates compile -i 'add.code_path'
./zokrates compute-witness -a 1 2 3
./zokrates setup
./zokrates generate-proof
./zokrates export-verifier

Building

Currently needs to be build with nightly Rust.

Example usage:

docker build -t zokrates .
docker run -ti zokrates /bin/bash
cd zokrates
./target/debug/zokrates compile -i examples/add.code

Without libsnark

Build with the feature nolibsnark

cargo build --features nolibsnark

Environment Variables

Set the libsnark library path in LD_LIBRARY_PATH

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

Testing

Run normal tests with

cargo test

and run long and expensive tests with

cargo test -- --ignored