https://github.com/0xwoland/pietrzak
https://github.com/0xwoland/pietrzak
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/0xwoland/pietrzak
- Owner: 0xWOLAND
- License: mit
- Created: 2024-08-16T09:31:30.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-08-16T15:43:22.000Z (9 months ago)
- Last Synced: 2024-08-16T17:19:53.634Z (9 months ago)
- Language: Rust
- Size: 191 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
Awesome Lists containing this project
README
# SP1 Project Template
This is a template for creating an end-to-end [SP1](https://github.com/succinctlabs/sp1) project
that can generate a proof of any RISC-V program.## Requirements
- [Rust](https://rustup.rs/)
- [SP1](https://succinctlabs.github.io/sp1/getting-started/install.html)## Running the Project
There are three main ways to run this project: execute a program, generate a core proof, and
generate an EVM-compatible proof.### Execute the Program
To run the program without generating a proof:
```sh
cd script
cargo run --release -- --execute
```This will execute the program and display the output.
### Generate a Core Proof
To generate a core proof for your program:
```sh
cd script
cargo run --release -- --prove
```### Generate an EVM-Compatible (PLONK) Proof
> [!WARNING]
> You will need at least 128GB RAM to generate the PLONK proof.To generate a PLONK proof that is small enough to be verified on-chain and verifiable by the EVM:
```sh
cd script
cargo run --release --bin evm
```This command also generates a fixture that can be used to test the verification of SP1 zkVM proofs
inside Solidity.### Retrieve the Verification Key
To retrieve your `programVKey` for your on-chain contract, run the following command:
```sh
cargo run --release --bin vkey
```## Using the Prover Network
We highly recommend using the Succinct prover network for any non-trivial programs or benchmarking purposes. For more information, see the [setup guide](https://docs.succinct.xyz/prover-network/setup.html).
To get started, copy the example environment file:
```sh
cp .env.example .env
```Then, set the `SP1_PROVER` environment variable to `network` and set the `SP1_PRIVATE_KEY`
environment variable to your whitelisted private key.For example, to generate an EVM-compatible proof using the prover network, run the following
command:```sh
SP1_PROVER=network SP1_PRIVATE_KEY=... cargo run --release --bin evm
```