Skip to content

Commit dd032eb

Browse files
authored
feat: v1.0.1 (#1165)
1 parent 6be0efa commit dd032eb

72 files changed

Lines changed: 186 additions & 182 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ updates:
1717
directory: "/"
1818
schedule:
1919
interval: "weekly"
20+
target-branch: "dev"

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jobs:
6767
runs-on: ubuntu-latest
6868
steps:
6969
- name: Check branch
70-
if: github.head_ref != 'dev' && !startsWith(github.ref, 'release/') && !startsWith(github.ref, 'hotfix/')
70+
if: github.head_ref != 'dev' && !startsWith(github.head_ref, 'release/') && !startsWith(github.head_ref, 'hotfix/')
7171
run: |
7272
echo "ERROR: You can only merge to main from dev, release/*, or hotfix/*."
7373
exit 1

Cargo.lock

Lines changed: 18 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ exclude = ["examples/target"]
2222
resolver = "2"
2323

2424
[workspace.package]
25-
version = "1.0.0-rc.1"
25+
version = "1.0.1"
2626
edition = "2021"
2727
license = "MIT OR Apache-2.0"
2828
repository = "https://github.com/succinctlabs/sp1"
@@ -41,23 +41,23 @@ debug = true
4141
debug-assertions = true
4242

4343
[workspace.dependencies]
44-
sp1-build = { path = "build", version = "1.0.0-rc.1" }
45-
sp1-derive = { path = "derive", version = "1.0.0-rc.1" }
46-
sp1-core = { path = "core", version = "1.0.0-rc.1" }
47-
sp1-cli = { path = "cli", version = "1.0.0-rc.1", default-features = false }
48-
sp1-eval = { path = "eval", version = "1.0.0-rc.1", default-features = false }
49-
sp1-helper = { path = "helper", version = "1.0.0-rc.1", default-features = false }
50-
sp1-primitives = { path = "primitives", version = "1.0.0-rc.1" }
51-
sp1-prover = { path = "prover", version = "1.0.0-rc.1" }
52-
sp1-recursion-compiler = { path = "recursion/compiler", version = "1.0.0-rc.1" }
53-
sp1-recursion-core = { path = "recursion/core", version = "1.0.0-rc.1", default-features = false }
54-
sp1-recursion-derive = { path = "recursion/derive", version = "1.0.0-rc.1", default-features = false }
55-
sp1-recursion-gnark-ffi = { path = "recursion/gnark-ffi", version = "1.0.0-rc.1", default-features = false }
56-
sp1-recursion-program = { path = "recursion/program", version = "1.0.0-rc.1", default-features = false }
57-
sp1-recursion-circuit = { path = "recursion/circuit", version = "1.0.0-rc.1", default-features = false }
58-
sp1-sdk = { path = "sdk", version = "1.0.0-rc.1" }
59-
sp1-lib = { path = "zkvm/lib", version = "1.0.0-rc.1", default-features = false }
60-
sp1-zkvm = { path = "zkvm/entrypoint", version = "1.0.0-rc.1", default-features = false }
44+
sp1-build = { path = "build", version = "1.0.1" }
45+
sp1-derive = { path = "derive", version = "1.0.1" }
46+
sp1-core = { path = "core", version = "1.0.1" }
47+
sp1-cli = { path = "cli", version = "1.0.1", default-features = false }
48+
sp1-eval = { path = "eval", version = "1.0.1", default-features = false }
49+
sp1-helper = { path = "helper", version = "1.0.1", default-features = false }
50+
sp1-primitives = { path = "primitives", version = "1.0.1" }
51+
sp1-prover = { path = "prover", version = "1.0.1" }
52+
sp1-recursion-compiler = { path = "recursion/compiler", version = "1.0.1" }
53+
sp1-recursion-core = { path = "recursion/core", version = "1.0.1", default-features = false }
54+
sp1-recursion-derive = { path = "recursion/derive", version = "1.0.1", default-features = false }
55+
sp1-recursion-gnark-ffi = { path = "recursion/gnark-ffi", version = "1.0.1", default-features = false }
56+
sp1-recursion-program = { path = "recursion/program", version = "1.0.1", default-features = false }
57+
sp1-recursion-circuit = { path = "recursion/circuit", version = "1.0.1", default-features = false }
58+
sp1-sdk = { path = "sdk", version = "1.0.1" }
59+
sp1-lib = { path = "zkvm/lib", version = "1.0.1", default-features = false }
60+
sp1-zkvm = { path = "zkvm/entrypoint", version = "1.0.1", default-features = false }
6161
p3-air = "0.1.3-succinct"
6262
p3-field = "0.1.3-succinct"
6363
p3-commit = "0.1.3-succinct"

README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
[![Telegram Chat][tg-badge]][tg-url]
44

5-
6-
![](./assets/sp1.png)
5+
![SP1](./assets/sp1.png)
76

87
SP1 is a performant, 100% open-source, contributor-friendly zero-knowledge virtual machine (zkVM) that can prove the execution of arbitrary Rust (or any LLVM-compiled language) programs. SP1 democratizes access to ZKPs by allowing developers to use programmable truth with popular programming languages.
98

@@ -18,9 +17,6 @@ SP1 is inspired by the open-source software movement and takes a collaborative a
1817

1918
## For Developers: Build with SP1
2019

21-
**Note that SP1 is still in alpha and is not yet ready for production use.**
22-
23-
2420
Today, developers can write programs, including complex, large programs like a ZK Tendermint light client, in Rust (with std support), generate proofs and verify them. Most Rust crates should be supported and can be used seamlessly by your program. Example programs can be found in the [examples](https://github.com/succinctlabs/sp1/tree/main/examples) folder.
2521

2622
To get started, make sure you have [Rust](https://www.rust-lang.org/tools/install) installed. Then follow the [installation](https://succinctlabs.github.io/sp1/getting-started/install.html) guide in the SP1 book and read the [getting started](https://succinctlabs.github.io/sp1/getting-started/quickstart.html) section.
@@ -33,12 +29,14 @@ Open-source is a core part of SP1's ethos and key to its advantages. We wish to
3329

3430
Find a list of [good first issues](https://github.com/succinctlabs/sp1/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+) in the open issues of this repo. We are always looking for contributors interested in tasks big and small, including minor chores across the codebase, optimizing performance, adding precompiles for commonly used cryptographic operations, adding documentation, creating new example programs and more. Please reach out in the Telegram chat if interested!
3531

36-
3732
## Roadmap
3833

3934
Today, SP1 can generate and verify proofs for Rust programs that have been compiled to RISC-V. SP1 supports proving of programs of arbitrary length by using a unique "shared challenges" argument that allows the prover to shard a long computation into small shards, and then generate a global proof that these shards are properly connected together.
4035

41-
The main priorities in the next few months are performance optimizations, getting the core zkVM constraint logic audited, as well as wrapping the SP1 STARK proof into a SNARK proof that is cheaply verifiable in the EVM (by adapting similar [previous work](https://github.com/succinctlabs/gnark-plonky2-verifier) done by the Succinct Team).
36+
The main priorities in the next few months are performance optimizations, getting the core zkVM
37+
constraint logic audited, as well as wrapping the SP1 STARK proof into a SNARK proof that is cheaply
38+
verifiable in the EVM (by adapting similar [previous
39+
work](https://github.com/succinctlabs/gnark-plonky2-verifier) done by the Succinct Team).
4240

4341
## Acknowledgements
4442

@@ -48,6 +46,11 @@ We would like to acknowledge the projects below whose previous work has been ins
4846
- [Valida](https://github.com/valida-xyz/valida): The SP1 cross-table lookup architecture, prover, borrow macro, and chip design are inspired by Valida.
4947
- [RISC0](https://github.com/risc0/risc0): The SP1 Rust toolchain and install/build scripts for the toolchain borrow code from RISC0.
5048

49+
## Security
50+
51+
SP1 has undergone audits from [Veridise](https://www.veridise.com/), [Cantina](https://cantina.xyz/),
52+
and [KALOS](https://kalos.xyz/). The audit reports are available [here](./audits).
53+
5154
## Tips
5255

5356
We recommend you install the [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) extension.

book/developers/common-issues.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@ This is likely due to two different versions of `alloy_sol_types` being used. To
1212

1313
```toml
1414
[dependencies]
15-
sp1-sdk = { version = "0.1.0", default-features = false }
15+
sp1-sdk = { version = "1.0.1", default-features = false }
1616
```
1717

18-
This will configure out the `network` feature which will remove the dependency on `alloy_sol_types`
18+
This will configure out the `network` feature which will remove the dependency on `alloy_sol_types`
1919
and configure out the `NetworkProver`.
2020

21-
2221
## Rust Version Errors
2322

2423
If you are using `alloy` or another library that has an MSRV (minimum support rust version) of 1.76.0
@@ -48,13 +47,16 @@ To fix this, you can:
4847
```
4948

5049
## Stack Overflow Errors
50+
5151
If you encounter the following in a script using `sp1-sdk`:
5252

5353
```
5454
thread 'main' has overflowed its stack
5555
fatal runtime error: stack overflow
5656
```
57+
5758
```
5859
Segmentation fault (core dumped)
5960
```
60-
Re-run your script with `--release`.
61+
62+
Re-run your script with `--release`.

book/generating-proofs/advanced.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ RUSTFLAGS='-C target-cpu=native' cargo run --release
4848
Currently there is support for AVX512 and NEON SIMD instructions. For NEON, you must also enable the `sp1-sdk` feature `neon` in your script crate's `Cargo.toml` file.
4949

5050
```toml
51-
sp1-sdk = { git = "https://github.com/succinctlabs/sp1", features = ["neon"] }
51+
sp1-sdk = { version = "1.0.1", features = ["neon"] }
5252
```
5353

5454
## Performance

book/generating-proofs/setup.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ cargo prove new <name>
1111
cd script
1212
```
1313

14-
1514
## Manual
1615

1716
You can also manually setup a project. First create a new cargo project:
@@ -33,7 +32,7 @@ name = "script"
3332
edition = "2021"
3433
3534
[dependencies]
36-
sp1-sdk = { git = "https://github.com/succinctlabs/sp1.git" }
35+
sp1-sdk = "1.0.1"
3736
```
3837

3938
The `sp1-sdk` crate includes the necessary utilities to generate, save, and verify proofs.

book/onchain-verification/contract-addresses.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
When using SP1, we recommend using our deployed verifiers. Each contract is a [SP1VerifierGateway](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1VerifierGateway.sol) which can automatically routes your SP1 proof to the correct verifier based on the prover version.
44

5-
65
| Chain ID | Chain | Gateway |
7-
|----------|------------------|---------------------------------------------------------------------------------------------------------------------------------|
6+
| -------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------- |
7+
| 1 | Mainnet | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) |
88
| 11155111 | Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) |
99
| 17000 | Holesky | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://holesky.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) |
1010
| 42161 | Arbitrum One | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) |
@@ -14,7 +14,7 @@ When using SP1, we recommend using our deployed verifiers. Each contract is a [S
1414
| 8453 | Base | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) |
1515
| 84532 | Base Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) |
1616

17-
**Currently officially supported versions of SP1 are v1.0.7 and v1.0.8.** If you'd like official support for a verifier on a different chain, please ask in the [SP1 Telegram](https://t.me/succinct_sp1).
17+
**Currently officially supported version of SP1 is v1.0.1.** If you'd like official support for a verifier on a different chain, please ask in the [SP1 Telegram](https://t.me/succinct_sp1).
1818

1919
## ISP1Verifier Interface
2020

@@ -40,4 +40,4 @@ interface ISP1Verifier {
4040
bytes calldata proofBytes
4141
) external view;
4242
}
43-
```
43+
```

book/onchain-verification/getting-started.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,5 @@ You can run the above script with `RUST_LOG=info cargo run --bin plonk_bn254 --r
2727
If you would like to run the PLONK prover directly without Docker, you must have Go 1.22 installed and enable the `native-plonk` feature in `sp1-sdk`. This path is not recommended and may require additional native dependencies.
2828

2929
```toml
30-
sp1-sdk = { features = ["native-plonk"] }
30+
sp1-sdk = { version = "1.0.1", features = ["native-plonk"] }
3131
```
32-
33-

0 commit comments

Comments
 (0)