1
0
Fork 0
mirror of synced 2025-09-23 12:18:44 +00:00
ZoKrates/README.md
The Gitter Badger 66ed8a4ea9 Add Gitter badge
2017-11-09 09:59:27 +00:00

69 lines
1.4 KiB
Markdown

# ZoKrates
[![Join the chat at https://gitter.im/ZoKrates/Lobby](https://badges.gitter.im/ZoKrates/Lobby.svg)](https://gitter.im/ZoKrates/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Zokrates is a toolbox for zkSNARKs on Ethereum.
_This is a proof-of-concept implementation. It has not been tested for production._
## 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.
### Docker (Recommended)
Example usage:
```
docker build -t zokrates .
docker run -ti zokrates /bin/bash
cd ZoKrates
./target/release/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
```