使用 Docker
苹果 M1+ 用户
Docker 部署仅在 Linux、Windows 和 Intel macOS 上进行了测试。如果您使用的是 M1+ macOS,您将需要使用 源代码 进行部署。
这是一份分步指南,用于使用 Docker 部署 Aptos 验证器和验证器全节点(VFN)。按照本指南,验证器和 VFN 将部署在不同的机器上。
先决条件
在开始之前,请确保阅读并理解 节点要求。同样,请确保您已经安装了 Aptos CLI,以及 Docker 与 Docker Compose。
部署步骤
默认连接到主网
遵循本文档的默认配置,你的验证节点和全节点后端(VFN)将会接入 Aptos 主网。如果想接入到 Aptos 的其他网络,如测试网,你需要确保下载了目标网络相应的创世数据块和路标文件。此外,根据所选网络,需调整 docker compose 文件,以确保使用到相匹配的 docker 镜像。
-
为您的 Aptos 节点创建一个工作目录,并为您的节点选择一个用户名,例如:
Terminalexport WORKSPACE=mainnet export USERNAME=alice mkdir ~/$WORKSPACE cd ~/$WORKSPACE
-
在您的工作目录中为您的节点生成密钥对。您可以通过运行以下命令并使用 Aptos CLI 来执行此操作:
Terminalaptos genesis generate-keys --output-dir ~/$WORKSPACE/keys
这将在
~/$WORKSPACE/keys
目录下创建 4 个密钥文件:public-keys.yaml
:此文件包含您的验证器和 VFN 的所有公钥,以及您的账户地址。private-keys.yaml
:此文件包含您的验证器和 VFN 的所有私钥。validator-identity.yaml
:此文件包含验证器的公钥和私钥,以及您的账户地址。validator-full-node-identity.yaml
:此文件包含 VFN 的公钥和私钥,以及您的账户地址。
⚠️备份您的私钥
私钥是确认你对节点所有权的关键。切记,绝对不要向他人透露你的私钥,并且务必将private-keys.yaml
文件备份在安全的地方。 -
接下来,您需要设置验证器的配置。这包括设置验证器和 VFN 的主机名,这些可能是 IP 地址或 DNS 地址。
⚠️DNS 地址
相比于使用 IP 地址,推荐使用 DNS,因为这样能够更便捷地进行节点迁移,并且当主机发生变化时,系统的适应性更强。您可以通过运行以下命令并使用 Aptos CLI 来设置验证器配置:
Terminal# 使用适当的 IP 或 DNS 地址替换下面的 <validator node IP / DNS address> 和 <Full Node IP / DNS address>。 cd ~/$WORKSPACE aptos genesis set-validator-configuration \ --local-repository-dir ~/$WORKSPACE \ --username $USERNAME \ --owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml \ --validator-host <validator node IP / DNS address>:<Port> \ --full-node-host <Full Node IP / DNS address>:<Port> \ --stake-amount 100000000000000 # For example, if you are using IP addresses: aptos genesis set-validator-configuration \ --local-repository-dir ~/$WORKSPACE \ --username $USERNAME \ --owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml \ --validator-host 35.232.235.205:6180 \ --full-node-host 34.135.169.144:6182 \ --stake-amount 100000000000000 # Otherwise, if you are using DNS addresses: aptos genesis set-validator-configuration \ --local-repository-dir ~/$WORKSPACE \ --username $USERNAME \ --owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml \ --validator-host bot.aptosdev.com:6180 \ --full-node-host fn.bot.aptosdev.com:6182 \ --stake-amount 100000000000000
配置验证器将在
~/$WORKSPACE/$USERNAME
目录中创建两个 YAML 文件:owner.yaml
和operator.yaml
。这些(稍后)将有助于将您的节点连接到 Aptos 网络。 -
按照 查找节点文件 页面上的说明下载以下文件。 您需要选择适当的网络(例如,
mainnet
,testnet
,devnet
)并下载以下文件:validator.yaml
fullnode.yaml
docker-compose.yaml
docker-compose-fullnode.yaml
haproxy.cfg
haproxy-fullnode.cfg
blocked.ips
genesis.blob
waypoint.txt
-
总之,您的工作目录(
~/$WORKSPACE
)中应该有以下文件列表:docker-compose.yaml
:运行验证器的 docker compose 文件。docker-compose-fullnode.yaml
:运行 VFN 的 docker compose 文件。keys
文件夹包含:public-keys.yaml
:两个节点的公钥。private-keys.yaml
:两个节点的私钥。validator-identity.yaml
:验证器的密钥和账户信息。validator-full-node-identity.yaml
:VFN 的密钥和账户信息。
$username
文件夹包含:owner.yaml
:所有者、运营者和投票者映射。operator.yaml
:验证器和 VFN 运营者信息。
waypoint.txt
:您正在连接的网络上创世交易的路标文件。genesis.blob
:您正在连接的网络的创世区块(genesis blob)。
-
要启动验证器节点,在您的工作目录中运行以下命令:
Terminaldocker-compose up (或根据您的版本使用 `docker compose up`)
这将使用
docker-compose.yaml
文件中指定的 docker compose 文件和镜像启动验证器节点。如果您希望更改要连接的网络,您需要修改文件以按网络名称使用正确的 docker 镜像。 -
在启动 VFN 之前,你需先调整
fullnode.yaml
配置文件,以便更新验证器节点的主机地址。比如,如果您使用的是 IP 地址,就需要按照以下方式,修改 vfn 网络的full_node_networks
的地址信息:fullnode.yaml--- addresses: - "/ip4/100.100.100.100/tcp/6181/noise-ik/..." # 设置验证器的 IP 地址
否则,如果您使用 DNS 地址,您需要按如下方式更新
addresses
字段:fullnode.yaml--- addresses: - "/dns/example.com/tcp/6181/noise-ik/..." # 设置验证器的 DNS 地址
-
为了启动你的 VFN,请在一台独立的、专为 VFN 设置的计算机上执行以下命令。你需要从验证节点的计算机那里复制密钥、配置文件和 docker compose 文件过来。
⚠️VFN 身份
你应从这些密钥和配置文件最初生成的地方,将它们复制到 VFN 的机器上。不要试图为 VFN 生成另外一组密钥或配置文件,因为验证网络将无法识别这些新生成的文件。要启动 VFN,请在您的工作目录中运行以下命令:
Terminaldocker-compose -f docker-compose-fullnode.yaml up
通过使用 docker-compose 文件和
docker-compose-fullnode.yaml
文件中指定的镜像,将会启动 VFN。如果你想要连接到不同的网络,那么你需要根据网络名称,修改这个文件来指定正确的 Docker 镜像。⚠️下一步
您现在已经使用 Docker 完成了验证器和 VFN 的设置。然而,您的节点还不能连接到 Aptos 网络。
连接到 Aptos 网络
您现在已经使用 Docker 完成了验证器和 VFN 的设置。请继续进行 连接节点 的操作。