Upgrade Tessellation Guide
Last updated
Was this helpful?
Last updated
Was this helpful?
This document will guide you through step-by-step instructions for upgrading your node to the latest version of Tessellation.
In some cases, when a new feature is introduced, it may require updating nodectl’s main configuration file, cn-config.yaml
.
If the upgrade in progress does not require this step, you will not see any messages and can skip to the next step.
The migration ensures that nodectl can support the new features while preserving your existing configuration settings.
We can press Enter to accept the default y
.
You will see nodectl backup your current configuration before continuing.
DANGER
If you did not encrypt you p12 keystore passphrase within the nodectl configuration file, the backup configuration yaml
file MAY CONTAIN A CLEAR TEXT P12 PASSPHRASE.
FOR SECURITY PURPOSES, PLEASE REMOVE AS NECESSARY!
It is recommended to backup your p12 after the migration and upgrade completes.
The nodectl
utility will attempt to identify the current version of Tessellation running on your node, as well as the latest version available on the cluster.
In most cases, you may simply press Enter to accept the default version.
Already on latest warning
If you attempt an upgrade to a version of Tessellation you are already running on your node, you may be presented with a warning message. If you intent is to upgrade to the same version over itself, you may press Enter to continue. Otherwise, you may take another action as desired.
The nodectl
utility organizes your configured profiles into logical groups called environments.
Each environment typically represents a specific network cluster, such as:
MainNet
IntegrationNet
TestNet
DOR
During an upgrade process, nodectl
allows you to upgrade one environment at a time. This ensures consistency and reduces risk when applying updates across network types.
Most validator nodes only have one environment configured, making the process straightforward.
When you initiate an upgrade, nodectl
will display a summary showing:
The environment name
The list of associated profiles under that environment
Review this printout carefully before proceeding to ensure you’re upgrading the correct environment.
Example) dag-l1
profile.
Gracefully leaving the cluster is highly recommended before performing upgrades, maintenance, or reboots. This practice helps:
Prevent snapshot corruption
Reduce unnecessary load on the rest of the cluster
Maintain overall network health and stability
The nodectl
utility automates this process by:
Issuing an internal API call to gracefully leave the cluster
Stopping the service(s) associated with the selected profile(s)
Bringing the node offline in a controlled and orderly fashion
This ensures your node exits the cluster cleanly and avoids disrupting consensus or data synchronization.
The nodectl
utility will begin the upgrade process by performing several important housekeeping and system preparation steps:
Clean up abandoned utility-specific files
Removes outdated or unused internal files from previous versions
Rebuild essential configuration and support files
Ensures that all components are aligned with the latest version's requirements
Apply system-level updates
Installs the latest updates available for your current distribution
⚠️ Note: This does not upgrade the entire Linux distribution
Install or update required 3rd-party utilities
Adds or refreshes tools that nodectl
depends on for proper operation
These steps help ensure that your node environment is clean, consistent, and fully prepared to run the latest version of nodectl
effectively.
Similar to the backups you may have some files that were created in order to upload for diagnostics, logging, accounting, etc. We can clean up these files as well.
In the event that your node has files located in this special directory, you will be given a list of the files that will be removed and a confirmation prompt.
In most cases it is a good idea to clear your uploads. If you are in the mist of troubleshooting, you may want to retain these files.
Similar to backups, you may have accumulated a large number of log files.
Over time, these logs can consume significant disk space on your node.
Since your node also stores incremental history data and the tip of the blockchain, maintaining sufficient disk space is essential.
In most cases, it is a good idea to clear old logs; however, if you are actively troubleshooting an issue, you may want to retain these files.
The nodectl
utility will attempt to determine whether the passphrase for your P12 keystore is encrypted within the cn-config.yaml
configuration file.
If it detects the passphrase in plaintext, you will be prompted to encrypt it to enhance your node's security.
While encrypting your P12 passphrase is optional, it is strongly recommended.
Once a successful join is achieved, the node will begin catching up on any historical snapshots that were created while it was offline. It will complete the accumulation of historical data and retrieve the tip of the blockchain, ensuring the node's current state aligns with the cluster.
After your node completes the DownloadInProgress
stage, it will transition through several additional states as it finalizes synchronization and prepares to join the network consensus rounds.
The typical progression is as follows:
WaitingForObserving
Observing
WaitingForReady
Ready
Once your node completes these transitional stages, it will enter the Ready
state.
At this point, your node is fully integrated into the network and eligible to begin participating in consensus and earning rewards.
A hybrid node includes both a Layer 1 (L1) and a Layer 0 (L0) profile running on the same VPS or server.
Layer0: DAG L0 global hypergraph layer0
Layer1 : DAG L1 currency layer
In this configuration, it's recommended to link the L1 profile to the local L0 profile. This is beneficial because, in a trustless environment, you can confidently trust the L0 node you control; essentially trusting yourself.
By linking locally in this way, you take advantage of trusted internal communication between layers while maintaining protocol integrity and minimizing external risk.
During the upgrade process, the system will attempt to join the DAG L1 (currency layer) profile to the cluster.
As explained in the previous step, the Layer 1 profile is configured to link to your local Layer 0 (dag-l0
) profile. In order for this to succeed, your Layer 0 profile must first reach the Ready
state.
In most cases, the Layer 0 profile takes longer to complete its startup and synchronization steps.
This means:
The Layer 1 profile may not detect the Layer 0 profile as Ready
in time
As a result, it may fail to join automatically during the upgrade window
nodectl
Handles ThisTo accommodate this, nodectl
will:
Present a menu prompt asking whether you’d like to continue waiting or
Skip the join process and allow the upgrade to complete without joining Layer 1
If You Choose to Skip:
You can manually complete the join process later:
Use the following command to check the Layer 0 status:
Wait until it reaches Ready
.
Once ready, you can either:
Run a manual join command for Layer 1:
Or rely on auto_restart
(if enabled) to detect readiness and automatically join Layer 1 when conditions are met
This flexible design ensures your node upgrades cleanly, even if the timing of the Layer 0 readiness introduces delays.
After the join process completes, nodectl
will:
Display summary metrics related to the upgrade operations
Restart the auto_restart
feature, if it was enabled prior to the upgrade
This ensures your node continues to be monitored and automatically maintained moving forward
This final step confirms that your upgrade and cluster rejoin were successful, and your node is once again operating in a self-managed, resilient state.