运行公共网络(高级)
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 和检查点后,将它们放入你的验证者和全节点的配置目录中,然后启动你的验证者和全节点.