1
0
Fork 0
mirror of synced 2025-09-24 04:40:05 +00:00
ZoKrates/README.md
2017-06-18 12:56:12 +02:00

69 lines
1.3 KiB
Markdown

# VerifiableStatementCompiler
## Using VerifiableStatementCompiler
Set 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.<br>
### 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.
### Docker
Example usage:
```
docker build -t verifiablestatementcompiler .
docker run -ti verifiablestatementcompiler /bin/bash
cd VerifiableStatementCompiler
./target/debug/code_to_r1cs examples/add.code "3"
```
### With libsnark
Install [libsnark](https://github.com/scipr-lab/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
```
## Testing
Run normal tests with
```
cargo test
```
and run long and expensive tests with
```
cargo test -- --ignored
```