使用源代码
这是一份分步指南,用于使用源代码部署 Aptos 验证器和验证器全节点(VFN)。按照本指南,验证器和 VFN 将部署在不同的机器上。
部署步骤
默认连接到主网
如果您按照本文档中的默认设置操作,那么您的验证器和 VFN 将连接到 Aptos 主网。
要连接到不同的 Aptos 网络,例如测试网,请确保在构建二进制文件时选择适当的源代码分支,并下载您想要连接的网络的正确创世区块和路标文件。
-
按照 从源代码构建 Aptos 中的步骤下载
aptos-core
存储库和源代码。 -
使用
git checkout --track origin/mainnet
检出mainnet
分支。注意:如果您想在另一个网络上部署验证器和 VFN,请使用适当的分支名称(例如,testnet
)。 -
为您的 Aptos 节点创建一个工作目录,并为您的节点选择一个用户名,例如,
Terminalexport WORKSPACE=mainnet export USERNAME=alice mkdir ~/$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# 将下面的 <validator node IP / DNS address> 和 <Full Node IP / DNS address> 替换为, # 您的节点适当的 IP 或 DNS 地址。 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 # 例如,如果您使用 IP 地址: 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 # 否则,如果您使用 DNS 地址: 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
genesis.blob
waypoint.txt
-
接下来,将刚刚下载的
validator.yaml
和fullnode.yaml
模板文件复制到~/$WORKSPACE/config/
目录中。这可以通过运行以下命令完成:Terminalmkdir ~/$WORKSPACE/config cp validator.yaml ~/$WORKSPACE/config/validator.yaml cp fullnode.yaml ~/$WORKSPACE/config/fullnode.yaml
这些将分别是您的验证器和 VFN 的主要配置文件。
-
现在,修改
validator.yaml
和fullnode.yaml
模板文件以包含适用于您的验证器和 VFN 的信息和工作目录。对于
validator.yaml
文件,您需要修改以下字段:base.data_dir
:区块链数据将存储在此目录。base.waypoint
:您连接的网络上创世交易的路标。consensus.initial_safety_rules_config
:您连接的网络上创世交易的路标文件,以及validator-identity.yaml
文件位置。execution.genesis_file_location
:您连接的网络的创世区块(fenesis blob)。validator_network.identity
:validator-identity.yaml
文件位置。
对于
fullnode.yaml
文件,您需要修改以下字段:-
base.data_dir
:区块链数据将存储在此目录。 -
base.waypoint
:您连接的网络上创世交易的航点。 -
execution.genesis_file_location
:您连接的网络的创世 blob。 -
full_node_networks
:- 需要更新public
网络与validator-full-node-identity.yaml
文件位置。 - 需要更新vfn
网络与验证器的正确 IP 地址或 DNS 地址。例如,如果您使用 IP 地址,您需要按如下方式更新addresses
字段: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 地址
-
总之,在您的工作目录(
~/$WORKSPACE
)中,您应该有以下文件列表:config
文件夹包含:validator.yaml
:验证器配置文件。fullnode.yaml
:VFN 配置文件。
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)。
-
现在您已经设置好了配置文件,可以启动您的验证器和 VFN 了。要启动您的验证器,请在
aptos-core
目录根目录下运行以下命令:Terminalcargo clean cargo build -p aptos-node --release sudo mv target/release/aptos-node /usr/local/bin aptos-node -f ~/$WORKSPACE/config/validator.yaml
要在单独的专用 VFN 机器上启动您的 VFN,请在该机器上下载
aptos-core
源代码并构建二进制文件。同样,您需要从验证器机器复制密钥和配置文件。⚠️VFN 身份
你应该将密钥和配置文件从它们初始生成的位置复制到 VFN 服务器的相应目录中。不要为 VFN 重新生成一套新的密钥或配置文件,否则网络将无法识别它们。通过在
aptos-core
目录的根目录下运行以下命令来启动您的 VFN:Terminalcargo clean cargo build -p aptos-node --release sudo mv target/release/aptos-node /usr/local/bin aptos-node -f ~/$WORKSPACE/config/fullnode.yaml
⚠️下一步
您现在已经使用源代码完成了验证器和 VFN 的设置。然而,您的节点还不能连接到 Aptos 网络。
(可选)作为服务运行
如果您想将 aptos-node
作为服务运行,您可以设置它作为由 systemctl
控制的服务运行。这是可选的,可以使用下面的服务模板完成。您需要修改模板以匹配您的环境和配置。
[Unit]
Description=Aptos Node 服务
[Service]
User=nodeuser
Group=nodeuser
LimitNOFILE=500000
#Environment="RUST_LOG=error"
WorkingDirectory=/home/nodeuser/aptos-core
ExecStart=/usr/local/bin/aptos-node -f /home/nodeuser/aptos-mainnet/config/validator.yaml
Restart=on-failure
RestartSec=3s
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aptos-node
[Install]
WantedBy=multi-user.target
连接到 Aptos 网络
您现在已经使用源代码完成了验证器和 VFN 的设置。请继续进行 连接节点 的操作。