Skip to content

Releases: risc0/risc0

v0.11.1

13 Aug 21:19
ce8f9b9
Compare
Choose a tag to compare

What's Changed

This patch release updates internal crate dependencies to 0.11 (instead of 0.11.0-rc.4)

Full Changelog: v0.11.0...v0.11.1

v0.11.0

13 Aug 01:22
bd30d80
Compare
Choose a tag to compare

Release Notes

Thanks to community members @cemozerr, @ianklatzco, and @hcho1989 for their contributions to this release!

Breaking Changes

Crate dependencies

Crates have been simplified:

  • Consolidation into risc0-zkp
    • risc0-zkp-core
  • Consolidation into risc0-zkvm
    • risc0-zkvm-host
    • risc0-zkvm-core
    • risc0-zkvm-serde
    • risc0-zkvm-verify

Look at this password checker Cargo.toml file for an example. Previously, the listed dependencies were:

risc0-zkvm-host = "0.10"
risc0-zkvm-core = "0.10"
risc0-zkvm-serde = "0.10"

Now, the dependencies are:

risc0-zkp = "0.11"
risc0-zkvm = "0.11"

Guest SHA usage

If your project uses our in-house SHA implementation (optimized for the zkVM), you'll want to refer to risc0_zkp::core::sha rather than risc0_zkvm_core::sha. As an example, see our changes to the digital signature Rust example:

pub fn get_identity(&self) -> Result<risc0_zkp::core::sha::Digest> {...}

Projects that need to use risc0-zkp in the guest should set default-features = false. See our digital signatures Rust example:

risc0-zkp = { version = "0.11.0-rc.4", default-features = false }

CHANGELOG

Our pure Rust implementation of the prover is nearly complete:

  • Part 1 (includes both prove and verify implementation) by @flaub in #196
  • Part 2 by @flaub in #181
  • The Rust prover is integrated with cirgen by @flaub in #218
  • The Rust prover runs until it has been halted by @flaub in #220

We've simplified the crate system:

  • The ZKP portion of the pure Rust implementation risc0-zkvm-verify/zkp has also been moved into risc0-zkp by @flaub in #183
  • risc0-build and risc0-zkvm-guest have been extracted from risc0-zkvm by @flaub in #210
  • risc0_zkvm_guest is now its own workspace by @tzerrell in #212
  • The Rust prover APIs (FFI-based and in pure Rust) have been adjusted to behave more similarly by @shkoo in #221
  • For details on how these changes impact your projects, see our notes on updating your project dependencies.

We’ve made the following zkVM improvements:

  • The Rust standard library support continues to improve by @shkoo in #216
  • You can now embed methods with features by @cemozerr in #204
  • Code limits are now configurable with DEFAULT_METHOD_ID_LIMIT by @flaub in #203
  • Method ID now has Clone and PartialEq methods by @flaub in #186
  • You can now run the guest without generating a proof by @shkoo in #177
  • Support has been added for parsing ELF files by @flaub in #200
  • Compatibility with older C++ has been fixed by @flaub in #209

We’ve made the following build and benchmarking improvements:

  • We added a cargo-risc0 tool to manage the risc0 toolchain by @shkoo in #198
  • Cargo is now the source of truth for dependencies by @flaub in #199
  • Update to rules_rust 0.7.0 by @flaub in #206
  • Benchmark and CI have been repaired by @flaub in #215
  • Guest builds show their progress when run interactively by @shkoo in #217
  • Added cargo check —benches by @flaub in #225

Here are this release’s documentation updates:

v0.10.0

24 Jun 23:15
43d0dcf
Compare
Choose a tag to compare

What's Changed

We've made quite a few changes this time! This release includes improvements to the guest zkVM, progress towards a pure Rust implementation, work on the Receipt object, an API improvement, and expanded documentation.

Improvements have been made to the guest zkVM:

  • Rust standard library is now supported in the guest by @shkoo in #161
  • To allow users greater control over guest execution limits, the MethodID code size limit is now configurable by @flaub in #167
  • The zkVM guest now has access to more resources by @shkoo in #176
  • To improve I/O between the host and guest, A "SendRecv" GPIO call has been added by @shkoo in #173

We've also made progress towards a pure Rust zkVM implementation:

  • We've begun implementing the prover in pure Rust (part 1) by @flaub in #139
  • The r0vm is also reimplemented in Rust by @shkoo in #174
  • While a Rust implementation is underway, we have two Receipt types; to support their conversion, the visibility of a Receipt's journal and seal was changed by @flaub in #162

The following improvements have been made to Receipts and verification:

  • The Rust verifier now uses error handling instead of panics by @flaub in #169
  • A constructor has been added for the Receipt by @intoverflow in #171
  • The Receipt constructor was also added in C++ by @flaub in #172

Our API can now take in-memory buffers:

  • ELF-handling APIs take an in-memory buffer instead of a file by @shkoo in #170

Lastly, we've improved our documentation:

Full Changelog: v0.9.0...v0.10.0

v0.9.0

11 Jun 06:58
125c939
Compare
Choose a tag to compare

What's Changed

  • Minor improvements have been made to the Prover API by @spaugh in #132
  • We now avoid accumulating cached MethodIDs by @flaub in #155
    Cargo is used to check rustfmt to catch files that Bazel doesn't touch by @shkoo in #157
  • Release: v0.9.0 by @flaub in #158

Full Changelog: v0.8.0...v0.9.0

v0.8.0

09 Jun 18:22
ce0a3e8
Compare
Choose a tag to compare

What's Changed

  • The README includes a table of crate version badges by @flaub in #138
  • The merkle.rs function is now extensively commented by @BoltonBailey in #140
  • Fixed #141: including required cstddef library by @flaub in #146 (thanks @lyqingye for the bug report).
  • Guest method crates are now built automatically. As a performance improvement, method IDs are only computed when necessary by tracking changes to the SHA of corresponding ELFs. by @shkoo in #152
  • Looking for digital signature and voting machine examples? We’ve moved them to their own repository: risc0-rust-examples. by @spaugh
  • Release: v0.8.0 by @flaub in #154

v0.7.2

27 May 21:06
c92b68e
Compare
Choose a tag to compare

What's Changed

  • Looking for our Rust battleship example? We’ve moved it to its own repository:battleship-example
  • (cargo-release) version 0.7.2 by @flaub in #137

Full Changelog: v0.7.1...v0.7.2

v0.7.1

26 May 20:18
Compare
Choose a tag to compare