注意:
本教程仅用于使用 Docker 方式,且为验证者节点。
一、初始化质押池
在 AIT3 中,我们将提供 UI 支持以允许所有者管理质押池,请参阅此处的详细信息,如果您已经通过 UI 完成了此操作,则可以忽略此步骤并跳转到“运行节点”。
本步骤需要等到测试币发放才能执行。(若您没有收到,请关注邮件耐心等待)
1.1 切换钱包网络 Testnet 并检查余额
需要先安装 Petra 钱包插件(必须更新到 0.1.8),并导入之前注册时使用的钱包地址。参考教程:Petra 使用教程
切换到测试网网络后,返回 Home 就能看到余额了。
1.2 参与质押
Aptos 治理页面(需切换到相应的测试网络):https://explorer.devnet.aptos.dev/proposals/staking
Staking Amount: 输入100000000000000,需要小于账户余额,并留足够的 gas。
Operator Address: 节点名称/operator.yaml 文件中的 operator_account_address。
填写质押的数量和操作者地址、投票者地址(您的钱包地址),并提交(点击提交按钮后,会有弹窗交易签名,点击“Approve”即可):
质押成功页面(可以修改和增加锁定时长):
1.3 给您的 Operator 地址发送一些 APT 测试币
这步是必须的,后面需要检查账户余额,否则会返回错误!!
Operator 地址是上一步中的 Operator Address。
二 、运行节点
备份所有文件
防止发生异常时无法恢复,请先备份如下文件,文件目录如下:
docker-compose.yaml
layout.yaml
您的节点名称目录
keys 目录
进入节点操作目录
本教程使用的目录为 ~/aptos-node/testnet3
,若您使用的其他教程,请自行修改命令。
cd ~/aptos-node/testnet3
关闭节点并删除数据卷
sudo docker-compose down --volumes
下载 genesis、waypoint 和 测试网 编排文件
sudo wget -O genesis.blob https://github.com/aptos-labs/aptos-genesis-waypoint/raw/main/testnet/genesis.blob
sudo wget -O waypoint.txt https://raw.githubusercontent.com/aptos-labs/aptos-genesis-waypoint/main/testnet/waypoint.txt
sudo wget -O docker-compose.yaml https://raw.githubusercontent.com/jiangydev/aptos-node/main/testnet/AT/docker-compose.yaml
修改 validator-identity.yaml 中的 account_address
文件路径:keys/validator-identity.yaml
只需要修改 account_address,更换成您的钱包地址:
启动节点(Run node)
sudo docker-compose pull
sudo docker-compose up -d
如果您的节点端口不通,请关闭服务器防火墙,并在云服务器提供商的安全策略中放行如下端口:
验证者节点(本教程只提供验证者节点搭建):
6180:validator 的 peer 通信端口;
已关闭 80 API 端口及 9101 指标端口的外网访问,本地可访问。
检查节点
# 查询 chain id,应该返回 47
sudo curl 127.0.0.1:80/v1
三、加入验证者集合
初始化 Aptos CLI
您的操作者私钥 account_private_key
可以从 keys/private-keys.yaml
文件中获得。
# 这个命令中的私钥需要替换!!
sudo docker run --rm \
-v $(pwd):/data/aptos-cli \
jiangydev/aptos-cli:v0.3.4 \
sh -c "cd /data/aptos-cli && rm -rf .aptos && aptos init --profile ait3-operator --private-key 您的私钥 --rest-url https://testnet.aptoslabs.com --skip-faucet"
通过 Aptos CLI 检查余额
如果这一步执行返回异常:API error: API error Error(AccountNotFound): Account not found by Address,请参考 1.3 给您的 Operator 地址发送一些 APT 测试币。
sudo docker run --rm \
-v $(pwd):/data/aptos-cli \
jiangydev/aptos-cli:v0.3.4 \
sh -c "cd /data/aptos-cli && aptos account list --profile ait3-operator"
更新链上Validator网络地址
注意修改命令中的验证者配置文件为“您的节点名称/operator.yaml”,这里我使用的 MoveMove/operator.yaml。
# 需要修改验证者配置文件:您的节点名称/operator.yaml
sudo docker run --rm \
-v $(pwd):/data/aptos-cli \
jiangydev/aptos-cli:v0.3.5 \
sh -c "cd /data/aptos-cli && aptos node update-validator-network-addresses --pool-address 您的钱包地址 --operator-config-file MoveMove/operator.yaml --profile ait3-operator --assume-yes"
更新链上验证者共识 key
# 需要修改验证者配置文件:您的节点名称/operator.yaml
sudo docker run --rm \
-v $(pwd):/data/aptos-cli \
jiangydev/aptos-cli:v0.3.5 \
sh -c "cd /data/aptos-cli && aptos node update-consensus-key --pool-address 您的钱包地址 --operator-config-file MoveMove/operator.yaml --profile ait3-operator --assume-yes"
加入验证者集合
sudo docker run --rm \
-v $(pwd):/data/aptos-cli \
jiangydev/aptos-cli:v0.3.5 \
sh -c "cd /data/aptos-cli && aptos node join-validator-set --pool-address 您的钱包地址 --profile ait3-operator --max-gas 5000 --assume-yes"
检查验证者集合
方式一
https://explorer.devnet.aptos.dev/account/<你的地址>?network=testnet
可以看到 Stake 相关的资源和交易。
方式二
# 需要先安装 jq,如果已安装,可跳过
sudo apt install -y jq
在安装 jq 后,可以查询加入中的验证者:
sudo docker run --rm \
-v $(pwd):/data/aptos-cli \
jiangydev/aptos-cli:v0.3.4 \
sh -c "cd /data/aptos-cli && aptos node show-validator-set --profile ait3-operator" \
| jq -r '.Result.pending_active' \
| grep '您的钱包地址'
查询已加入的验证者:
sudo docker run --rm \
-v $(pwd):/data/aptos-cli \
jiangydev/aptos-cli:v0.3.4 \
sh -c "cd /data/aptos-cli && aptos node show-validator-set --profile ait3-operator" \
| jq -r '.Result.active_validators' \
| grep '您的钱包地址'
四、验证节点连接
一旦您的验证器节点加入验证器集,您可以按照以下步骤验证正确性:
验证 Peer
验证您的节点是否正在连接到测试网上的其他对等点,127.0.0.1
(如果部署在云上,请替换为您的验证器 IP/DNS)
curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_connections{.*\"Validator\".*}"
该命令将输出验证器节点的入站和出站连接数。
只要其中一个指标大于零,您的节点就会连接到测试网上的至少一个对等节点。
是否连接到 AptosLabs 节点
您还可以检查您的节点是否连接到 AptosLabs 的节点,替换<Aptos Peer ID>
为 Aptos 团队共享的 peer ID。
获得官方信息:https://github.com/aptos-labs/aptos-ait3
curl 127.0.0.1:9101/metrics 2> /dev/null \
| grep "aptos_network_peer_connected{.*remote_peer_id=\"f326fd30\".*}"
检查共识
一旦您的节点状态同步到最新版本,您还可以检查共识是否正在取得进展,以及您的节点是否正在提议
curl 127.0.0.1:9101/metrics 2> /dev/null \
| grep "aptos_consensus_current_round"
curl 127.0.0.1:9101/metrics 2> /dev/null \
| grep "aptos_consensus_proposals_count"
您应该期望看到这个数字不断增加。
欢迎加入 MoveMove 社区:https://discord.gg/sUmS7pm2q2