Skip to content
🎉 Welcome to the new Aptos Docs! Click here to submit an issue.
构建CLI运行公共网络 (高级)

运行公共网络(高级)

⚠️

如果你只想运行自己的本地测试网络,可以在这里学习如何操作。

创世仪式

aptos 工具支持通过所谓的创世仪式来引导新的区块链。创世仪式的输出是准备区块链进行在线运行的 move 指令的输出。输入包括:

  • 一组验证者及其配置
  • 初始的 Move 模块集合,称为框架
  • 一个独特的 ChainId(u8),用于区分此网络与其他网络
  • 对于测试链,还存在一个管理 AptosCoin 铸造的账户

生成创世

  • 创世组织者构建一个 Layout 并分发它。
  • 创世组织者准备 Aptos 框架的字节码并分发它。
  • 每个参与者生成他们的 ValidatorConfiguration 并分发它。
  • 每个参与者从结果贡献中生成一个 genesis.blob
  • 创世组织者执行 genesis.blob 以获得初始检查点并分发它。
  • 每个参与者启动他们的 aptos-nodeaptos-node 在启动时验证创世组织者提供的带有检查点的 genesis.blob
  • 当有足够的质押达到法定人数时,区块链将开始共识。

准备 aptos-core

以下部分依赖于 Aptos 源代码中的工具。请参阅从源代码构建 Aptos进行设置。

layout 文件

layout 文件包含:

  • root_key:用于 AptosCoin 管理的 Ed25519 公钥。
  • users:参与者集合
  • chain_idChainId 或一个独特的整数,用于区分此部署与其他 Aptos 网络

示例:

root_key: "0xca3579457555c80fc7bb39964eb298c414fd60f81a2f8eedb0244ec07a26e575"
users:
  - alice
  - bob
chain_id: 8

构建 Aptos 框架

从你的 Aptos-core 仓库,构建框架并打包:

Terminal
cargo run --package framework
mkdir aptos-framework-release
cp aptos-framework/releases/artifacts/current/build/**/bytecode_modules/* aptos-framework-release

框架将存储在 aptos-framework-release 目录中。

ValidatorConfiguration 文件

ValidatorConfiguration 文件包含:

  • account_address:管理此验证者的账户。这必须从 ValidatorConfiguration 文件中提供的 account_key 派生。
  • consensus_key:用于验证来自验证者的共识消息的公钥
  • account_key:管理此验证者的账户的公钥。这用于派生 account_address
  • network_key:用于验证者和全节点网络认证和加密的公钥。
  • validator_host:验证者所在的网络地址。这包含一个 hostport 字段。host 应该是 DNS 名称或 IP 地址。目前只支持 IPv4。
  • full_node_host:全节点所在的可选网络地址。这包含一个 hostport 字段。host 应该是 DNS 名称或 IP 地址。目前只支持 IPv4。
  • stake_amount:此节点质押的代币数量。预期为 1,如果不同则配置将被视为无效。

示例:

account_address: ccd49f3ea764365ac21e99f029ca63a9b0fbfab1c8d8d5482900e4fa32c5448a
consensus_key: "0xa05b8f41057ac72f9ca99f5e3b1b787930f03ba5e448661f2a1fac98371775ee"
account_key: "0x3d15ab64c8b14c9aab95287fd0eb894aad0b4bd929a5581bcc8225b5688f053b"
network_key: "0x43ce1a4ac031b98bb1ee4a5cd72a4cca0fd72933d64b22cef4f1a61895c2e544"
validator_host:
  host: bobs_host
  port: 6180
full_node_host:
  host: bobs_host
  port: 6182
stake_amount: 1

要使用 aptos CLI 生成此文件:

  1. 生成你的验证者密钥:
Terminal
cargo run --package aptos -- genesis generate-keys --output-dir bobs
  1. 生成你的 ValidatorConfiguration
Terminal
cargo run --package aptos -- \\
    genesis set-validator-configuration \\
    --keys-dir bobs \\
    --username bob \\
    --validator-host bobs_host:6180 \\
    --full-node-host bobs_host:6180 \\
    --local-repository-dir .
  1. 最后一个命令将生成一个 bob.yaml 文件,应该分发给其他参与者用于生成 genesis.blob

生成创世和检查点

在获得 layout 文件、每个 ValidatorConfiguration 文件和框架发布后,可以生成 genesis.blob 和检查点。重要的是要验证在早期阶段提供的 ValidatorConfiguration 与用于生成 genesis.blob 的分发版本相同。如果有不匹配,请通知所有参与者。

要生成 genesis.blob 和检查点:

  • layout 文件放在一个目录中,例如 genesis
  • 将所有 ValidatorConfiguration 文件放入 genesis 目录。
  • 确保 ValidatorConfiguration 文件在 layout 文件的 users 集合中列出。
  • genesis 目录中创建一个 framework 目录,并将框架发布的 .mv 文件放入 framework 目录。
  • 使用 aptos CLI 生成创世和检查点:
Terminal
cargo run --package aptos -- genesis generate-genesis --local-repository-dir genesis

启动 aptos-node

生成 genesis.blob 和检查点后,将它们放入你的验证者和全节点的配置目录中,然后启动你的验证者和全节点。