Releases: succinctlabs/sp1
v4.0.0-rc.1
A release candidate for SP1 V4.0.0. This release introduces major performance improvements across the board for all programs and workloads.
🚀 Highlights
- GPU Kernel Optimizations
We've done a lot of work optimizing our GPU Kernels for the expensive parts of the prover such as quotient and opening. We've also added support for trace generation on GPU in this release which reduces end-to-end latency.
- Recursion Aritmetization Optimizations
We've used some new tricks to reduce our arithmetization overhead in recursion, bringing faster and more efficient proofs of constant size to all programs.
- RSA and Secp256r1 Precompiles
Support for RSA and Secp256r1 precompiles have been added.
🛠 Production-Readiness
v4.0.0-rc.1 is not yet production-ready. We recommend using this release only for benchmarking purposes.
📦 Changes
- chore(sdk): update network-v2 proto
- PR: #1669
- docs: common issues
- PR: #1666
- fix: mock prover groth16 bytes
- PR: #1684
- fix: additional guards on entrypoint macro
- PR: #1659
- feat(sdk): download proof from public URI
- PR: #1686
- feat(sp1up): error messages for bad inputs.
- PR: #1696
- fix: patch bls and bn
- PR: #1695
- Docs: Updating missing arguments in SP1 Quickstarter
- PR: #1681
- docs: Update example commands from cd script to cd ../script
- PR: #1697
- chore: update images
- PR: #1700
- chore: docs off dev
- PR: #1701
- chore: fix typo in image
- PR: #1702
- test: add network-v2 to perf test suite
- PR: #1689
- feat: security md
- PR: #1705
- feat: executor optimizations
- PR: #1692
- perf: implement select precompile
- PR: #1707
- chore: use tags instead of branches to label patches
- PR: #1706
- feat: remove assign in airs
- PR: #1710
- feat: new crate for no-std groth/plonk verification
- PR: #1685
- feat: executor optimizations
- PR: #1712
- fix: Revert "feat: executor optimizations"
- PR: #1718
- perf: remove redundant last compress
- PR: #1724
- fix: empty shape config
- PR: #1728
- feat: executor optimizations + separate postprocess
- PR: #1727
- perf: add batch FRI precompile
- PR: #1730
- chore: fix comments and logging for select precompile
- PR: #1738
- perf: implement local-only optimization
- PR: #1711
- chore: update network-v2 proto
- PR: #1725
- docs: separate SP1VerifierGateway for PLONK and Groth16
- PR: #1740
- docs:
generating-proofs.md
- PR: #1749
- feat: new device proving key API
- PR: #1737
- perf: build time GRO-146
- PR: #1739
- docs: change docs for updated function call
- PR: #1732
- feat: new precompile secp256r1
- PR: #1612
- fix: lock file
- PR: #1756
- feat: plonk verification with
.bytes()
- PR: #1753
- feat: add issue template
- PR: #1748
- ci: check lock files in ci
- PR: #1761
- chore: lockfile cleanup
- PR: #1763
- chore: add MSRV of 1.79
- PR: #1736
- docs: verifier crate docs
- PR: #1764
- chore: crates substrate_bn version
- PR: #1769
- feat: v3 audit report
- PR: #1770
- feat: more docs about v3
- PR: #1772
- docs: ci optimizations
- PR: #1754
- fix(recursion): avoid double counting children in (cycle tracker) spans
- PR: #1773
- docs: version nits
- PR: #1774
v3.3.0
v3.0.1-alpha-b976ea6e
📦 Uncategorized
- docs: change docs for updated function call
- PR: #1732
- feat: new precompile secp256r1
- PR: #1612
- fix: lock file
- PR: #1756
- feat: plonk verification with
.bytes()
- PR: #1753
- feat: add issue template
- PR: #1748
- ci: check lock files in ci
- PR: #1761
- chore: lockfile cleanup
- PR: #1763
- chore: add MSRV of 1.79
- PR: #1736
- docs: verifier crate docs
- PR: #1764
- chore: crates substrate_bn version
- PR: #1769
- feat: v3 audit report
- PR: #1770
- feat: more docs about v3
- PR: #1772
- docs: ci optimizations
- PR: #1754
- fix(recursion): avoid double counting children in (cycle tracker) spans
- PR: #1773
- docs: version nits
- PR: #1774
v3.0.0
We're excited to release SP1 v3.0.0! SP1 v3.0.0 comes with two major performance upgrades:
- Optimized phase 1 proving
- Recursion circuit to improve recursion performance
It's available on crates.io with the version tag v3.0.0
.
Changes
- fix: gnark-ffi memory handling
- PR: #1650
- feat: allow run in dev mode
- PR: #1651
- fix: debug constraints
- PR: #1656
- fix: shape for deferred program
- PR: #1654
- feat: deferred support in perf
- PR: #1657
- fix: clippy issues in perf
- PR: #1658
- docs: update onchain usage
- PR: #1652
- fix: add support for tls connections in network-v2 rpc client
- PR: #1655
- fix: remove mention of
sp1
dir in examples' relative paths- PR: #1660
- fix: typo in the solidity section of the book
- PR: #1664
- fix: connect deferred vk root
- PR: #1649
- chore: update docs
- PR: #1671
- feat: update docs for v3 pt 2
- PR: #1672
- feat: update cargo version tag
- PR: #1673
- feat: v3.0.0
- PR: #1670
v3.0.0-rc4
📦 Uncategorized
- feat: v2.0.0
- PR: #1509
- feat: new
include_elf!
macro for importing ELF- PR: #1620
- fix: build errors on custom bin target names
- PR: #1623
- feat(cli): improve
cargo prove new
- PR: #1615
- fix(cuda-prover): dont discard stderr
- PR: #1518
- chore(deps): bump bindgen from 0.69.4 to 0.70.1
- PR: #1404
- chore(deps): bump stacker from 0.1.15 to 0.1.17
- PR: #1464
- fix(sp1-build, workflows): docker tag
- PR: #1636
- feat: phase 1 opts + recursion circuit
- PR: #1638
- feat: update to 3.0.0-rc4
- PR: #1646
- fix: fix docs
- PR: #1632
- refactor: improve cargo build reproducibility
- PR: #1647
- feat: add compiler flags to
BuildArgs
- PR: #1637
- fix: remove cargo environment vars from local build
- PR: #1630
- fix: compatibility with mock verifier contract
- PR: #1297
- fix(sdk): better error handling
- PR: #1643
- chore: fix all typos
- PR: #1626
- feat: v3.0.0-rc4
- PR: #1645
v3.0.0-rc3
📦 Uncategorized
- perf: posedion2 trace opt
- PR: #1365
- feat: make challenger fixed shape
- PR: #1395
- feat: fixed size shrink and wrap for recursion v2
- PR: #1394
- feat: small prog opts
- PR: #1388
- fix everything
- PR: #1406
- feat: merkle tree-based vector commitments
- PR: #1415
- perf: GROTH16 improvements
- PR: #1417
- feat: recursion circuit integration
- PR: #1361
- feat: infrastructure for proof shape merkle proofs
- PR: #1428
- feat: new arithmetic
- PR: #1418
- chore: merge dev
- PR: #1439
- chore: merge dev
- PR: #1442
- chore: merge dev
- PR: #1443
- Revert "chore: merge dev"
- PR: #1448
- chore: merge dev
- PR: #1449
- feat: integration constraints
- PR: #1455
- chore: merge dev
- PR: #1458
- feat: enable fixed shape in recursion circuit
- PR: #1462
- chore: allow optional proof shape in core record and program
- PR: #1460
- chore: merge dev
- PR: #1467
- chore: merge dev
- PR: #1471
- feat: fixed shapes in precompiles
- PR: #1476
- feat: better reduce api
- PR: #1486
- feat: dummy fri proofs
- PR: #1497
- feat: fixed proof shapes
- PR: #1478
- feat: added cuda action
- PR: #1492
- fix: rsp ci test
- PR: #1475
- revert: fix: rsp ci test
- PR: #1515
- perf: local bus
- PR: #1293
- feat: fixed heights for new chips
- PR: #1523
- fix: low memory shards
- PR: #1524
- feat(sdk): send cpu cycles in network
- PR: #1521
- feat: dummy shard proof
- PR: #1527
- refactor: removed use of sudo + docker from cuda crate
- PR: #1517
- fix:
copy_elf_from_output_dir
binary name- PR: #1526
- feat: Add
cycle-tracking
example with multiple binaries- PR: #1529
- feat: vk maps
- PR: #1528
- fix: local cumulative sum check in recursion
- PR: #1531
- fix: rust 1.81 toolchain build issue
- PR: #1534
- fix: uninitialized_memory hashmap issue
- PR: #1536
- ci: test toolchain installation
- PR: #1539
- docs: substrate bn
- PR: #1540
- refactor: move
SP1PublicValues
tosp1-primitives
- PR: #1546
- perf: remove unnecessary materializations of matrix views
- PR: #1547
- chore: implement raw() for groth16 proof
- PR: #1543
- chore: replace
raw()
withbytes()
in fibonacci example- PR: #1549
- feat: public value validity assertions
- PR: #1532
- feat: merge upstream changes
- PR: #1550
- feat: fixed vks in root
- PR: #1551
- feat: root and deferred
- PR: #1552
- fix: check with
is_first
instead ofis_last
in exp reverse bits chip- PR: #1482
- feat: felts to var optimization
- PR: #1553
- fix: gnark ffi fixes
- PR: #1554
- fix: conversions and bits
- PR: #1555
- fix: proof flow for v3
- PR: #1556
- chore: upgrade Rust toolchain to 1.81.0
- PR: #1559
- feat: remove exp reverse bits in wrap
- PR: #1558
- docs: why-use-sp1.md
- PR: #1557
- fix: gnark-ffi Dockerfile caching
- PR: #1564
- chore: merge dev
- PR: #1570
- chore: cleanup
- PR: #1569
- fix: shapes fixing
- PR: #1574
- fix: multi field rate and serialization
- PR: #1575
- fix: execution shard initialization
- PR: #1576
- fix: exit code
- PR: #1577
- fix: vk root in deferred
- PR: #1578
- fix: more shard options
- PR: #1586
- fix:
sp1-recursion-gnark-ffi
rebuilds unnecessarily- PR: #1583
- fix: syscall chip in shards
- PR: #1582
- chore: merge dev
- PR: #1591
- Revert "chore: merge dev"
- PR: #1592
- feat: BabyBear Optimization in GNARK
- PR: #1587
- chore: remove individual example workspaces
- PR: #1566
- chore: cleanup
- PR: #1593
- chore: clippy without
debug_assertions
- PR: #1598
- chore: remove non-existent feature
- PR: #1590
- chore: remove individual test workspaces
- PR: #1597
- fix:
multi_scalar_multiplication
- PR: #1542
- docs: update
- PR: #1585
- chore(sdk): update prost and twirp to 0.13
- PR: #1601
- feat: precompile shapes
- PR: #1600
- feat: runtime opts
- PR: #1579
- feat: trusted setup support
- PR: #1538
- chore: merge dev
- PR: #1603
- chore: Fix typos in documentation
- PR: #1512
- fix:
weierstrass_add
test- PR: #1605
- fix(docs): branch on patched bls12_381
- PR: #1596
- feat: sp1 testing suite
- PR: #1563
- feat: only call entrypoint in zkvm
- PR: #1611
- feat: artifacts
- PR: #1614
- feat: g16/plonk for network
- PR: #1617
- small tweaks
- PR: #1618
- chore: tweaks
- PR: #1619
- feat(sdk): network-v2
- PR: #1607
- chore: cargo machete
- PR: #1606
- feat: shape artifacts in s3
- PR: #1621
v3.0.0-rc1
What's Changed
- feat: v1.2.0-rc1 by @mattstam in #1389
- fix: add nonce constraint to fp by @jtguibas in #1423
- feat: compile sdk to wasm-unknown-unknown by @yuwen01 in #1429
- feat: performance test + add to CI by @mattstam in #1426
- feat: infrastructure for proof shape merkle proofs by @erabinov in #1428
- feat: LookupId struct instead of u128 by @shakedregev in #1427
- fix: memory not added to checkpoint in unconstrained mode by @ctian1 in #1436
- ci: only post perfomance to slack on dev merge by @mattstam in #1431
- feat: new arithmetic by @tamirhemo in #1418
- chore: v1.2.0-rc.2 by @ctian1 in #1438
- chore: bump sp1-gpu version by @ctian1 in #1440
- chore: merge dev by @tamirhemo in #1439
- chore: merge dev by @tamirhemo in #1442
- revert: "fix: add nonce constraint to fp" by @mattstam in #1444
- fix: check branch CI by @ctian1 in #1445
- chore: merge dev by @tamirhemo in #1443
- Revert "chore: merge dev" by @tamirhemo in #1448
- chore: merge dev by @tamirhemo in #1449
- fix: v1.2.0-rc2 by @ctian1 in #1446
- revert: "revert: fix: add nonce constraint to fp" by @mattstam in #1447
- chore: minor eval changes by @mattstam in #1452
- fix(log): add instrument for prover::compress by @lispc in #1457
- fix: oom fixes for rsp by @jtguibas in #1456
- feat: integration constraints by @tamirhemo in #1455
- chore: merge dev by @tamirhemo in #1458
- chore(build): friendly error msg when Cargo.toml is not found by @4rgon4ut in #1459
- feat: enable fixed shape in recursion circuit by @tamirhemo in #1462
- chore: allow optional proof shape in core record and program by @erabinov in #1460
- chore: added rsp example by @yuwen01 in #1454
- feat: v1.2.0 fixes by @jtguibas in #1466
- chore: merge dev by @tamirhemo in #1467
- chore: added json by @puma314 in #1470
- fix: typo in rsp example ci test by @yuwen01 in #1465
- chore: fix crate version by @jtguibas in #1472
- chore: disable lowmem ci test by @yuwen01 in #1474
- chore: merge dev by @tamirhemo in #1471
- feat: autoscale shard / batch size by @yuwen01 in #1435
- fix: example style by @yuwen01 in #1477
- feat: fixed shapes in precompiles by @tamirhemo in #1476
- perf: use
vec_map
paging mmu for executor memory by @tqn in #1461 - docs: Fixed broken link by @lsquaredleland in #1479
- feat: specify version in network client by @mattstam in #1481
- docs:
SP1VerifierGateway
by @ratankaliani in #1483 - fix: segfault on m3 by @yuwen01 in #1484
- perf: optimize
ExecutionReport
andcreate_alu_lookup_id
iff mode is trace by @tqn in #1480 - feat: better reduce api by @tamirhemo in #1486
New Contributors
- @shakedregev made their first contribution in #1427
- @4rgon4ut made their first contribution in #1459
- @lsquaredleland made their first contribution in #1479
Full Changelog: v1.3.0-rc1...release/v3.0.0-rc1
v2.0.0
📦 Uncategorized
- feat: v1.2.0-rc1
- PR: #1389
- fix: add nonce constraint to fp
- PR: #1423
- feat: compile sdk to wasm-unknown-unknown
- PR: #1429
- feat: performance test + add to CI
- PR: #1426
- feat: LookupId struct instead of u128
- PR: #1427
- fix: memory not added to checkpoint in unconstrained mode
- PR: #1436
- ci: only post perfomance to slack on dev merge
- PR: #1431
- chore: v1.2.0-rc.2
- PR: #1438
- chore: bump sp1-gpu version
- PR: #1440
- revert: "fix: add nonce constraint to fp"
- PR: #1444
- fix: check branch CI
- PR: #1445
- fix: v1.2.0-rc2
- PR: #1446
- revert: "revert: fix: add nonce constraint to fp"
- PR: #1447
- chore: minor eval changes
- PR: #1452
- fix(log): add instrument for prover::compress
- PR: #1457
- fix: oom fixes for rsp
- PR: #1456
- chore(build): friendly error msg when Cargo.toml is not found
- PR: #1459
- chore: added rsp example
- PR: #1454
- feat: v1.2.0 fixes
- PR: #1466
- chore: added json
- PR: #1470
- fix: typo in rsp example ci test
- PR: #1465
- chore: fix crate version
- PR: #1472
- feat: v1.2.0 official release
- PR: #1473
- chore: disable lowmem ci test
- PR: #1474
- feat: autoscale shard / batch size
- PR: #1435
- fix: example style
- PR: #1477
- perf: use
vec_map
paging mmu for executor memory- PR: #1461
- docs: Fixed broken link
- PR: #1479
- feat: specify version in network client
- PR: #1481
- docs:
SP1VerifierGateway
- PR: #1483
- fix: segfault on m3
- PR: #1484
- perf: optimize
ExecutionReport
andcreate_alu_lookup_id
iff mode is trace- PR: #1480
- fix: uncomment p2 wide constraint
- PR: #1489
- docs: add optimism chains
- PR: #1491
- fix: eval compress calculation
- PR: #1493
- feat: added RSA example and updated it to use the sha2 patch
- PR: #1494
- fix: core compress pv in sdk
- PR: #1501
- feat: automatic solidity verifier adjustments
- PR: #1496
- docs: use v2 / v3
- PR: #1490
- docs: add groth16
- PR: #1503
- chore: bump version
- PR: #1504
- chore: merge main
- PR: #1508
- docs: fix book link
- PR: #1510
- docs: fix supported versions link
- PR: #1511
- feat: v2.0.0
- PR: #1509
v1.2.0
v1.2.0-rc2
📦 Uncategorized
- fix: make v2 compiler deterministic
- PR: #1420
- fix: add rint and rintf
- PR: #1422
- perf: basic constant propagation for
Imm
instructions in v2 compiler- PR: #1421
- fix: zkvm readme paths
- PR: #1416
- fix: avoid duplicate logic in
read_const
- PR: #1424
- fix: add nonce constraint to fp
- PR: #1423
- feat: compile sdk to wasm-unknown-unknown
- PR: #1429
- feat: performance test + add to CI
- PR: #1426
- feat: LookupId struct instead of u128
- PR: #1427
- fix: memory not added to checkpoint in unconstrained mode
- PR: #1436
- ci: only post perfomance to slack on dev merge
- PR: #1431
- chore: v1.2.0-rc.2
- PR: #1438
- chore: bump sp1-gpu version
- PR: #1440
- revert: "fix: add nonce constraint to fp"
- PR: #1444
- fix: check branch CI
- PR: #1445
- fix: v1.2.0-rc2
- PR: #1446