运行公共网络(高级)
⚠️
如果你只想运行自己的本地测试网络,可以在这里学习如何操作。
创世仪式
aptos
工具支持通过所谓的创世仪式来引导新的区块链。创世仪式的输出是准备区块链进行在线运行的 move 指令的输出。输入包括:
- 一组验证者及其配置
- 初始的 Move 模块集合,称为框架
- 一个独特的
ChainId
(u8),用于区分此网络与其他网络 - 对于测试链,还存在一个管理 AptosCoin 铸造的账户
生成创世
- 创世组织者构建一个
Layout
并分发它。 - 创世组织者准备 Aptos 框架的字节码并分发它。
- 每个参与者生成他们的
ValidatorConfiguration
并分发它。 - 每个参与者从结果贡献中生成一个
genesis.blob
。 - 创世组织者执行
genesis.blob
以获得初始检查点并分发它。 - 每个参与者启动他们的
aptos-node
。aptos-node
在启动时验证创世组织者提供的带有检查点的genesis.blob
。 - 当有足够的质押达到法定人数时,区块链将开始共识。
准备 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
:验证者所在的网络地址。这包含一个host
和port
字段。host
应该是 DNS 名称或 IP 地址。目前只支持 IPv4。full_node_host
:全节点所在的可选网络地址。这包含一个host
和port
字段。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 生成此文件:
- 生成你的验证者密钥:
Terminal
cargo run --package aptos -- genesis generate-keys --output-dir bobs
- 生成你的
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 .
- 最后一个命令将生成一个
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
和检查点后,将它们放入你的验证者和全节点的配置目录中,然后启动你的验证者和全节点。