2 个稳定版本
1.1.0 | 2024 年 4 月 16 日 |
---|---|
1.0.0 | 2023 年 4 月 21 日 |
#4 在 #aurora
3,579 每月下载量
用于 3 crates
115KB
3K SLoC
Aurora Engine
Aurora Engine 在 NEAR 协议上实现了以太坊虚拟机 (EVM)。有关更多文档,请参阅 doc.aurora.dev。
部署
网络 | 合约 ID | 链 ID |
---|---|---|
主网 | aurora |
1313161554 |
测试网 | aurora |
1313161555 |
本地 | aurora.test.near |
1313161556 |
开发
先决条件
- Node.js (v14+)
- cargo-make
cargo install --force cargo-make
开发先决条件
- Node.js (v14+)
- Docker
- cargo-make
开发
分支
构建 & 制作命令
每个带有 cargo make
的任务都必须有 --profile
参数。
当前可用的 profile
有
mainnet
:适用于主网。mainnet-silo
:silo 合约适用于主网。testnet
:适用于测试网。testnet-silo
:silo 合约适用于测试网。local
:适用于本地开发。custom
:适用于自定义环境,请参阅以下说明。
在某些情况下,您可能需要一个自定义环境。这可以在 .env
文件夹中创建,命名为 custom.env
,按照其他 .env
文件的结构。有关详细信息,请参阅 bin/local-custom.env
。
每次调用 make
都必须遵循以下模式,尽管在某些情况下(例如清理)不需要 --profile
。
cargo make [--profile <profile>] <task>
构建引擎和合约
可以使用几个命令来构建二进制文件。以下列出了 task
字段目前支持的参数:
default
:不需要指定,运行build
。需要--profile
参数。build
:构建所有引擎智能合约,并在bin
文件夹中生成aurora-<profile>-test.wasm
。需要build-contracts
。需要--profile
参数。build-test
:使用测试功能构建所有以下内容。需要--profile
参数。build-contracts
:构建所有 ETH 合约。build-docker
:在 docker 构建环境中在bin
文件夹中构建aurora-<profile>-test.wasm
。此任务的目的产生可重复的二进制文件。
例如,以下将构建主网调试二进制文件
cargo make --profile mainnet build
验证二进制哈希
为了验证已部署的二进制文件与源代码匹配,您可能希望可重复地构建它并验证 SHA256 哈希是否与已部署的二进制文件匹配。这样做背后的动机是防止恶意代码被部署。
运行以下命令以生成二进制哈希
cargo make --profile <profile> build-docker
shasum -a 256 bin/aurora-<profile>.wasm
运行单元测试和集成测试
要运行测试,我们可以运行一些 cargo make 任务
test
:测试整个 cargo 工作区和 ETH 合约。需要--profile
参数。test-workspace
:仅测试 cargo 工作区。test-contracts
:仅测试合约。test
:测试整个 cargo 工作区、ETH 合约并运行 modexp 基准测试。需要--profile
参数。test-flow
:测试整个 cargo 工作区和 ETH 合约。需要--profile
参数。bench-modexp
:运行 modexp 基准测试。需要--profile
参数。
例如,以下将测试整个工作区和 ETH 合约
cargo make --profile mainnet test
运行检查和 lint
以下任务可用于运行 lint 和检查:
check
:检查格式、clippy 和 ETH 合约。check-contracts
在 ETH 合约上运行 yarn lints。check-fmt
:仅检查工作区 Rust 格式。clippy
:仅使用 clippy 检查 Rust 工作区。
例如,以下命令将运行检查。这里不需要 profile
。
cargo make check
清理
以下任务可用于清理工作区:
clean
:清理所有已构建的二进制文件和 ETH 合约。clean-cargo
:使用 cargo 清理。clean-contracts
:清理ETH合约。clean-bin
:清理二进制文件。
此外,还包括但不限于 clean
任务
sweep
:清除ENV中指定天数的记录,默认为30天。
例如,以下命令将清除所有内容。 profile
不是必需的
cargo make clean
许可证
aurora-engine 拥有多项许可证
- 除
engine-test
之外的所有crate都拥有 CCO-1.0 许可证 engine-test
拥有 GPL-v3 许可证
依赖关系
~3.5–5MB
~107K SLoC