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

更新您的 PFN

本文档详细介绍了如何在 Aptos 发布新版本时进行 PFN 更新。所有的 PFN 一旦新版本发布都需要执行更新操作。对于在 devnet 上运行的 PFN,需要进行一项额外的操作,即在每次新版本发布时对 devnet 执行数据清理。

源代码部署

如果您是从 aptos-core 源代码运行您的 PFN,您也可以通过以下步骤来更新您的 PFN:

  1. 通过运行以下命令停止您的 PFN(或手动停止 aptos-node 进程):

    Terminal
    cargo stop aptos-node
  2. 获取适用于您的网络的最新版本,例如 devnettestnetmainnet。确保将 [network_branch] 替换为以下适当的分支名称:

    Terminal
    git checkout [network_branch] && git pull
  3. 按照您最初设置时的方式,重新编译二进制文件。

  4. 如果您的 PFN 在 devnet 上运行,请按照下面的带数据擦除的升级部分中的附加步骤进行操作。

  5. 通过运行与之前相同的部署命令重新启动您的 PFN。例如:

    Terminal
    cargo run -p aptos-node --release -- -f ./fullnode.yaml

数据擦除和重置(Devnet)

⚠️

仅限 Devnet 擦除
仅当您的 PFN 在 devnet 上运行时,请遵循这些附加步骤。其他网络(例如 testnetmainnet)不需要执行此步骤(因为数据不会被擦除)!

如果您的 PFN 在 devnet 上运行,请在停止 PFN(在重新启动之前)后遵循这些附加步骤:

  1. 删除数据文件夹(目录路径是您在配置文件中指定的,例如 fullnode.yaml)。

    • 默认数据文件夹是 /opt/aptos/data
  2. 删除 genesis.blob 文件和 waypoint.txt 文件(取决于您的配置方式,您可能没有此文件,而是在配置文件中直接有 waypoint )。

  3. 下载新的 genesis.blob 文件和新的 waypoint

  4. 使用新的 genesis.blobwaypoint 文件更新配置文件(例如 fullnode.yaml)。

  5. 通过运行与之前相同的部署命令重新启动您的 PFN。

Docker 部署

如果您是通过 Docker 镜像运行您的 PFN,您可以通过以下方式更新您的 PFN:

  1. 通过运行以下命令停止您的 PFN:

    Terminal
    docker compose down --volumes
  2. (仅限 Devnet!) 如果您的 PFN 在 devnet 上运行,请删除包含您的 PFN 配置和数据目录的整个目录。

  3. 按照最初的设置重新安装和配置这些文件。

  4. 通过运行与之前相同的部署命令重新启动您的 PFN。例如:

    Terminal
    docker compose up -d

GCP 部署

如果您在 GCP 上运行您的 PFN,请按照以下步骤更新您的 PFN。注意:如果您的 PFN 在 devnet 上运行,则需要额外执行数据擦除步骤。

带数据擦除的升级(仅限 Devnet)

⚠️

仅限 Devnet 擦除
仅当您的 PFN 在 devnet 上运行时,请遵循这些步骤。其他网络不需要执行此步骤(因为数据不会被擦除)我们建议不要在这些网络上擦除数据。

如果您正在运行 devnet PFN,请按照以下步骤进行更新:

  1. main.tf 中增加 era 编号以触发新数据卷的创建,这将使 PFN 在新的 DB 上启动。

  2. main.tf 中更新 image_tag 以包含新版本号。

  3. 更新 PFN 的 Terraform 模块(在 main.tf 文件的同一目录下运行此命令):

Terminal
terraform get -update
  1. 应用 Terraform 更改:
Terminal
terraform apply

无数据擦除的升级

如果您没有运行 devnet PFN,请按照以下步骤进行更新:

  1. main.tf 中更新 image_tag

  2. 更新 PFN 的 Terraform 模块(在 main.tf 文件的同一目录下运行此命令):

Terminal
terraform get -update
  1. 应用 Terraform 更改:
Terminal
terraform apply
 
# 如果您没有更新镜像标签,Terraform 将显示无更改,在这种情况下,强制执行 helm 更新
terraform apply -var force_helm_update=true