You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,11 +5,12 @@ All notable changes to OpenVM will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
and this project follows a versioning principles documented in [VERSIONING.md](./VERSIONING.md).
7
7
8
-
## v1.4.0-rc (Unreleased)
8
+
## v1.4.0 (2025-09-01)
9
9
10
10
### Added
11
11
- (Verifier) An `AggVerifyingKey` struct is introduced so that verifying the final STARK proof does not require the proving key.
12
12
- (Config) Added `addr_spaces` vector of `AddressSpaceHostConfig` to `MemoryConfig`.
13
+
- (Prover) Nvidia GPU trace generation and STARK backend proving support.
13
14
14
15
### Changed
15
16
- (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).
Copy file name to clipboardExpand all lines: crates/circuits/mod-builder/src/README.md
+5-6Lines changed: 5 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -84,7 +84,7 @@ Note that the variables in the expression tree don't actually have names, they a
84
84
The `ExprBuilder` struct stores the constraints and computes associated to a single circuit.
85
85
Every `FieldVariable` stores a shared reference to an `ExprBuilder` and it mutates the builder as needed.
86
86
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.
88
88
We can pass the `ExprBuilder` into the `FieldExpr` constructor to build an AIR.
89
89
90
90
## The Select operation
@@ -140,7 +140,7 @@ Increase `range_checker_bits` and try again.
140
140
141
141
This error could also occur if you are calling `FieldVariable::int_add` or `FieldVariable::int_mul` with large constants.
142
142
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.
144
144
145
145
146
146
## Usage
@@ -169,7 +169,7 @@ See the [examples section](#examples) for code examples to follow along with.
169
169
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).
170
170
But it gives greater control over how the expression is broken down into constraints, if that's needed.
171
171
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:
173
173
- If your chip has no setup instruction, use `FieldExpr::new(builder, range_bus, false)`.
174
174
- If your chip has a setup instruction that only checks if the modulus is correct, use `FieldExpr::new(builder, range_bus, true)`.
175
175
- 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.
179
179
180
180
See these examples in the elliptic curve extension code:
Copy file name to clipboardExpand all lines: docs/vocs/docs/pages/book/guest-libraries/k256.mdx
+4-5Lines changed: 4 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# K256
2
2
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.
4
4
5
5
6
6
## Example program
@@ -10,9 +10,9 @@ See a working example [here](https://github.com/openvm-org/openvm/blob/main/exam
10
10
To use the K256 guest library, add the following dependencies to `Cargo.toml`:
11
11
12
12
```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" }
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
53
53
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.
54
54
Also, the `struct_name` field must be the name of the elliptic curve struct created by `sw_declare!`.
55
55
In this example, the `Secp256k1Point` struct is created in `openvm_ecc_guest::k256`.
Copy file name to clipboardExpand all lines: docs/vocs/docs/pages/book/guest-libraries/ruint.mdx
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Ruint
1
+
# Ruint
2
2
3
3
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).
4
4
@@ -13,7 +13,7 @@ See the full example [here](https://github.com/openvm-org/openvm/blob/main/examp
13
13
To be able to import the `U256` struct, add the following to your `Cargo.toml` file:
0 commit comments