v0.17.0
With our 0.17 release, we have expanded our Bonsai content and updated the installation process. The latter change means existing users will have to install again when upgrading, by running cargo install cargo-risczero
and cargo risczero install
. See the Getting Started section of our README for prerequisites and more details. We've also added a developer mode for more rapid development and continued to streamline the proof and receipt APIs, among other changes.
Thank you to community members @criadoperez, @austinabell, and @roseiliend for their contributions to this release!
Important and Breaking Changes
- Added a
cargo risczero install
tool for setting up the RISC Zero toolchain. Fixes in this release require a "risc0
" rustup toolchain; thecargo risczero install
command will install this toolchain and do other RISC Zero setup. All users, new and old, will need to run this command to install the RISC Zero zkVM. Full details are available in the Getting Started section of our README. - Added a Developer Mode enabling more rapid development by skipping proving and validation steps. No proof is generated or verified while in developer mode, and in particular running verification in developer mode provides no security whatsoever. The
RISC0_DEV_MODE
environment variable controls whether developer mode is enabled, and this feature can be fully disabled at build time, regardless of environment, by using thedisable-dev-mode
feature flag on therisc0-zkvm
crate. - Streamlined the Receipt, Executor, and Prover APIs. A basic high-level usage now looks like
let receipt = default_prover().prove_elf(env, SOME_ELF).unwrap();
. Receipt implementation details are encapsulated in an InnerReceipt object which most users will not need to interact with. The Prover now has additional high level methods, includedprove
andprove_elf
. See the Executor, Receipt, and Prover sections of our docs for the current API, and this PR for details about the changes. - Moved binary format functionality into a separate
risc0-binfmt
crate. See its docs for details. - Prevented guest from writing to memory that will crash the prover if tampered with. See this PR for details.
- Fixed large I/O and prevent splitting to a new segment when no instructions have been run. See this PR for details.
- Updated circuit as well in the previous PR as well as this PR.
- Pinned the
cc
crate to a specific version as a workaround to build problems when using its latest version. - Adjusted the Bonsai Ethereum Relay in several ways, including websockets, Solidity CI, SNARK seal support, and verify interface
What's Changed
- Bonsai Governance Showcase and Ethereum smart contract libraries. by @nategraf in #695
- Bonsai relay by @capossele in #696
- Improve Bonsai Relay by @capossele in #699
- Add xtask install by @flaub in #701
- Remove thiserror from risc0-zkp by @flaub in #704
- Fix solc installation by @flaub in #705
- Update Cargo.lock files by @flaub in #711
- chore: remove allow(unused) from guest code, cleanup by @austinabell in #688
- add a hook in Session to support the proof generation progress bar by @roseiliend in #717
- Fix typos in governance demo by @criadoperez in #724
- Add RSA support to sha2 compat by @flaub in #726
- zkVM: split binfmt feature to a new "risc0-binfmt" crate for modularity by @SchmErik in #725
- Emulator: Improve usability by restricting memory region access for guest programs by @SchmErik in #727
- Adjust risc0-binfmt deps by @flaub in #731
- Run examples as separate job by @flaub in #732
- Adjust cache keys by @flaub in #733
- Fix for large I/O by @flaub in #737
- Replace Receipt trait with InnerReceipt enum by @flaub in #703
- Update links for new website by @tzerrell in #728
- Editing pass on starter template readme by @pdg744 in #693
- typo fixes on bonsai governance readme by @pdg744 in #741
- Add default run to ECDSA example to make cargo run just work by @nategraf in #742
- Add test for in-browser verification by @flaub in #716
- Provide a higher-level API for most use-cases by @flaub in #748
- Fixes for clippy and add lint to CI by @flaub in #751
- workspace: patch cc crate by @SchmErik in #757
- update generated code by @SchmErik in #761
- refactor(ethereum-relay): Make websocket connection more reliable by @Cardosaum in #697
- updating bevy readme by @pdg744 in #683
- Support SNARK seals in Bonsai relay and enable CI for Solidity code via Foundry by @nategraf in #712
- Fix typos in IBonsaiRelay by @nategraf in #771
- Add cargo-risczero install by @flaub in #773
- Support CI in cargo-risczero build-toolchain by @flaub in #778
- Added GITHUB_TOKEN explicitly to risczero install by @mothran in #780
- Remove trailing slash from URL in bonsai-sdk by @mothran in #759
- zkvm: add dev mode by @SchmErik in #752
- Convert dev mode unit tests to integration tests by @flaub in #785
- Commented out governance with-zkvm tests by @mothran in #781
- updating chess readme by @pdg744 in #764
- Add new verify overload to IRiscZeroVerifier.sol by @nategraf in #782
- Prepare for release v0.17.0 by @flaub in #786
New Contributors
- @roseiliend made their first contribution in #717
- @Cardosaum made their first contribution in #697
Full Changelog: v0.16.1...v0.17.0