Skip to content
Merged
Show file tree
Hide file tree
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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ To rebuild runtime assets manually, use the pinned Mopro checkout and the commit

```sh
git clone https://github.com/sergeytimoshin/mopro.git /tmp/mopro
git -C /tmp/mopro checkout 56391dc24ac4a04f046b9ec5907233449bbad55d
npm run build:runtime -- 0.3.0 /tmp/mopro
git -C /tmp/mopro checkout d352504704d83c5a4a2eae9d42d7db9b4ab3f80e
npm run build:runtime -- 0.3.1 /tmp/mopro
```

Maintainers can run the `Runtime release` GitHub Actions workflow instead. After publishing a new runtime, update the version, release URL, size, and SHA-256 in `runtime.lock.json` before changing the SDK default.
Expand Down
1 change: 1 addition & 0 deletions packages/web-prover/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Changed

- A key's first load decompresses its points on the kernel's thread pool when the runtime provides `decompress_g1` and `decompress_g2` (runtime 0.2.0): the Go bridge rewrites the compressed proving key to gnark's raw form through them and decodes that, which is also what the raw-key cache then holds. An older runtime loads as before.
- Runtime 0.3.0: the accelerator multiplies field elements four at a time in WebAssembly SIMD, solves the witness itself for circuits with gnark's `InvZeroHint` and `bits.nBits`, and uses wider MSM windows; a proof takes about a third less time than with 0.2.0.
- Runtime 0.3.1: MSM bucket points and the quotient's FFTs stay in SIMD lane form, and the solver plan builds faster; a proof takes about a fifth less time than with 0.3.0.
- The Go bridge hands the kernel its points as they lie in memory, without a copy or reflection in Go, and drops its own copies once the kernel holds them: about half the wasm heap of a loaded wide key, and a shorter load.
- After a shape's first load the Cache API keeps the bridge's raw re-encoding of the key in place of the pinned file, so a later load skips point decompression: 2x2 loads in about 0.15 s instead of 3.9 s, 8x8 in 0.54 s instead of 15 s.
- Keys live in the Cache API store `zolana-proving-keys-<key set>`; stores of other key sets, including 0.1.0-alpha's, are deleted on first use.
Expand Down
2 changes: 1 addition & 1 deletion packages/web-prover/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,4 @@ await prover.prefetch({
- `terminate()` rejects outstanding work, clears the factory and disables automatic restart. Create a new prover, or explicitly call `start(factory)` to reuse the object. A supplied single `Worker` cannot be recreated automatically.
- `WasmProverError.code` and its fixed message identify failures without serializing backend messages, witness values, causes or stacks from the backend. Core code does not log errors. The fetch adapter returns a JSON 500 with the safe `code` and `message`; cancellation rejects instead. Caller-provided abort reasons and callback errors remain caller-controlled and should not contain secrets.

The accelerator comes from the `runtime-v0.3.0` release; the Go bridge is rebuilt from source and bundled, so that release's older bridge, shim and sample request are ignored. The TypeScript worker/API boundary additionally redacts backend errors as defense in depth.
The accelerator comes from the `runtime-v0.3.1` release; the Go bridge is rebuilt from source and bundled, so that release's older bridge, shim and sample request are ignored. The TypeScript worker/API boundary additionally redacts backend errors as defense in depth.
6 changes: 3 additions & 3 deletions runtime.lock.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"format": 1,
"version": "0.3.0",
"baseUrl": "https://github.com/helius-labs/zolana-web-sdk/releases/download/runtime-v0.3.0/",
"version": "0.3.1",
"baseUrl": "https://github.com/helius-labs/zolana-web-sdk/releases/download/runtime-v0.3.1/",
"manifest": {
"asset": "runtime-manifest.json",
"size": 2456,
"sha256": "8e1d0a91f4264caeb885097de089ed28cf5668aa1bcffa5a3157ca779bbf1a66"
"sha256": "b57006134f0502d726b15a875b3a05dc7bff5329014e1422882aa09cdf6eba7b"
},
"provingKeysBaseUrl": "https://d3gbdb0egjwcw9.cloudfront.net/proving-keys/3a1c88f90f609eb1/",
"requiredKeys": [
Expand Down
2 changes: 1 addition & 1 deletion scripts/build-runtime-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set -euo pipefail
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
version="${1:-}"
mopro="${2:-}"
mopro_revision="56391dc24ac4a04f046b9ec5907233449bbad55d"
mopro_revision="d352504704d83c5a4a2eae9d42d7db9b4ab3f80e"
rust_toolchain="nightly-2025-11-15"
go_toolchain="go1.27.1"

Expand Down
Loading