1 个稳定版本

1.1.0 2024年4月16日

#1748 in 魔法豆

Download history 230/week @ 2024-04-18 1124/week @ 2024-04-25 1547/week @ 2024-05-02 1206/week @ 2024-05-09 1269/week @ 2024-05-16 1018/week @ 2024-05-23 2352/week @ 2024-05-30 1698/week @ 2024-06-06 1665/week @ 2024-06-13 1320/week @ 2024-06-20 1052/week @ 2024-06-27 1131/week @ 2024-07-04 1021/week @ 2024-07-11 1113/week @ 2024-07-18 964/week @ 2024-07-25 824/week @ 2024-08-01

4,227 每月下载量
用于 aurora-engine-transaction…

CC0 许可证

455KB
9K 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 是我们的前沿开发分支。通常,请将所有拉取请求 targeting 到此分支。

构建和制作命令

带有 cargo make 的每个任务都必须有一个 --profile 参数。

当前可用的 profile

  • mainnet:适合主网。
  • mainnet-silo:适合主网的隔离合约。
  • testnet:适合测试网。
  • testnet-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 

运行检查和lints

以下任务可用于运行lints和检查

  • 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 许可证

依赖项

~9MB
~174K SLoC