Skip to content

v0.17.0

Compare
Choose a tag to compare
@flaub flaub released this 11 Aug 13:24
· 564 commits to main since this release
da5bc39

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; the cargo 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 the disable-dev-mode feature flag on the risc0-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, included prove and prove_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