Skip to content
🎉 Welcome to the new Aptos Docs! Click here to submit feedback!
Build
Running a Public Network (Advanced)

运行公共网络(高级)

⚠️

如果你只是想运行你自己的本地网络进行测试,你可以在这里学习如何运行一个本地网络

创世仪式(Genesis ceremonies)

aptos 工具通过一个特别的流程,即创世仪式,来启动新的区块链。这个过程的核心是执行一系列 move 指令,以便为区块链的在线部署做好准备。这个流程涉及到以下几个输入要素:

  • 一系列验证者及其配置信息。
  • 称为框架的初始 Move 模块集。
  • 一个独特的 ChainId (u8),用来识别不同的网络。
  • 在测试链中,有一个专门负责管理铸造 AptosCoin 的账户。

开始生成创始区块

  • 创始组织者构建并分发一个 Layout
  • 创始组织者准备并分发 Aptos 框架的字节码。
  • 各参与者生成自己的验证器配置(ValidatorConfiguration)并将其分发。
  • 各参与者基于收到的贡献创建一个 genesis.blob 文件。
  • 创始组织者运行 genesis.blob,以生成初始路标文件并将其分发。
  • 各参与者启动他们的 aptos-node。启动时,aptos-node 会验证创始组织者提供的含有路标文件的 genesis.blob
  • 一旦拥有足够的权益(stack),区块链将开始达成共识。

准备 aptos-core

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

layout 文件

layout 文件包含:

  • root_key:用一个用于 AptosCoin 管理操作的 Ed25519 公钥。
  • users:参与者的集合
  • chain_id:为 ChainId 或一个唯一的整数,以区别于其他被部署的 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:该节点质押的 Coin 数量。这个数量应该是 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 文件夹中。
  • 确保 layout 文件里的 users 列表中包含了所有 ValidatorConfiguration 文件。
  • genesis 文件夹中创建一个名为 framework 的子文件夹,并把框架的发行版本 .mv 文件放入其中。
  • 运用 aptos 命令行工具来生成创世区块 genesis.blob 和路标文件。
Terminal
cargo run --package aptos -- genesis generate-genesis --local-repository-dir genesis

启动 aptos-node

生成 genesis.blob 和路标文件后,将它们放入你的验证者节点和全节点的配置目录,并启动你的验证者节点和验证者全节点。