16 个版本 (破坏性更新)
0.12.0 | 2023年8月30日 |
---|---|
0.10.1 | 2023年8月18日 |
0.10.0 | 2023年7月26日 |
#655 in 文件系统
每月2,407次下载
165KB
2.5K SLoC
acvm-backend-barretenberg
一个 ACVM 后端,允许对 Aztec Lab 的 Barretenberg 库进行 ACIR 电路的证明/验证。
验证合约仓库
由这个库生成的 验证合约 在 https://github.com/AztecProtocol/aztec-verifier-contracts 中开发。因此,我们无法直接接受对合约的修改,对合约的任何更改都必须首先在上游仓库中进行并得到接受。
本项目工作
由于原生依赖项众多,该项目使用 Nix 和 direnv 来简化开发体验。
设置您的环境
为了获得最佳体验,请按照以下说明设置您的环境
- 按照操作系统的说明安装 Nix
- 创建文件
~/.config/nix/nix.conf
,内容如下
experimental-features = nix-command
extra-experimental-features = flakes
- 通过运行将 direnv 安装到您的 Nix 配置文件中
nix profile install nixpkgs#direnv
- 按照 他们的指南 将 direnv 添加到您的 shell 中
- 重启您的 shell
Shell & 编辑器体验
现在您的环境已设置,您可以开始处理项目。
- 克隆仓库,例如
git clone [email protected]:noir-lang/aztec_backend
- 导航到目录
cd aztec_backend
- 您应该会看到一个 direnv 错误,因为默认不允许项目。确保您已审查并信任我们的
.envrc
文件,然后您需要运行
direnv allow
- 现在,等待一段时间,直到所有原生依赖项都构建完成。这需要一些时间,direnv 会警告您需要很长时间,但我们需要让它运行。
- 当您再次看到提示时,您可以在项目目录中开始编辑器(我们推荐 VSCode)
code .
- (推荐) 首次启动 VSCode 时,您应该会提示安装我们推荐的插件。我们强烈建议安装这些插件以获得最佳的开发体验。
构建和测试
假设您正在使用 direnv
来设置您的环境,构建和测试项目可以使用典型的 cargo build
、cargo test
和 cargo clippy
命令。您会注意到 cargo
的版本与我们在 flake.nix 中指定的版本匹配,撰写本文时为 1.66.0。
如果您想在隔离的沙盒中构建整个项目,可以使用 Nix 命令
nix build .
(或nix build . -L
以获取详细输出) 在 Nix 沙盒中构建项目nix flake check
(或nix flake check -L
以获取详细输出) 在 Nix 沙盒中运行 clippy 和测试
针对 Barretenberg 的不同本地/远程版本进行构建
如果您正在此项目中工作,并想要使用 Barretenberg 的不同版本(而不是此项目所依赖的版本),则需要替换锁文件版本为您的版本。这可以通过运行以下命令完成:
nix flake lock --override-input barretenberg /absolute/path/to/your/barretenberg
您还可以使用以下命令指向 GitHub 上的分支和/或分支:
nix flake lock --override-input barretenberg github:username/barretenberg/branch_name
注意:您不想提交更新后的锁文件,因为它将在 CI 中失败!
没有 direnv
如果您对使用 direnv
持怀疑态度,可以使用 nix develop
启动子shell,然后从子shell中启动您的编辑器。但是,如果 VSCode 已经在项目目录中启动,环境将不会更新。
高级:如果您既不使用 direnv
也不在子shell中启动您的编辑器,您可以尝试安装 Barretenberg 和该包需要的其他全局依赖项。这是一个高级工作流程,可能不会得到支持!
依赖项
~16–31MB
~504K SLoC