运行公共网络(高级)
aptos 工具支持通过所谓的创世仪式来引导新的区块链.创世仪式的输出是准备区块链进行在线运行的 move 指令的输出.输入包括:
- 一组验证者及其配置
- 初始的 Move 模块集合,称为框架
- 一个独特的 ChainId(u8),用于区分此网络与其他网络
- 对于测试链,还存在一个管理 AptosCoin 铸造的账户
- 创世组织者构建一个 Layout并分发它.
- 创世组织者准备 Aptos 框架的字节码并分发它.
- 每个参与者生成他们的 ValidatorConfiguration并分发它.
- 每个参与者从结果贡献中生成一个 genesis.blob.
- 创世组织者执行 genesis.blob以获得初始检查点并分发它.
- 每个参与者启动他们的 aptos-node.aptos-node在启动时验证创世组织者提供的带有检查点的genesis.blob.
- 当有足够的质押达到法定人数时,区块链将开始共识.
准备 aptos-core
Section titled “准备 aptos-core”以下部分依赖于 Aptos 源代码中的工具.请参阅从源代码构建 Aptos进行设置.
layout 文件
Section titled “layout 文件”layout 文件包含:
- root_key:用于 AptosCoin 管理的 Ed25519 公钥.
- users:参与者集合
- chain_id:- ChainId或一个独特的整数,用于区分此部署与其他 Aptos 网络
示例:
root_key: "0xca3579457555c80fc7bb39964eb298c414fd60f81a2f8eedb0244ec07a26e575"users:  - alice  - bobchain_id: 8构建 Aptos 框架
Section titled “构建 Aptos 框架”从你的 Aptos-core 仓库,构建框架并打包:
cargo run --package frameworkmkdir aptos-framework-releasecp aptos-framework/releases/artifacts/current/build/**/bytecode_modules/* aptos-framework-release框架将存储在 aptos-framework-release 目录中.
ValidatorConfiguration 文件
Section titled “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: ccd49f3ea764365ac21e99f029ca63a9b0fbfab1c8d8d5482900e4fa32c5448aconsensus_key: "0xa05b8f41057ac72f9ca99f5e3b1b787930f03ba5e448661f2a1fac98371775ee"account_key: "0x3d15ab64c8b14c9aab95287fd0eb894aad0b4bd929a5581bcc8225b5688f053b"network_key: "0x43ce1a4ac031b98bb1ee4a5cd72a4cca0fd72933d64b22cef4f1a61895c2e544"validator_host:  host: bobs_host  port: 6180full_node_host:  host: bobs_host  port: 6182stake_amount: 1要使用 aptos CLI 生成此文件:
- 生成你的验证者密钥:
cargo run --package aptos -- genesis generate-keys --output-dir bobs- 生成你的 ValidatorConfiguration:
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.
生成创世和检查点
Section titled “生成创世和检查点”在获得 layout 文件,每个 ValidatorConfiguration 文件和框架发布后,可以生成 genesis.blob 和检查点.重要的是要验证在早期阶段提供的 ValidatorConfiguration 与用于生成 genesis.blob 的分发版本相同.如果有不匹配,请通知所有参与者.
要生成 genesis.blob 和检查点:
- 将 layout文件放在一个目录中,例如genesis.
- 将所有 ValidatorConfiguration文件放入genesis目录.
- 确保 ValidatorConfiguration文件在layout文件的users集合中列出.
- 在 genesis目录中创建一个framework目录,并将框架发布的.mv文件放入framework目录.
- 使用 aptosCLI 生成创世和检查点:
cargo run --package aptos -- genesis generate-genesis --local-repository-dir genesis启动 aptos-node
Section titled “启动 aptos-node”生成 genesis.blob 和检查点后,将它们放入你的验证者和全节点的配置目录中,然后启动你的验证者和全节点.