2 个稳定版本

1.1.0 2024 年 4 月 16 日
1.0.0 2023 年 4 月 21 日

#4#aurora

Download history 1446/week @ 2024-04-30 1366/week @ 2024-05-07 1288/week @ 2024-05-14 1333/week @ 2024-05-21 1735/week @ 2024-05-28 2412/week @ 2024-06-04 1623/week @ 2024-06-11 1897/week @ 2024-06-18 965/week @ 2024-06-25 1221/week @ 2024-07-02 1014/week @ 2024-07-09 1492/week @ 2024-07-16 791/week @ 2024-07-23 918/week @ 2024-07-30 817/week @ 2024-08-06 762/week @ 2024-08-13

3,579 每月下载量
用于 3 crates

CC0 许可证

115KB
3K SLoC

Aurora Engine

Project license Discord Lints Tests Builds

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

开发

分支

  • master 是当前稳定分支。它必须随时准备在链上随时部署。

  • develop 是我们的前沿开发分支。通常,请将所有拉取请求目标指向此分支。

构建 & 制作命令

每个带有 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