Skip to content

Commit 39ee587

Browse files
chore(release): v1.4.0 (#2110)
1 parent 461495d commit 39ee587

File tree

12 files changed

+35
-37
lines changed

12 files changed

+35
-37
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ All notable changes to OpenVM will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project follows a versioning principles documented in [VERSIONING.md](./VERSIONING.md).
77

8-
## v1.4.0-rc (Unreleased)
8+
## v1.4.0 (2025-09-01)
99

1010
### Added
1111
- (Verifier) An `AggVerifyingKey` struct is introduced so that verifying the final STARK proof does not require the proving key.
1212
- (Config) Added `addr_spaces` vector of `AddressSpaceHostConfig` to `MemoryConfig`.
13+
- (Prover) Nvidia GPU trace generation and STARK backend proving support.
1314

1415
### Changed
1516
- (Verifier) The `MultiStarkVerifyingKey`s for all existing App and Agg configs remain unchanged. However the serialized binary for the `AppVerifyingKey` has changed due to the removal of `as_offset` from `MemoryDimensions` (see below).

Cargo.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[workspace.package]
2-
version = "1.4.0-rc.10"
2+
version = "1.4.0"
33
edition = "2021"
44
rust-version = "1.86.0"
55
authors = ["OpenVM Authors"]
@@ -113,11 +113,11 @@ lto = "thin"
113113

114114
[workspace.dependencies]
115115
# Stark Backend
116-
openvm-stark-backend = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.0-rc.7", default-features = false }
117-
openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.0-rc.7", default-features = false }
118-
openvm-cuda-backend = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.0-rc.7", default-features = false }
119-
openvm-cuda-builder = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.0-rc.7", default-features = false }
120-
openvm-cuda-common = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.0-rc.7", default-features = false }
116+
openvm-stark-backend = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.0", default-features = false }
117+
openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.0", default-features = false }
118+
openvm-cuda-backend = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.0", default-features = false }
119+
openvm-cuda-builder = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.0", default-features = false }
120+
openvm-cuda-common = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.0", default-features = false }
121121

122122
# OpenVM
123123
openvm-sdk = { path = "crates/sdk", default-features = false }

crates/circuits/mod-builder/src/README.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ Note that the variables in the expression tree don't actually have names, they a
8484
The `ExprBuilder` struct stores the constraints and computes associated to a single circuit.
8585
Every `FieldVariable` stores a shared reference to an `ExprBuilder` and it mutates the builder as needed.
8686

87-
When we are done building the circuit, the `ExprBuilder` has all the data necessary to build the circuit.
87+
When we are done building the circuit, the `ExprBuilder` has all the data necessary to build the circuit.
8888
We can pass the `ExprBuilder` into the `FieldExpr` constructor to build an AIR.
8989

9090
## The Select operation
@@ -140,7 +140,7 @@ Increase `range_checker_bits` and try again.
140140

141141
This error could also occur if you are calling `FieldVariable::int_add` or `FieldVariable::int_mul` with large constants.
142142
These methods are not meant to be called with large constants.
143-
Instead create a constant with `ExprBuilder::new_const` and use that.
143+
Instead create a constant with `ExprBuilder::new_const` and use that.
144144

145145

146146
## Usage
@@ -169,7 +169,7 @@ See the [examples section](#examples) for code examples to follow along with.
169169
Usually you don't need to do this because variables are auto-saved when there is a possibility of overflow (i.e. when the carry for any of the limbs overflows).
170170
But it gives greater control over how the expression is broken down into constraints, if that's needed.
171171

172-
7. Finally, pull out a copy of the builder as follows: `let builder = builder.borrow().clone()`, and pass it into the appropriate `FieldExpr` constructor:
172+
7. Finally, pull out a copy of the builder as follows: `let builder = builder.borrow().clone()`, and pass it into the appropriate `FieldExpr` constructor:
173173
- If your chip has no setup instruction, use `FieldExpr::new(builder, range_bus, false)`.
174174
- If your chip has a setup instruction that only checks if the modulus is correct, use `FieldExpr::new(builder, range_bus, true)`.
175175
- If your chip has a setup instruction that checks the correctness of more than just the modulus, use `FieldExpr::new_with_setup_values(builder, range_bus, true, setup_values)` where `setup_values` is a `Vec<BigUint>` of values to be used in setup.
@@ -179,6 +179,5 @@ See the [examples section](#examples) for code examples to follow along with.
179179

180180
See these examples in the elliptic curve extension code:
181181

182-
- [Short Weierstrass Addition Chip](https://github.com/openvm-org/openvm/blob/main/extensions/ecc/circuit/src/weierstrass_chip/add_ne.rs)
183-
- [Short Weierstrass Double Chip](https://github.com/openvm-org/openvm/blob/main/extensions/ecc/circuit/src/weierstrass_chip/double.rs)
184-
182+
- [Short Weierstrass Addition Chip](https://github.com/openvm-org/openvm/blob/main/extensions/ecc/circuit/src/weierstrass_chip/add_ne/mod.rs)
183+
- [Short Weierstrass Double Chip](https://github.com/openvm-org/openvm/blob/main/extensions/ecc/circuit/src/weierstrass_chip/double/mod.rs)

docs/vocs/docs/pages/book/acceleration-using-extensions/algebra.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ To have the correct imports for the above example, add the following to the `Car
114114

115115
```toml
116116
[dependencies]
117-
openvm = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0-rc.10" }
118-
openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0-rc.10" }
117+
openvm = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0" }
118+
openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0" }
119119
serde = { version = "1.0.216", default-features = false }
120120
```
121121

docs/vocs/docs/pages/book/getting-started/install.mdx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ svm use 0.8.19
6666
Begin the installation:
6767

6868
```bash
69-
cargo +1.86 install --locked --git https://github.com/openvm-org/openvm.git --tag v1.4.0-rc.10 cargo-openvm
69+
cargo +1.86 install --locked --git https://github.com/openvm-org/openvm.git --tag v1.4.0 cargo-openvm
7070
```
7171

7272
This will globally install `cargo-openvm`. You can validate a successful installation with:
@@ -80,7 +80,7 @@ cargo openvm --version
8080
To build from source, clone the repository and begin the installation.
8181

8282
```bash
83-
git clone --branch v1.4.0-rc.10 --single-branch https://github.com/openvm-org/openvm.git
83+
git clone --branch v1.4.0 --single-branch https://github.com/openvm-org/openvm.git
8484
cd openvm
8585
cargo install --locked --force --path crates/cli
8686
```
@@ -143,7 +143,7 @@ Note that `/usr/local/cuda` is a symlink for the latest version of CUDA installe
143143
Begin the installation:
144144

145145
```bash
146-
cargo +1.86 install --locked --git https://github.com/openvm-org/openvm.git --tag v1.4.0-rc.10 --features cuda cargo-openvm
146+
cargo +1.86 install --locked --git https://github.com/openvm-org/openvm.git --tag v1.4.0 --features cuda cargo-openvm
147147
```
148148

149149
This will globally install `cargo-openvm`. You can validate a successful installation with:
@@ -157,7 +157,7 @@ cargo openvm --version
157157
To build from source, clone the repository and begin the installation.
158158

159159
```bash
160-
git clone --branch v1.4.0-rc.10 --single-branch https://github.com/openvm-org/openvm.git
160+
git clone --branch v1.4.0 --single-branch https://github.com/openvm-org/openvm.git
161161
cd openvm
162162
cargo install --locked --force --path crates/cli --features cuda
163163
```
@@ -184,10 +184,10 @@ Begin the installation:
184184

185185
:::code-group
186186
```bash [Without GPU]
187-
cargo +nightly-2025-08-19 install --locked --git https://github.com/openvm-org/openvm.git --tag v1.4.0-rc.10 --features tco cargo-openvm
187+
cargo +nightly-2025-08-19 install --locked --git https://github.com/openvm-org/openvm.git --tag v1.4.0 --features tco cargo-openvm
188188
```
189189
```bash [Nvidia GPU]
190-
cargo +nightly-2025-08-19 install --locked --git https://github.com/openvm-org/openvm.git --tag v1.4.0-rc.10 --features tco,cuda cargo-openvm
190+
cargo +nightly-2025-08-19 install --locked --git https://github.com/openvm-org/openvm.git --tag v1.4.0 --features tco,cuda cargo-openvm
191191
```
192192
:::
193193

@@ -202,7 +202,7 @@ cargo openvm --version
202202
To build from source, first clone the repository.
203203

204204
```bash
205-
git clone --branch v1.4.0-rc.10 --single-branch https://github.com/openvm-org/openvm.git
205+
git clone --branch v1.4.0 --single-branch https://github.com/openvm-org/openvm.git
206206
cd openvm
207207
```
208208

docs/vocs/docs/pages/book/getting-started/quickstart.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ This will generate an OpenVM-specific starter package. Notice `Cargo.toml` has t
1414

1515
```toml
1616
[dependencies]
17-
openvm = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0-rc.10", features = ["std"] }
17+
openvm = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0", features = ["std"] }
1818
```
1919

2020
Note that `std` is not enabled by default, so explicitly enabling it is required.

docs/vocs/docs/pages/book/guest-libraries/k256.mdx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# K256
22

3-
The K256 guest library uses [`openvm-ecc-guest`](/book/acceleration-using-extensions/elliptic-curve-cryptography) to provide elliptic curve operations over the Secp256k1 curve. It is intended as a patch for the [`k256`](https://crates.io/crates/k256) rust crate and can be swapped in for accelerated signature verification usage. Note that signing from a private key is not supported.
3+
The K256 guest library uses [`openvm-ecc-guest`](/book/acceleration-using-extensions/elliptic-curve-cryptography) to provide elliptic curve operations over the Secp256k1 curve. It is intended as a patch for the [`k256`](https://crates.io/crates/k256) rust crate and can be swapped in for accelerated signature verification usage. Note that signing from a private key is not supported.
44

55

66
## Example program
@@ -10,9 +10,9 @@ See a working example [here](https://github.com/openvm-org/openvm/blob/main/exam
1010
To use the K256 guest library, add the following dependencies to `Cargo.toml`:
1111

1212
```toml
13-
openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0-rc.10" }
14-
openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0-rc.10" }
15-
openvm-k256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0-rc.10", package = "k256" }
13+
openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0" }
14+
openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0" }
15+
openvm-k256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0", package = "k256" }
1616
```
1717

1818
The guest library provides a `Secp256k1Coord`, which represents a field element on the coordinate field of Secp256k1, and a `Secp256k1Point`, which represents an Secp256k1 elliptic curve point.
@@ -53,4 +53,3 @@ The `supported_moduli` parameter is a list of moduli that the guest program will
5353
The `ecc.supported_curves` parameter is a list of supported curves that the guest program will use. They must be provided in decimal format in the `.toml` file. For multiple curves create multiple `[[app_vm_config.ecc.supported_curves]]` sections. The order of curves in `[[app_vm_config.ecc.supported_curves]]` must match the order in the `sw_init!` macro.
5454
Also, the `struct_name` field must be the name of the elliptic curve struct created by `sw_declare!`.
5555
In this example, the `Secp256k1Point` struct is created in `openvm_ecc_guest::k256`.
56-

docs/vocs/docs/pages/book/guest-libraries/keccak256.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ See the full example [here](https://github.com/openvm-org/openvm/blob/main/examp
1717
To be able to import the `keccak256` function, add the following to your `Cargo.toml` file:
1818

1919
```toml
20-
openvm-keccak256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0-rc.10" }
20+
openvm-keccak256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0" }
2121
hex = { version = "0.4.3" }
2222
```
2323

docs/vocs/docs/pages/book/guest-libraries/ruint.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Ruint
1+
# Ruint
22

33
The Ruint guest library is a fork of [ruint](https://github.com/recmo/uint) that allows for patching of U256 operations with logic from [openvm-bigint-guest](/book/acceleration-using-extensions/big-integer).
44

@@ -13,7 +13,7 @@ See the full example [here](https://github.com/openvm-org/openvm/blob/main/examp
1313
To be able to import the `U256` struct, add the following to your `Cargo.toml` file:
1414

1515
```toml
16-
openvm-ruint = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0-rc.10", package = "ruint" }
16+
openvm-ruint = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0", package = "ruint" }
1717
```
1818

1919
### Example matrix multiplication using `I256`
@@ -27,7 +27,7 @@ See the full example [here](https://github.com/openvm-org/openvm/blob/main/examp
2727
To be able to import the `I256` struct, add the following to your `Cargo.toml` file:
2828

2929
```toml
30-
openvm-ruint = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0-rc.10", package = "ruint" }
30+
openvm-ruint = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0", package = "ruint" }
3131
```
3232

3333
### Config parameters

docs/vocs/docs/pages/book/guest-libraries/sha2.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ See the full example [here](https://github.com/openvm-org/openvm/blob/main/examp
2525
To be able to import the `sha256` function, add the following to your `Cargo.toml` file:
2626

2727
```toml
28-
openvm-sha2 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0-rc.10" }
28+
openvm-sha2 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.0" }
2929
hex = { version = "0.4.3" }
3030
```
3131

@@ -34,4 +34,4 @@ hex = { version = "0.4.3" }
3434
For the guest program to build successfully add the following to your `.toml` file:
3535

3636
```toml
37-
[app_vm_config.sha256]
37+
[app_vm_config.sha256]

0 commit comments

Comments
 (0)