41 个版本 (6 个稳定版本)

1.1.0-rc.2 2024年8月22日
1.0.5 2024年7月30日
0.21.0 2024年3月12日
0.20.0-rc.12023年12月19日
0.14.0 2023年3月29日

#152Cargo 插件

Download history 3022/week @ 2024-05-03 3151/week @ 2024-05-10 3698/week @ 2024-05-17 1965/week @ 2024-05-24 2764/week @ 2024-05-31 2327/week @ 2024-06-07 2600/week @ 2024-06-14 3485/week @ 2024-06-21 3304/week @ 2024-06-28 3795/week @ 2024-07-05 3839/week @ 2024-07-12 3838/week @ 2024-07-19 4509/week @ 2024-07-26 3474/week @ 2024-08-02 3652/week @ 2024-08-09 3395/week @ 2024-08-16

15,668 每月下载量

Apache-2.0LGPL-3.0-or-later

4.5MB
26K SLoC

包含 (ELF 可执行文件/库, 1KB) src/commands/datasheet/loop.bin

cargo-risczero

cargo-risczero 是 Cargo 的扩展,用于创建、管理和测试 RISC Zero 项目。由 cargo risczero new 命令生成的默认模板支持本地和远程证明。有关更多信息,请参阅 rust-starter 模板 中的 README。

安装

要安装此 Cargo 子命令,首先需要 安装 Rust,然后执行

curl -L https://risczero.com/install | bash
rzup install

要从本地源安装,使用

cargo install --path risc0/cargo-risczero

之后,您可以通过以下方式验证其是否工作

cargo risczero --version

Docker

为了使用 build 命令,您需要在您的 PATH 中有可用的 docker。对于开发机器,这可以通过 Docker Desktop 简单完成。

安装

install 命令安装最新的 RISC Zero 工具链。此工具链用于将客户程序编译成 zkVM 可以执行的 ELF 二进制文件。

rzup install

您可以通过运行以下命令来验证是否正确安装

rustup toolchain list --verbose | grep risc0

请注意,以下预构建的主机目标可用

  • aarch64-apple-darwin
  • x86_64-unknown-linux-gnu

如果您想在不列出的主机上安装工具链,您可以使用build-toolchain命令在本地构建工具链。

new命令将从现有模板创建一个新的项目。默认使用rust-starter模板,但也可以用于本地或托管在GitHub上的其他模板。

示例

# Create a project from the main template
cargo risczero new my_project

# Create a project with 'no_std' in the guest
cargo risczero new my_project --no-std

# Disable git initialization
cargo risczero new my_project --no-git

# Create from github template
cargo risczero new my_project --template https://github.com/risc0/risc0-rust-starter

build-toolchain

使用build-toolchain命令为您的宿主机本地构建工具链。警告:这可能需要很长时间。构建的工具有效通过rustup toolchain link自动安装。

构建

使用build命令为zkVM目标riscv32im-risc0-zkvm-elf确定性构建客户代码。

编译的ELF文件保存在:./target/riscv-guest/riscv32im-risc0-zkvm-elf/docker/

通过这个容器化构建过程,我们确保无论在哪个机器或本地环境中构建您的客户代码,都将产生相同的ImageID。ImageID及其在安全性方面的重要性,在开发者FAQ中有更详细的解释。

注意:构建命令需要安装docker CLI并配置到PATH路径中。

示例

# Build the zkVM's test examples
cargo risczero build --manifest-path risc0/zkvm/methods/guest/Cargo.toml

ELFs ready at:
ImageID: 417778745b43c82a20db33a55c2b1d6e0805e0fa7eec80c9654e7321121e97af - "target/riscv-guest/riscv32im-risc0-zkvm-elf/docker/risc0_zkvm_methods_guest/multi_test"
ImageID: c7c399c25ecf26b79e987ed060efce1f0836a594ad1059b138b6ed2f123dad38 - "target/riscv-guest/riscv32im-risc0-zkvm-elf/docker/risc0_zkvm_methods_guest/hello_commit"
ImageID: a51a4b747f18b7e5f36a016bdd6f885e8293dbfca2759d6667a6df8edd5f2489 - "target/riscv-guest/riscv32im-risc0-zkvm-elf/docker/risc0_zkvm_methods_guest/slice_io"

datashet

datasheet命令对zkVM性能进行基准测试,以评估当前机器硬件的性能,然后打印出表格(以及可选的--json输出)。

查看我们的基准测试,以了解您可能会看到的数字。

架构

type Datasheet = BenchmarkData[]

type BenchmarkData = {
    name: string,
    hashfn: string,
    throughput: number,
    duration: number,
    cycles: number,
    seal: number,
}

依赖项

~32–56MB
~1M SLoC