Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

readme fixes #124

Merged
merged 1 commit into from
Apr 2, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 8 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,67 +64,20 @@ python configure.py -l recursive -s keccak
layout types: [dex, recursive, recursive_with_poseidon, small, starknet, starknet_with_keccak]
hash types: [keccak, blake2s]

## Creating a Proof

To create a proof, perform the following steps:

1. Install stone-prover (restart your shell after installation):

```bash
git clone https://github.com/starkware-libs/stone-prover.git
cd stone-prover
docker build --tag prover .
container_id=$(docker create prover)
docker cp -L ${container_id}:/bin/cpu_air_prover ../examples/prover
docker cp -L ${container_id}:/bin/cpu_air_verifier ../examples/prover
```

2. Install cairo-lang:

```bash
pip install cairo-lang==0.12.0
```

3. Compile a Cairo program, for example, the Fibonacci program:

```bash
cd examples/prover
cairo-compile fibonacci.cairo --output fibonacci_compiled.json --proof_mode
```
## Benchmarking

4. Run the Cairo program:
In order to launch benchmarking, just run this (it requires recursive layout configuration):

```bash
cairo-run \
--program=fibonacci_compiled.json \
--layout=recursive \
--program_input=fibonacci_input.json \
--air_public_input=fibonacci_public_input.json \
--air_private_input=fibonacci_private_input.json \
--trace_file=fibonacci_trace.bin \
--memory_file=fibonacci_memory.bin \
--print_output \
--proof_mode
cargo run --release --bin benches -- target/dev/cairo_verifier.sierra.json
```

5. Prove the Cairo program:

```bash
./cpu_air_prover \
--out_file=../proofs/recursive/fibonacci_proof.json \
--private_input_file=fibonacci_private_input.json \
--public_input_file=fibonacci_public_input.json \
--prover_config_file=cpu_air_prover_config.json \
--parameter_file=cpu_air_params.json \
--generate_annotations
```
## Creating a Proof

You can verify this proof locally or on the Starknet Cairo verifier contract by specifying the path examples/proofs/recursive/fibonacci_proof.json to the newly generated proof.
### Stone Prover Instructions

## Benchmarking
For detailed instructions and examples, refer to the Stone Prover [documentation](https://github.com/starkware-libs/stone-prover?tab=readme-ov-file#creating-and-verifying-a-proof-of-a-cairozero-program).

In order to launch benchmarking, just run this (it requires recursive layout configuration):
### Stone Prover SDK Tool

```bash
cargo run --release --bin benches -- target/dev/cairo_verifier.sierra.json
```
For information on how to use the Stone Prover SDK tool, please refer to the [documentation](https://github.com/Moonsong-Labs/stone-prover-sdk).
Loading