Aptos 激励测试网1的节点搭建

2022/05/13

aptos 激励测试网1的节点搭建

该文档参考官方文档以及中文社区给出的文档,仅包含验证节点和全节点的搭建过程,搭建后的 kyc 过程请参考:2022-05-14-aptos激励测试网1kyc

镜像部署

镜像部署是最简便的部署方式,也是最推荐的方式。

前置条件:

  • Docker
  • Docker-compose v2.2.1
  • aptos cli

硬件要求:

  • CPU: 4 cores (Intel Xeon Skylake or newer).
  • Memory: 8GiB RAM
  •  300GB of disk space

1.创建运行路径并进入

mkdir -p /opt/aptos/ait1
# 创建数据路径
mkdir -p /opt/aptos/ait1/data/aptos-fullnode
mkdir -p /opt/aptos/ait1/data/aptos-validator
cd /opt/aptos/ait1

2. 安装前置条件

# 安装 Docker
wget -O get-docker.sh https://get.docker.com
sudo sh get-docker.sh
rm -f get-docker.sh

# 安装 docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose

docker -v
docker-compose -v
# 安装 aptos cli
wget -O /tmp/aptos-cli-0.1.1-Ubuntu-x86_64.zip https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v0.1.1/aptos-cli-0.1.1-Ubuntu-x86_64.zip

unzip /tmp/aptos-cli-0.1.1-Ubuntu-x86_64.zip
chmod +x aptos

3. 下载三个文件

# docker compose 文件,这个文件内需要修改 volumes 相关内容,可以直接用下面的文件进行替换
wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose.yaml
# 默认的 validator 配置文件
wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/validator.yaml
# 默认的 fullnode 配置文件
wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/fullnode.yaml

修改 docker-compose.yaml

# This compose file defines an Aptos Validator deployment.
# Read the README.md files for instruction on how to install aptos-node

version: "3.8"
services:
  validator:
    image: "${VALIDATOR_IMAGE_REPO:-aptoslab/validator}:${IMAGE_TAG:-testnet}"
    networks:
      shared:
    volumes:
      - type: bind
        source: /opt/aptos/ait1/data/aptos-validator
        target: /opt/aptos/data
      - type: bind
        source: ./validator.yaml
        target: /opt/aptos/etc/validator.yaml
      - type: bind
        source: ./genesis.blob
        target: /opt/aptos/genesis/genesis.blob
      - type: bind
        source: ./waypoint.txt
        target: /opt/aptos/genesis/waypoint.txt
      - type: bind
        source: ./validator-identity.yaml
        target: /opdt/aptos/genesis/validator-identity.yaml
    command: ["/opt/aptos/bin/aptos-node", "-f", "/opt/aptos/etc/validator.yaml"]
    ports:
      - "6180:6180"
      - "6181:6181"
      - "8080:8080"
      - "9101:9101"
    expose:
      - 6180
      - 6181
      - 9101

networks:
  shared:
    name: "aptos-docker-compose-shared"
    ipam:
      config:
        - subnet: 172.16.1.0/24

volumes:
  aptos-validator:
    name: aptos-validator

4. 生成私钥

./aptos genesis generate-keys --output-dir `pwd`

This will create three files: private-keys.yamlvalidator-identity.yamlvalidator-full-node-identity.yaml for you. IMPORTANT: Backup your key files somewhere safe. These key files are important for you to establish ownership of your node, and you will use this information to claim your rewards later if eligible. Never share those keys with anyone else.

生成三个文件,需要保存好:

  • private-keys.yaml:存储了账户公私钥,共识key,full_node_network_key、validator_network_key,其中共识key、账户公钥、validator_network_key 在kyc中要用到
  • validator-identity.yaml:存储了账户公私钥、共识key、validator_network_key,在第三步获取的 validator.yaml 中被调用
  •  validator-full-node-identity.yaml:存储了账户公钥、full_node_network_key,在第三步获取的 fullnode.yaml 中被调用

5. 生成 网络配置文件

./aptos genesis set-validator-configuration --keys-dir `pwd` --local-repository-dir `pwd` --username <pick a username for your node> --validator-host <Validator Node IP>:<Port>
 --full-node-host <Full Node IP>:<Port>

这一步需要预先设计好端口映射,本地节点启动后会使用 6180 作为 validator node port,6182 作为 fullnode port,上述例子中的ip需要使用公网ip,需要在上层设置好端口映射,49001 映射到本机的 6180,49002 映射到本机的 6182。具体的映射信息参考:2022-05-13-aptos激励测试网1节点信息

这里的 username 需要记住,后面创建 layout.yaml 要用到。

6. [可选]创建 root key

./aptos key generate --output-file root.key

这一步是可选步骤。后面需要生成的 layout.yaml 需要一个 root key,可以使用官方文档给的 0x5243ca72b0766d9e9cbf2debf6153443b01a1e0e6d086c7ea206eaf6f8043956,也可以使用自己生成的。

上述指令生成 root.key 和 root.key.pub。前者保护好,后者需要用到。

7. 创建 layout.yaml

vi layout.yaml

---  
root_key: "0x5243ca72b0766d9e9cbf2debf6153443b01a1e0e6d086c7ea206eaf6f8043956"  
users:  
- <username you created in step 5>  
chain_id: 23

其中 root_key 可以选择替换为 第六步生成的 root.key.pub 里的内容,记得加上 0x 前缀;<username you created in step 5> 替换为第五步生成的文件名。

8. 下载 framework move 字节码

wget -O /tmp/framework.zip https://github.com/aptos-labs/aptos-core/releases/download/aptos-framework-v0.1.0/framework.zip
unzip /tmp/framework.zip

9. 生成 genesis blob 和 waypoint

./aptos genesis generate-genesis --local-repository-dir `pwd` --output-dir `pwd`

10. 启动

docker-compose up -d

11. [可选]打开数据传输端口

  • 内网使用公网映射
  • Google cloud 配置防火墙,开放 80、6180、6182、8080、9101、9103 端口

12. 查看状态,准备 kyc

# docker 状态检测
docker ps -a

# 本地查看状态
curl 127.0.0.1:9101/metrics 2> /dev/null | grep -m 1 peer_id
# 查看同步状态,和链上状态进行比对
curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_state_sync_version{.*\"synced\"}" | awk '{print $2}'

# 查看公网状态,必须项,这步完成后才可以 kyc
curl <public ip>:<mapping port或6180>/metrics 2> /dev/null | grep "aptos_state_sync_version{.*\"synced\"}"

kyc 前需要七个数据,来验证你的 validator node 是否启动

  • consensus_key:查看 private-keys.yaml
  • account_key:查看 private-keys.yaml
  • validator_network_key:查看 private-keys.yaml
  • validate-node address:公网ip
  • validate-node VALIDATOR(NOISE)Port:公网映射的端口或者6180
  • validate-node METRICS Port:公网映射的端口或者9101
  • validate-node API Port:公网映射的端口或者8080

参考

Search

    Table of Contents