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.1 | 2023年12月19日 |
0.14.0 | 2023年3月29日 |
#152 在 Cargo 插件
15,668 每月下载量
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