Skip to content

Upgrade your PFN

This document outlines the process for updating your PFN with new Aptos releases. All PFNs will need to be updated when new releases are available. For PFNs running in devnet, an additional data wipe step is required as devnet is wiped on every new release.

If you run your PFN from the aptos-core source code, you can update your PFN by following these steps:

  1. Stop your PFN by running the command below (or killing the aptos-node process manually):

    Terminal window
    cargo stop aptos-node
  2. Fetch the latest release appropriate for your network, e.g., devnet, testnet, or mainnet. Be sure to replace [network_branch] with the appropriate branch name below:

    Terminal window
    git checkout [network_branch] && git pull
  3. Rebuild the binary as you did during the initial setup.

  4. If your PFN is running in devnet, follow the additional steps in the Data Wipe and Reset section below.

  5. Restart your PFN by running the same deployment command as before. For example:

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

If your PFN is running in devnet, follow these additional steps after stopping your PFN (and before restarting it!):

  1. Delete the data folder (the directory path is what you specified in the configuration file, e.g., fullnode.yaml).

    • The default data folder is /opt/aptos/data.
  2. Delete the genesis.blob file and waypoint.txt file (depending on how you configured it, you might not have this file and may instead have a waypoint directly in your configuration file).

  3. Download the new genesis.blob file and the new waypoint.

  4. Update the configuration file (e.g., fullnode.yaml) with the new genesis.blob and waypoint files.

  5. Restart your PFN by running the same deployment command as before.

If you run your PFN from a Docker image, you can update your PFN by:

  1. Stop your PFN by running the command below:
    Terminal window
    docker compose down --volumes
  2. (Devnet only!) If your PFN is running in devnet, delete the entire directory which holds your PFN config and data directory.
  3. Re-install and configure those files as during the original setup.
  4. Restart your PFN by running the same deployment command as before. For example:
    Terminal window
    docker compose up -d

If you run your PFN in GCP, follow the steps below to update your PFN. Note: if your PFN is running in devnet, an additional data wipe step is required.

If you are running a devnet PFN, follow these steps to update:

  1. Increase the era number in main.tf to trigger a new data volume creation, which will start the PFN on a new DB.

  2. Update the image_tag in main.tf to contain the new release version.

  3. Update the Terraform module for the PFN (run this in the same directory of your main.tf file):

Terminal window
terraform get -update
  1. Apply the Terraform changes:
Terminal window
terraform apply

If you are not running a devnet PFN, follow these steps to update:

  1. Update the image_tag in main.tf.

  2. Update the Terraform module for the PFN (run this in the same directory of your main.tf file):

Terminal window
terraform get -update
  1. Apply the Terraform changes:
Terminal window
terraform apply
# If you didn't update the image tag, terraform will show nothing to change, in this case, force a helm update
terraform apply -var force_helm_update=true