As with all our pre-1.0 versions, our codebase and APIs remain under heavy development. Take a look at the "Breaking Changes" section below for the changes we think are likely to affect your projects. That said, we've probably missed some things. If you run into problems, we invite you to open an issue or reach out to us on Discord.
We've created a cargo risczero tool for creating, managing, and testing RISC Zero projects. Check out cargo risczero new
the next time you start a new project!
Thanks to community members @kubaplas, @KaiGeffen, and @justinFrevert for their contributions to this release!
Breaking Changes
risc0_zkvm::Prover
no longer takes animage_id
parameter. The Image ID is instead calculated from the supplied ELF binary.- We have moved the examples and starter template into our main repository. You can now find the examples in the examples directory. You can generate a starter project from our template using our cargo risczero tool. The standalone
risc0-rust-examples
andrisc0-rust-starter
repositories are deprecated. - The backend for host-guest communication has been updated. There have been some corresponding changes to the API for host-guest communication, including some breaking changes, although the most commonly used functions like
env::read
will generally still work without adjustment. Check out the newenv::stderr
,env::stdin
, andenv::stdout
! See theguest::env
documentation and theprove::io
documentation for more details. - Replaced
risc0_zkvm::MemoryImage::root
withrisc0_zkvm::MemoryImage::get_root()
. - Dropped
VerificationError::SealJournalLengthMismatch
and renamedVerificationError::JournalSealRootMismatch
toVerificationError::JournalDigestMismatch
.
Changelog
- Programmatically generate Poseidon constants by @jbruestle in #385
- Split each example methods into its own directory by @flaub in #396
- Use tempdir_in OUT_DIR to prevent cross-fs-unlink by @mothran in #395
- Add waldo example by @flaub in #399
- Benchmark workflows by @mothran in #398
- Using Blake2b as a hash function by @kubaplas in #401
- Add "copy-in" to rv32 circuit by @shkoo in #390
- Restrict benchmarks to bench machines by @flaub in #404
- Add starter template for Bonsai applications by @nategraf in #403
- Drop vulnerable remove_dir_all dep by @flaub in #405
- Update logo by @tzerrell in #411
- Scope benchmarks to just risc0 code by @mothran in #412
- Replace @kt3k/license-checker with license-check.py by @flaub in #406
- Add actions for rustup and sccache by @flaub in #413
- Remove FFPU by @shkoo in #397
- Have Bonsai template use path dep and address review comment from #403 by @nategraf in #408
- [Bonsai Template] Split Bonsai logic into BonsaiApp contract by @nategraf in #414
- Added python install step to CI by @mothran in #417
- CI: disable building dependency docs and zkvm guests by @mothran in #418
- [Bonsai Template] Update guest serialization to latest Bonsai commit by @nategraf in #416
- Expand examples in documentation by @tzerrell in #393
- Update Cargo.lock and drop unused by @flaub in #419
- One comment per benchmark PR check. by @mothran in #407
- Use new m2 macs by @flaub in #422
- Change RNG semantics to help Poseidon. by @jbruestle in #421
- Fixed example code linking to wrong youtube video by @KaiGeffen in #424
- Full documentation for
risc0_zkvm
by @tzerrell in #425 - Poseidon bug fix by @jbruestle in #427
- Drop INPUT region by @flaub in #428
- zkvm: add sys_rand to generate random numbers for the guest by @SchmErik in #389
- Require docs for
risc0-core
by @tzerrell in #429 - Document journal is written by commit by @tzerrell in #430
- Have cuda hal fall back to CPU for Poseidon support. by @jbruestle in #432
- Add rust-cache to workflows by @mothran in #423
- Guest I/O, now with posix style! by @shkoo in #426
- Added pull-req perms for comment creation by @mothran in #440
- Add additional perms for PR comments by @mothran in #442
- Partial experimental preflight implementation for riscv32im by @shkoo in #447
- zkvm: add guest support for getrandom by @SchmErik in #445
- Divide workflow for bench_pr to allow forked repo PR's. by @mothran in #446
- Split core zkp kernels and rv32im kernel into seperate sys crates by @jbruestle in #449
- Support for stdin and getenv in guest by @shkoo in #452
- Add no-std fix for WASM/Substrate chains by @justinFrevert in #438
- Add support for Cuda Poseidon hal. by @jbruestle in #454
- Attempt to fix unzip action failures by @mothran in #450
- Bug fix for new kernels by @jbruestle in #459
- Adjusted benchmark workflow with PR number by @mothran in #458
- Reference
rust guest workarounds
tag by @tzerrell in #451 - EVM example by @mothran in #455
- Move benchmark comment files to runner.temp by @mothran in #462
- Add concurrency to CI by @rlukata in #463
- adding warning about memory by @pdg744 in #464
- Continuations, part 1 by @flaub in #461
- Migrate guest's concept of "initial input" to be a more standard "stdin" by @shkoo in #468
- Update directories requirement from 4.0 to 5.0 by @dependabot in #456
- minor copy editing on evm example by @pdg744 in #467
- Updates to Wordle text and yellow highlight by @3lkn in #436
- Add tool for datasheet generation by @flaub in #473
- Workaround for sccache issue in CI by @flaub in #474
- Added
prod
label to workflows by @mothran in #475 - cargo-risczero tool by @mothran in #453
- Fixed a typo in
risczero new
template by @mothran in #477 - Fixes for cargo-risczero new by @flaub in #480
- Update template & examples references by @tzerrell in #478
- Bump version to 0.14.0-rc.1 by @flaub in #483
New Contributors
- @kubaplas made their first contribution in #401
- @KaiGeffen made their first contribution in #424
- @justinFrevert made their first contribution in #438
Full Changelog: v0.13.0...v0.14.0