Skip to content
🎉 Welcome to the new Aptos Docs! Click here to submit feedback!

使用源代码

这是一份分步指南,用于使用源代码部署 Aptos 验证器和验证器全节点(VFN)。按照本指南,验证器和 VFN 将部署在不同的机器上。

⚠️

先决条件
在开始之前,请确保阅读并理解了 节点要求。同样,请确保您已经安装了 Aptos CLI,因为您将需要它来设置您的节点。

部署步骤

默认连接到主网
如果您按照本文档中的默认设置操作,那么您的验证器和 VFN 将连接到 Aptos 主网。 要连接到不同的 Aptos 网络,例如测试网,请确保在构建二进制文件时选择适当的源代码分支,并下载您想要连接的网络的正确创世区块和路标文件。

  1. 按照 从源代码构建 Aptos 中的步骤下载 aptos-core 存储库和源代码。

  2. 使用 git checkout --track origin/mainnet 检出 mainnet 分支。注意:如果您想在另一个网络上部署验证器和 VFN,请使用适当的分支名称(例如,testnet)。

  3. 为您的 Aptos 节点创建一个工作目录,并为您的节点选择一个用户名,例如,

    Terminal
    export WORKSPACE=mainnet
    export USERNAME=alice
    mkdir ~/$WORKSPACE
  4. 在您的工作目录中为您的节点生成密钥对。您可以通过运行以下命令并使用 Aptos CLI 来执行此操作:

    Terminal
    aptos 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 文件备份在安全的地方。

  5. 接下来,您需要设置验证器的配置。这包括设置验证器和 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.yamloperator.yaml。这些将有助于将您的节点连接到 Aptos 网络(稍后)。

  6. 按照查找节点文件 页面上的说明下载以下文件。 您需要选择适当的网络(例如,mainnettestnetdevnet)并下载以下文件:

    • validator.yaml
    • fullnode.yaml
    • genesis.blob
    • waypoint.txt
  7. 接下来,将刚刚下载的 validator.yamlfullnode.yaml 模板文件复制到 ~/$WORKSPACE/config/ 目录中。这可以通过运行以下命令完成:

    Terminal
    mkdir ~/$WORKSPACE/config
    cp validator.yaml ~/$WORKSPACE/config/validator.yaml
    cp fullnode.yaml ~/$WORKSPACE/config/fullnode.yaml

    这些将分别是您的验证器和 VFN 的主要配置文件。

  8. 现在,修改 validator.yamlfullnode.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.identityvalidator-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 地址
  9. 总之,在您的工作目录(~/$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)。
  10. 现在您已经设置好了配置文件,可以启动您的验证器和 VFN 了。要启动您的验证器,请在 aptos-core 目录根目录下运行以下命令:

    Terminal
    cargo 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:

    Terminal
    cargo 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 控制的服务运行。这是可选的,可以使用下面的服务模板完成。您需要修改模板以匹配您的环境和配置。

/etc/systemd/system/aptos-node.service
[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 的设置。请继续进行 连接节点 的操作。