跳转到内容

连接到网络

本文档描述了如何将您的验证者节点和验证者全节点(VFN)连接到 Aptos 网络.

从高层次来看,将节点连接到 Aptos 网络需要四个步骤:

  1. 初始化质押池(stake pool)

    首先,您需要初始化质押池.

  2. 加入验证者集合(validator set)

    其次,您需要加入验证者集合.

  3. 更新身份(identities)

    第三,您需要更新节点身份配置以匹配质押池地址.

  4. 引导节点(Bootstrap)

    最后,您需要引导节点,以便它们可以连接到网络并开始同步.

我们将在下面详细说明每一步.

首先,您需要为节点初始化质押池.您可以初始化两种类型的池 ———— 质押池或委托池.您可以在质押委托质押部分阅读有关这些池之间差异的更多信息.

要初始化质押池,请按照质押池操作中的说明进行.如果是要初始化委托池,请按照委托池操作中的说明进行.

接下来,您需要加入验证者集合.请按照以下步骤操作:

首先,使用您的运营者账户私钥初始化 Aptos CLI.这可以在 private-keys.yaml 文件下的 account_private_key 条目中找到.

将下面命令中的 <operator_account_private_key> 替换为文件中的值,并运行:

Terminal window
aptos init --profile mainnet-operator \
--network mainnet \
--private-key <operator_account_private_key> \
--skip-faucet

接下来,确保您有足够的资金支付网络上的交易手续费.您可以通过 CLI 运行下面的命令来检查:

Terminal window
aptos account list --profile mainnet-operator

这将显示您的验证账户中的代币余额.您将看到类似以下的输出:

"coin": {
"value": "5000"
}

接下来,您需要更新验证器和 VFN 的网络地址.这是为了确保您的节点能够连接到网络中的其他对等节点(peer).首先,通过运行下面的命令获取节点的池地址. 注意:所有者地址(owner_address)是拥有质押池账户的地址,并用于初始化质押池.

Terminal window
aptos node get-stake-pool --owner-address <owner_address>

根据上面的命令得到的池地址,您需要为您的节点更新网络地址.这可以通过执行以下命令完成.需要注意的是,执行这个操作需要使用到 operator.yaml 文件,这个文件是在您第一次部署节点时生成的.

Terminal window
aptos node update-validator-network-addresses \
--pool-address <pool-address> \
--operator-config-file ~/$WORKSPACE/$USERNAME/operator.yaml \
--profile mainnet-operator

接下来,您需要更新节点的共识密钥.这是为了确保您的节点能够参与共识.您可以通过运行下面的命令来完成.注意,它需要池地址和 operator.yaml 文件(与上述类似).

Terminal window
aptos node update-consensus-key \
--pool-address <pool-address> \
--operator-config-file ~/$WORKSPACE/$USERNAME/operator.yaml \
--profile mainnet-operator

最后,您需要加入验证者集合.您可以通过运行下面的命令来完成:

Terminal window
aptos node join-validator-set \
--pool-address <pool-address> \
--profile mainnet-operator

在区块链中,验证节点集合(validator set)是在每个纪元(epoch)结束时进行更新的.因此,您需要等到下一个纪元开始,您的验证者节点才有机会加入这个集合.

当您执行加入验证者集合的命令时,您的验证者节点将处于“待激活”状态,直到下一个纪元发生.您可以运行下面的命令,在 pending_active 列表中查找您的验证者节点.

Terminal window
aptos node show-validator-set --profile mainnet-operator | jq -r '.Result.pending_active' | grep <pool_address>

当下一个纪元到来时,节点将被移入 active_validators 列表.运行下面的命令,在 “active_validators” 列表中查看您的验证节点:

Terminal window
aptos node show-validator-set --profile mainnet-operator | jq -r '.Result.active_validators' | grep <pool_address>

成为验证者集合的一部分后,您需要更新节点的身份认证配置,使其与池地址相匹配.这一步骤对于保证您的节点能够与区块链网络中的对等节点(peer)顺利连接是必不可少的.

根据您使用的部署方法,按照以下步骤更新您的节点身份配置.

如果您使用源代码部署节点,请按照以下步骤操作:

  1. 停止您的验证节点和 VFN,并从两个节点中删除数据目录.确保同时删除验证节点上的 secure-data.json 文件.您可以在验证者节点的配置文件中看到 secure-data.json 文件的位置.
  2. validator-identity.yamlvalidator-fullnode-identity.yaml 文件中将您的 account_address 更新为您的池地址.不要更改其他任何内容.
  3. 重新启动验证者节点和 VFN.

如果您使用 Docker 部署节点,请按照以下步骤操作:

  1. 停止您的节点并删除数据卷:docker compose down --volumes.确保同时删除验证者节点上的 secure-data.json 文件.您可以在验证节点的配置文件中看到 secure-data.json 文件的位置.
  2. validator-identity.yamlvalidator-fullnode-identity.yaml 文件中将您的 account_address 更新为您的池地址.不要更改其他任何内容.
  3. 使用:docker compose up 重新启动节点.

如果您使用 Terraform 部署节点(例如,对于 AWS,Azure 或 GCP),请按照以下步骤操作:

  1. 在 Terraform 配置中增加 era 编号.应用此配置时,将清除数据.

  2. 在您的 terraform 模块中设置 enable_monitoring 变量.例如:

    module "aptos-node" {
    ...
    enable_monitoring = true
    utility_instance_num = 3 # 这将添加一个额外的实用程序实例来运行监控组件
    }
  3. 使用:terraform apply 应用更改.您将看到创建了一个新的 pod.运行 kubectl get pods 进行检查.

  4. 使用以下命令找到监控负载均衡器的 IP/DNS:

    Terminal window
    kubectl get svc ${WORKSPACE}-mon-aptos-monitoring --output jsonpath='{.status.loadBalancer.ingress[0]}'

    您将能够通过 http://<ip/DNS> 访问 Terraform 仪表板.

  5. 拉取最新的 terraform 模块 terraform get -update,然后应用 Terraform:terraform apply.

  6. 下载您的网络的 genesis.blobwaypoint.txt 文件.查看节点文件了解下载这些文件的位置和命令.

  7. validator-identity.yamlvalidator-fullnode-identity.yaml 文件中将您的 account_address 更新为您的池地址.不要更改其他任何内容.

  8. 重新创建密钥.确保密钥名称与您的 era 编号匹配,例如,如果您有 era = 3,则应将密钥名称替换为:

Terminal window
${WORKSPACE}-aptos-node-0-genesis-e3
Terminal window
export WORKSPACE=<您的工作空间名称>
kubectl create secret generic ${WORKSPACE}-aptos-node-0-genesis-e2 \
--from-file=genesis.blob=genesis.blob \
--from-file=waypoint.txt=waypoint.txt \
--from-file=validator-identity.yaml=keys/validator-identity.yaml \
--from-file=validator-full-node-identity.yaml=keys/validator-full-node-identity.yaml

在加入验证者集合并更新节点身份配置以匹配池地址后,您需要引导节点连接到网络.要做到这一点,请按照以下步骤操作:

  1. 启动 VFN.VFN 将连接到网络并开始同步.更多信息,请参见状态同步.
  2. VFN 同步完成后,重新启动验证节点.它将从 VFN 同步,然后连接到网络中的其他验证者并开始参与共识.

完成这两个步骤后,您的节点将连接到网络并参与共识.

祝贺您!您已成功将节点连接到 Aptos 网络.要验证您的节点是否运行正确,请访问节点健康文档.该文档描述了如何验证和监控您的验证节点和 VFN 的健康状况,包括初始节点验证部分.