更新您的 PFN
本文档详细介绍了如何在 Aptos 发布新版本时进行 PFN 更新。所有的 PFN 一旦新版本发布都需要执行更新操作。对于在 devnet 上运行的 PFN,需要进行一项额外的操作,即在每次新版本发布时对 devnet 执行数据清理。
源代码部署
如果您是从 aptos-core 源代码运行您的 PFN,您也可以通过以下步骤来更新您的 PFN:
-
通过运行以下命令停止您的 PFN(或手动停止
aptos-node
进程):Terminalcargo stop aptos-node
-
获取适用于您的网络的最新版本,例如
devnet
、testnet
或mainnet
。确保将[network_branch]
替换为以下适当的分支名称:Terminalgit checkout [network_branch] && git pull
-
按照您最初设置时的方式,重新编译二进制文件。
-
如果您的 PFN 在
devnet
上运行,请按照下面的带数据擦除的升级部分中的附加步骤进行操作。 -
通过运行与之前相同的部署命令重新启动您的 PFN。例如:
Terminalcargo run -p aptos-node --release -- -f ./fullnode.yaml
数据擦除和重置(Devnet)
仅限 Devnet 擦除
仅当您的 PFN 在 devnet
上运行时,请遵循这些附加步骤。其他网络(例如 testnet
和 mainnet
)不需要执行此步骤(因为数据不会被擦除)!
如果您的 PFN 在 devnet
上运行,请在停止 PFN(在重新启动之前)后遵循这些附加步骤:
-
删除数据文件夹(目录路径是您在配置文件中指定的,例如
fullnode.yaml
)。- 默认数据文件夹是
/opt/aptos/data
。
- 默认数据文件夹是
-
删除
genesis.blob
文件和waypoint.txt
文件(取决于您的配置方式,您可能没有此文件,而是在配置文件中直接有waypoint
)。 -
下载新的 genesis.blob 文件和新的 waypoint。
-
使用新的
genesis.blob
和waypoint
文件更新配置文件(例如fullnode.yaml
)。 -
通过运行与之前相同的部署命令重新启动您的 PFN。
Docker 部署
如果您是通过 Docker 镜像运行您的 PFN,您可以通过以下方式更新您的 PFN:
-
通过运行以下命令停止您的 PFN:
Terminaldocker compose down --volumes
-
(仅限 Devnet!) 如果您的 PFN 在
devnet
上运行,请删除包含您的 PFN 配置和数据目录的整个目录。 -
按照最初的设置重新安装和配置这些文件。
-
通过运行与之前相同的部署命令重新启动您的 PFN。例如:
Terminaldocker compose up -d
GCP 部署
如果您在 GCP 上运行您的 PFN,请按照以下步骤更新您的 PFN。注意:如果您的 PFN 在 devnet
上运行,则需要额外执行数据擦除步骤。
带数据擦除的升级(仅限 Devnet)
仅限 Devnet 擦除
仅当您的 PFN 在 devnet
上运行时,请遵循这些步骤。其他网络不需要执行此步骤(因为数据不会被擦除)我们建议不要在这些网络上擦除数据。
如果您正在运行 devnet
PFN,请按照以下步骤进行更新:
-
在
main.tf
中增加era
编号以触发新数据卷的创建,这将使 PFN 在新的 DB 上启动。 -
在
main.tf
中更新image_tag
以包含新版本号。 -
更新 PFN 的 Terraform 模块(在
main.tf
文件的同一目录下运行此命令):
terraform get -update
- 应用 Terraform 更改:
terraform apply
无数据擦除的升级
如果您没有运行 devnet
PFN,请按照以下步骤进行更新:
-
在
main.tf
中更新image_tag
。 -
更新 PFN 的 Terraform 模块(在
main.tf
文件的同一目录下运行此命令):
terraform get -update
- 应用 Terraform 更改:
terraform apply
# 如果您没有更新镜像标签,Terraform 将显示无更改,在这种情况下,强制执行 helm 更新
terraform apply -var force_helm_update=true