Only this pageAll pages
Powered by GitBook
1 of 74

Run a node

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

What is delegated staking?​

Delegated staking on Constellation Network allows any $DAG holder to participate in network security and validation by staking their tokens with validators without needing to run a node. This enables more users to contribute to decentralization and governance while earning staking incentives. By choosing a validator, you help secure the network, support metagraph projects, and receive $DAG incentives for your participation. Some metagraph validators even offer additional L0 token rewards, increasing your potential incentives.

$DAG holders who participate in delegated staking may choose your node based on the commission percentage you set. This allows you, as a Node Operator, to generate additional rewards revenue from delegations.

Pacaswap metagraph

The nodectl utility

This section explains how to use the Constellation Network Command Line Interface (CLI) utility, which provides a simplified way to run a node without requiring technical expertise or in-depth knowledge of the Tessellation Protocol’s architecture and operation.

What is nodectl?

Pronounced node control, node-c-t-l, or node-cuttle.

nodectl is a command-line utility designed to simplify the deployment and management of Constellation Network Validator nodes.

It eliminates the need for deep technical knowledge of the Tessellation Protocol, allowing both technical and non-technical users to run and maintain a Validator node on the Hypergraph and/or metagraph networks.

The utility is packed with powerful features that abstract away the complexities of node management.

Cloud Provider Specific

These documents are specifically tailored for deploying Constellation Network nodes according to the configuration and integration requirements of each provider’s dashboard setup.

🚧Build AWS EC2 Instance🚧Build DigitalOcean Droplet🚧Build Hetzner Server

Operational Guides

Build Your Node

Onboard guide

Delegated Staking

Node Operator's guide to enable delegated staking on your node.

To offer your node for delegation on the Constellation Network, you must complete the delegated staking configuration.

This process allows Node Operators to make their nodes available for delegation.

Follow the steps in this guide to properly set up and enable delegation.

Prerequisites

Delegated Staking Requirements

nodectl version

Delegated staking is supported by nodectl starting with version v2.17.0.

Verify your version

Issue the version command to output the current version of nodectl.

Upgrade if necessary

Please follow the correct upgrade path to ensure your node remains manageable by nodectl and does not encounter compatibility issues.

If there are multiple versions between your current version and v2.17.0, you must follow the correct upgrade path.

Take note of each intermediate version and run the upgrade_nodectl command sequentially for each version step using the -v <version> option.

Upgrade one version at a time. Do not skip versions until you reach v2.17.0.

This ensures compatibility and prevents potential issues with configuration or functionality.

Example: sudo nodectl upgrade_nodectl -v v2.13.0

When you reach a version that can be directly upgraded to the latest v2.17.0 you may exclude the -v option.

Node internal upgrade

If you are requested to upgrade the node, issue a Y and allow nodectl to upgrade the node so that all the features, changes, and updates can be properly applied.

This is important to ensure that all features of nodectl are enabled.

For Node Operators

As a Node Operator, you can offer your node for delegation by following these steps:

The nodectl utility automates these steps for you. Follow this guide to complete the setup.

P12 Keystore

Delegated staking is tied to your node’s wallet public key (node ID).

If you rebuild or create a new node, your delegated staking status will remain unaffected as long as you retain your current p12 keystore, which holds the private and public keys designated for the Constellation Network Hypergraph or metagraph.

Understanding Delegated Staking

Since delegated staking is a financial decision, the configurator will not automatically commit your node to become available for delegated staking.

Create Discord Account

Join the Constellation Network Official Discord

To stay fully informed and connected, you must join the Constellation Network Official Discord server.

This is the central hub for:

✅ Cluster update announcements

✅ Scheduled network restarts

✅ Operational instructions and technical alerts

✅ Validator program updates and governance notices

Create Delegated Staking Configuration

nodectl requires you to create a configuration file with the necessary parameters to properly enable delegated staking according to your preferences and requirements.

First time and future updates

Regardless of whether this is your first time configuring your node for delegation, you must create or update the configuration file to define the specific parameters you want to use when offering your node for delegation.

If you wish to change any delegated staking parameters in the future, you must update the configuration file first before submitting a request to apply those changes to your node’s delegated staking settings.

Dor metagraph

How to become a Dor metagraph validator node operator.

Become a Dor Operator

This document outlines the process for becoming a Dor Validator Node Operator, including the administrative steps, qualification requirements, and technical procedures.

1

Modify Existing Configuration

If this is your first time configuring delegated staking you may to the next document page.

⌨️ Modify existing configuration

If delegated staking has already been configured, you will be asked if you would like to update the configuration. You can enter y.

References

Reference explanations and Reference Guides specifically associated with node operations.

Status Command

In order to view your current delegated staking status, you may issue a status command at any time.

For a valid configuration, your node should report all parameter matches as True.

If any match is not True, please review your desired configuration and issue an as needed to ensure your desired settings and consistency with the cluster.

Duplicate Update

In the event that you have already issued an update with your current settings (no changes were necessary), nodectl will prevent an unnecessary cluster update, and decline your request.

If the nodectl utility responds without applying any changes, the most likely reason is that your node is already configured with the delegated staking settings you specified.

If this is not the case, review and and submit another to ensure your desired changes are applied.

Nontechnical Onboard Procedure

📄 Dor Validator Onboarding Guide

All the steps necessary to join the program before you attempt to build your node.

2

Technical Building Procedure

📄 Build Dor Validator Node

This resource will provide everything you need to successfully deploy and operate your validator node within the Dor metagraph.

​
Node Fork Types

Rewards

A brief overview of the types of rewards a Dor Validator Node Operator can expect.

As a Dor Validator Node Operator, you are eligible to earn rewards for supporting the Dor metagragh.

Dor validator Node Operators are eligible for two types of rewards.

Reward
Frequency
Description

Consensus

Continuous per consensus round

As your node actively participates in the Dor metagraph, it will earn rewards at the conclusion of each consensus round. These rewards are granted when your node successfully validates data in compliance with the network cluster requirements.

Tax

Daily

During data processing and validation within the Dor Metagraph cluster, a network tax is applied and paid by the principals utilizing the metagraph’s services.

This tax is collected into a distribution wallet, which serves as a shared rewards pool. At the end of each day, a portion of the accumulated funds in the distribution wallet is distributed to all active validator nodes, based on their participation and contribution to the network during that period.

Validator Node Guides

Virtual Private Server

Description of a VPS (Virtual Private Server

What Is a VPS?

A Virtual Private Server (VPS) is a virtualized computing environment that runs on a physical server hosted in the cloud. It functions like a standalone server but shares physical hardware with other VPS instances.


☁️ Key Characteristics

  • Virtualized Environment A VPS runs independently with its own operating system, file system, allocated CPU, RAM, and storage; despite being hosted on a shared physical machine.

  • Cloud-Hosted The underlying infrastructure is managed by a cloud provider, meaning you do not need to maintain or understand the physical server itself.

  • Private and Isolated Your VPS instance operates in isolation from other virtual machines on the same host, offering consistent performance and greater security than shared hosting.


🛠️ Role in Constellation Network

In the context of running a Constellation Network Validator Node, the VPS:

  • Hosts the full node stack, including Tessellation binaries, keystores, and supporting services

  • Connects directly to the Constellation Hypergraph or metagraph cluster

  • Acts as your validator’s public-facing presence on the network


A VPS offers a reliable, flexible, and cost-effective way to run your node 24/7 without managing physical hardware, making it ideal for decentralized infrastructure participation.

IntegrationNet

This section is dedicated to IntegrationNet Node Operator specific documentation.

MainNet

Troubleshooting Guides

Update configuration? [n]: y
skip
sudo nodectl delegate status
update
DELEGATED UPDATE REQUEST CANCELLED
update your configuration file
update
sudo nodectl version
sudo nodectl upgrade_path
sudo nodectl upgrade_nodectl -v <next_version_in_path>
sudo nodectl upgrade_nodectl
Press Y then [ENTER] to upgrade or N then [ENTER] to cancel: Y

Delegated staking is permanent and cannot be disabled once it has been enabled.

There are no downsides to enabling delegated staking it simply allows you to earn additional rewards without impacting your existing node operations.

High Level Flow

This is the logical flow of how delegation works on your node.

1

Create a Configuration

You will log into your node and go through the necessary steps to build a configuration file that lives locally on your node.

2

Update

You will instruct nodectl to:

  • Pull your local configuration.

  • Formulate a signed authorization request to delegate.

  • Push (POST) signed request to the metagraph.

  • Review the results of your delegation request.

3

Future Updates

  • Update your local configuration to your new setting requirements.

How Commission Works

✅ Key Point: Collateral Requirement

To operate a node, you are required to allocate 250,000 $DAG as collateral. You will earn 100% of the rewards generated by your own collateral—these rewards are exclusively yours and are not shared.

👥 Delegators and Additional $DAG

When other community members choose to delegate their $DAG to your node, the total amount delegated is added to your node's effective stake, increasing your node's influence and overall earning potential.

💰 Example: Understanding Rewards from Delegation

Let’s say delegators collectively point X $DAG at your node.

  • Your node will now earn additional rewards based on this delegated stake.

  • You will receive a commission (a percentage you set between 5–10%) from the rewards generated by the delegated X $DAG.

  • The remaining rewards go back to the delegators, proportional to their contribution.

In Our Example

  • Let's say: 800 $DAG was earned in total from X $DAG delegated to your node for you and your delegators. This does not include rewards earned from your original 250,000 $DAG staked as collateral on your node.

  • You set a 10% commission charge.

Earning Type
Daily Earned
Commission Set
Your Earnings
Delegator Earnings

Delegated Staking

800 $DAG

10%

80 $DAG

720 $DAG

Your Node's Collateral

600 $DAG

0%

600 $DAG

0 $DAG

✅ Peer collaboration and troubleshooting with other Node Operators

Why It’s Important

Participation in the Discord server ensures that you:

  • Receive real-time updates that may affect your node's performance or connectivity.

  • Get immediate access to official support channels and team leads.

  • Can coordinate with other Validators for best practices and knowledge sharing.

Invite Link

https://discord.gg/9PhXJKeAWC

Make sure to verify your account and introduce yourself in the general channel once inside.

Important

Configuring delegated staking does not automatically commit your node to accept delegations.

The process involves two steps:

  1. Create or update the configuration with your desired delegation parameters.

  2. Manually submit the configuration to the Metagraph to activate delegated staking.

Create or Update Configuration

1

Log into your node

2

Enter the configurator

  • -e edit mode

  • -cb confirm backup automatically

  • -d detailed mode

3

Enter delegated staking setup

We will choose option D.

4

Continue to the next section

​

​

Reinstallation Guide

Rebuild a Constellation Network node with an existing P12 keystore.

Introduction

One of the lesser defining characteristics of a Constellation Network Validator Node is its ephemeral nature. This means that nodes are designed to be easily rebuildable, making re-deployment a cleaner and often more efficient solution compared to deep troubleshooting.

Whether you're:

  • Experiencing inconsistent OS behavior,

  • Choosing to upgrade your distribution via a fresh VPS (rather than an inline upgrade),

  • Switching cloud providers,

  • Or facing any other scenario that requires spinning up a new instance,

Rebuilding your node is not only possible, it’s encouraged.


🔄 Rebuilding with Your Existing .p12 Keystore

This guide will walk you through the process of reinstalling your existing .p12 keystore on a new VPS instance so your validator node can resume operation quickly and securely.

By the end of this process, your new instance will be configured with your existing wallet, allowing you to seamlessly rejoin the network without starting from scratch.

Step 1️⃣

Connect to your OLD VPS and backup ( obtain ) your current p12 keystore.

This step is critical for a successful reinstallation.

If you no longer have access to your old VPS and do not possess a valid backup of your .p12 keystore, please contact a system administrator immediately. In this case, you will need to rebuild a new node from scratch and follow the instructions in the .

$DAG tokens can still be accessed and recovered through your Stargazer Wallet, provided you retain access there. See the guide for further details.

Step 2️⃣

Rebuild your VPS

Step 3️⃣

Restore your p12 to the new VPS prior to begin an installation.

Step 4️⃣

Follow either the Quick Install or Normal Installation guide up to the migration section.

At that point:

  1. When prompted, select y to proceed with the keystore migration.

  2. nodectl will automatically scan your VPS for any available .p12 keystore files.

  3. In this scenario, it should detect only one .p12 file, the one you uploaded during the earlier step.

Select the identified .p12 keystore and continue following the installation guide as normal to complete your validator node setup.

Restart Validator Node Guide

This guide is intended for restarting your Validator node following a Hypergraph or metagraph cluster restart.

Cluster restarts may occur for a variety of operational reasons, including:

✅ Network upgrade

✅ Seed list access updates

✅ Cluster-wide error resolution


🔁 Optional: Auto Restart Feature

If you have the auto_restart feature , your node may have already recovered automatically.

If auto_restart is active, you can skip directly to the Confirm Status step.


1

SSH Into Your VPS

Firewall Settings Table

direction
port
profile / layer
description

inbound

9000

Layer0

public API

inbound

9001

Layer0

peer to peer API

inbound

The public and p2p ports mentioned above are customizable if desired to fit your needs. The default port settings are listed to adhere to the default settings used by nodectl and recommended by the protocol.

SSH Remote Access

Secure Shell Concept and Guides

SSH Keys Explained


What Are SSH Keys?

When a Node Operator (Administrator) builds a VPS (Virtual Private Server) in the cloud, they need a secure method to access and administer that instance. This is typically done by connecting to the VPS from a local machine (e.g., a laptop or desktop) over the Internet.


Why Do We Use SSH?

Data traveling across the Internet is vulnerable to interception by malicious actors who may attempt to steal, monitor, or manipulate the connection. To defend against this, we use encryption to create a secure tunnel between the local and remote systems.


How SSH Keys Work

SSH keys are a pair of cryptographic keys:

  • A public key, which is shared with the remote server

  • A private key, which is kept securely on your local machine

These keys are used to:

  • Authenticate your identity

  • Establish an encrypted connection

  • Securely transmit commands and data


Create SSH keys


Encryption in Action

In the context of connecting to a cloud VPS:

  • The public key (stored on the VPS) is used to encrypt the data

  • The private key (on your local machine) is used to decrypt it

This ensures that only your local machine—with the private key—can access and interpret the data sent by the server.


🛡️ SSH key authentication is significantly more secure than using a password alone and is the standard method for managing Constellation Network nodes in cloud environments.

Turn your VPS into a Node

This guide will help you create your node using nodectl.

nodectl Installation Types

Introduction​

The following documentation will help guide a new Node Operator understand the differences between turning a newly created VPS into a Constellation Network validator node with the use of nodectl.

There are three options:

Normal Install

A normal installation is a more detailed and interactive method of installing nodectl on your VPS. The process will guide you through each step of the installation interactively with details on each step, along the way.

Quick Installation

This installation method installs nodectl with minimal prompts or user interaction. You will only be asked a few questions:

  • Which cluster you would like your node to join

  • Whether you want to migrate an existing .p12 keystore

  • Passphrase for the .p12 keystore:

.

Manual Installation

This new installation can be preformed if desired by advanced users.

nodectl is recommended.

Authorize to Join Hypergraph or metagaph

Before You Begin

You should now have access to the Constellation Network Official Discord server via an invite provided for Node Operators.

At this point, your VPS should be fully configured and operating as a Constellation Validator Node.

If you believe any steps were missed, please revisit the previous documents to ensure all required tasks are completed before moving forward.

Upgrade Tessellation Quick Start

Introduction

This guide walks you through upgrading your Validator node to the latest version of Tessellation using nodectl, leveraging non-interactive mode with recommended defaults. Please refer to the full upgrade guide for a more detailed walk-through.


1

Tarball

Description of a Tarball

What Is a Tarball File?

A tarball file is a type of archive commonly used on Unix-based systems such as Linux and macOS. These files typically carry extensions like .tar, .tar.gz, or .tgz.


📦 Purpose and Usage

Update Delegated Staking

To update your current delegated staking parameters or to commit them for the first time to the metagraph, you will need to implement an update.

This command finalizes your configuration by submitting it to the metagraph, making your node available for delegated staking based on the parameters you've set.

1

Upload SSH Public Key

Procedure to upload your public SSH key to a VPS or remote server.

Copy Your Public Key for Upload

When it's time to upload your public SSH key to your VPS, you can return to this section as a quick reference.


🔐 How to Locate and Copy Your Public SSH Key

1

Node Prerequisites

This document suggests what steps you should have in place before you begin to turn a VPS into a Constellation Network Validator Node.

Prerequisite Steps Before Node Creation

Discord Account

You will need a Discord account.


First Time Configuration

If this is NOT your first time configuring delegated staking, and you are looking for a way to update your delegating staking parameters, you may skip to the .

✨ Welcome first time delegators!

If this is your first time configuring delegated staking on your node, you will be presented with a CONFIGURATION NOTICE screen.

Simply read through the notice and press any key to continue.

Repeat Step 2.

Total

1,400 $DAG

680 $DAG

720 $DAG

9010

Layer1

public API

inbound

9011

Layer1

peer to peer API

outbound

all

Tune to your needs

SSH

22

Enable remote access to your VPS or server to manage your node effectively. For enhanced security, consider configuring SSH to use a custom port instead of the default port 22. This adds an extra layer of obscurity, reducing exposure to automated scanning and brute-force attempts.

♻️Backup/Restore a P12 KeyStore
normal installation guide
Collateralize Your Node
🚧Generic Build a VPS Guide
♻️Backup/Restore a P12 KeyStore
🐇Quick Install Guide
🎨Normal Install Guide
🔑Create SSH Keys
Create a new one if needed
  • Enter the passphrase if using an existing keystore

  • New password for the Node Administrator

  • 🐇Quick Install Guide
    🎨Normal Install Guide
    🛠️Manual Installation
    ​
    ​
    Understanding passphrases and passwords
    ​
    manually

    Password and Passphrase Requirements

    Your password or passphrase will require:

    • At least 10 characters

    • At least one number

    • At least on upper case character

    • At least one lower case character

    • At least on special character ( ! @ # % ^ & * ( ) _ + - = )

    • Do NOT use " (double quotes)

    • Do NOT use ' (single quotes)

    • Do NOT use $ (dollar sign)

    • Do NOT use § (sectional sign)

    Pre-Installation Execution

    You should be:

    • Connected to your VPS remotely

    • VPS is updated, upgraded, and rebooted

    • nodectl is installed.

    Create Discord Account
    Build Your Node
    🚉First Time Connection Guide
    💽The nodectl utility
    next page
    ​

    Node Fork Types

    Forks in the Constellation Network

    In the context of the Constellation Network's Hypergraph or metagraph clusters, the concepts of majority fork and minority fork relate to how the network reaches consensus during discrepancies, synchronization issues, or splits in transaction history.


    What is a Majority Fork?

    A majority fork occurs when the majority of validator nodes in the network agree on a particular version of the transaction history. This version becomes the canonical chain and is recognized as the valid state of the network.

    Unlike traditional linear blockchains, Constellation uses a Directed Acyclic Graph (DAG) architecture. In this system, the majority fork represents the most widely accepted state of the DAG, ensuring consistency, correctness, and security.

    Majority forks typically occur during routine operations—such as when one of the three source nodes in a cluster is restarted during an upgrade or maintenance cycle.

    Examples:

    • Tessellation is upgraded from version vX.0.0 to vX.0.1.

    • Two conflicting transaction histories emerge, and the one accepted by most validators becomes part of the official ledger.


    What is a Minority Fork?

    A minority fork occurs when a smaller subset of nodes deviates from the consensus and follows an alternate transaction history. This version of the DAG is generally considered invalid or non-authoritative because it lacks sufficient validator support.

    Minority forks may arise due to:

    • Network partitioning

    • Incomplete upgrades

    • Misconfigurations

    • Malicious behavior

    In the Constellation Network, these forks are automatically disregarded by consensus protocols, as they fail to meet the quorum thresholds for validation.

    Example:

    • Tessellation is upgraded to vX.0.1, but one or more nodes remain on vX.0.0, resulting in those nodes temporarily diverging into a minority fork.


    Considerations

    • Transactions included in a minority fork may temporarily appear valid to affected nodes.

    • Once consensus re-aligns with the majority, those transactions are rejected and excluded from the network’s official state.


    Implications in Constellation’s Network

    Security and Stability

    Prioritizing the majority fork ensures that only the most secure and validated version of the ledger is retained, which protects against double spending and preserves network reliability.

    Fork Resolution

    The network includes automated mechanisms to reconcile forks. Nodes on a minority path are guided back to the consensus-approved chain, restoring full alignment across the network.


    Final Thoughts

    The majority fork represents the unified, authoritative state of the Constellation Network. The minority fork is a temporary divergence, typically caused by upgrades or desynchronization, and is automatically corrected through the network’s consensus process.

    Open your terminal or command prompt

    This is universal whether Windows or Macintosh

    2

    Display your public key

    Change the name of the key pair to your key pair name if you didn't use the same as in the create SSH keys document.

    3

    Copy Output

    Copy the full output of the command. This is your public key and will look something like this:

    4

    Paste

    You will paste this key into your VPS or cloud provider’s SSH key management interface when prompted.


    Do not copy your private key, only the .pub file.

    Sharing your private key will compromise the security of your node.

    First Time Configuration
    Modifying existing Configuration
    2

    Restart All Node Profiles

    3

    Restart Auto Restart Module (Optional)

    If you have auto_restart enabled only:

    You should see messages indicating that nodectl is disabling the auto_restart feature at the beginning of the restart process and re-enabling it once the restart is complete.

    If you believe the auto_restart feature did not restart for any reason—for example, if you did not see the related messages—you may manually restart it to ensure it is functioning correctly.

    4

    Confirm Node Status

    You should see output indicating that all profiles are in the Ready state:

    enabled
    Enable Auto Restart
    How to SSH into a VPS
    SSH Into Your VPS

    How to SSH into a VPS

    2

    Begin the Upgrade

    Execute the following command to begin a non-interactive upgrade. This will automatically pull and install the latest Tessellation release using default settings.

    3

    Single Layer Nodes

    If you're running a single-layer Validator (Layer0 or Layer1 only), you can skip directly to the Confirm Status step below.

    4

    Hybrid Node Considerations

    If your node operates in hybrid mode (participating in both Layer0 and Layer1):

    • You must wait for the Layer0 profile to reach the Ready state before attempting to connect Layer1.

    • Layer1 cannot join the cluster until the full Layer0 chain is downloaded and synchronized.

    5

    Auto Restart (If Enabled)

    If you have the auto_restart feature enabled:

    • Your node will detect when Layer0 reaches Ready state.

    • It will automatically initiate the Layer1 connection.

    6

    Watch for Layer0 to Reach Ready

    Use the command below to monitor the Layer0 profile. Adjust the -p flag to match your profile name.

    7

    Manually join Layer1

    Once Layer0 is in the Ready state, attempt to join Layer1:

    8

    Confirm Status

    Check the final status of all profiles:

    Expected output

    🏭Upgrade Tessellation Guide
    Tarballs are created using the tar (Tape Archive) utility, which packages multiple files and directories into a single file. This simplifies:
    • File distribution

    • Backup operations

    • Transfers between systems


    🧰 Common Extensions

    • .tar — A basic archive without compression

    • .tar.gz or .tgz — A tar archive that has been compressed using gzip

    These formats are frequently used for distributing software packages, source code, configuration bundles, or backup snapshots in a compact and portable form.


    🛠️ Example Usage (Linux/macOS)

    To create a tarball:

    To extract a tarball:


    Tarballs are widely used in open-source environments and DevOps workflows, and are considered a standard for packaging files in Unix-like ecosystems.

    Issue an update
    2

    If this is not your first update

    You will be presented with a status of the differentials between your node's local configuration and what is present on the metagraph blockchain.

    If this is your first time updating the metagraph, you will not see this section.

    3

    Authenticate with your P12 passphrase

    To verify your identity and authorize delegated staking, you will be prompted to enter your p12 passphrase.

    For security reasons, the passphrase will not be visible as you type. Simply enter it and press the enter key to continue.

    First Time Update Only​

    You may skip this step if this is not your first update.

    The nodectl utility will attempt to retrieve your current delegated staking parameters and determine whether this is your first update attempt.

    If it detects a first-time update, you will receive a warning and be asked to confirm. If you have previously updated your node and still receive this prompt, it may indicate a potential issue (see warning).

    Warning

    If this is your first time updating the delegated staking settings on your node and you do not receive the first-time confirmation notice, please contact a Constellation Network representative via our official Discord server for assistance.

    Likewise, if this is not your first time updating and you do receive a first-time warning, please report the issue as soon as possible through the same channel.

    If you are confident that this is the first delegated staking update for this node, you may proceed with acknowledging the prompt.

    During the initial update to the metagraph, your reference to your last update (none) will be set to all zeros.

    The default option is n so we will change it to y and hit enter.

    cat ~/.ssh/constellation_network_keypair.pub
    ssh-ed25519 AAAA13z1d63... Constellation Network
    sudo nodectl configure -e -cb -d
    D) Setup/Update Delegated Staking
    sudo nodectl restart -p all
    sudo nodectl status
    JOIN STATE     Ready
    IN CONSENSUS   True
    ssh -i /path/to/ssh/private/key nodeadmin@<vps_ip_address> -p <port>
    sudo nodectl upgrade --ni
    sudo nodectl status -p dag-l0 -w 120
    sudo nodectl join -p dag-l0
    sudo nodectl status
    JOIN STATE     Ready
    IN CONSENSUS   True
    ssh -i /path/to/ssh/private/key nodeadmin@<vps_ip_address> -p <port>
    tar -czvf archive-name.tar.gz /path/to/directory
    tar -xzvf archive-name.tar.gz
    Please enter your p12 passphrase:
    sudo nodectl delegate update
    Is this your first update? [n]: y
    Constellation Network Official Discord Server

    Return to or join the Constellation Network Discord server, and reach out to a Discord Administrator who holds the Admin or Team Lead role (visible next to their username).

    Important Security Reminder

    An Admin or Team Lead will never message you first, ask for money, request that you connect your wallet to third-party sites, or make any financial requests.

    When contacting an Admin or Team Lead, be prepared to present your Node ID so they can submit it to the internal team for processing. You may be required to confirm your email, this should only be confirmed by an Official Constellation Network Team Member.

    Stargazer Wallet

    You will need to create and own a Stargazer Wallet

    Production Specific

    In order to qualify to run a node on Constellation Network's production MainNet Hypergraph cluster, or Dor metagraph cluster, you will need to collateralize your node through your Stargazer wallet.

    Cluster Name
    Hypergraph or metagraph
    Token
    Amount

    MainNet

    Hypergraph

    $DAG

    250,000

    IntegrationNet

    Hypergraph

    $DAG

    250,000

    Dor

    metagraph

    $DOR

    Please follow this guide to import your node’s wallet into your Stargazer Wallet, and transfer $DAG and or $DOR before attempting to join the cluster.

    This step is required to meet the staking threshold and ensure your node is eligible for cluster participation.

    Stargazer Wallet

    Add/Update Delegating Staking Parameters

    You should now be in the configurator and at the section where you're prompted to enter the necessary parameters to enable delegation.

    These parameters will define how your node appears to other delegated staking participants, allowing them to discover and delegate to your node based on the options you set.

    ✅ Enter Delegation Parameters​

    1

    Short name

    You will need to choose a short name for your node.

    • Must be no larger than 140 characters

    • Must be no smaller than 5 characters

    This name will be publicly displayed

    2

    Description

    • Must be no larger than 140 characters

    3

    Commission

    Decide on the commission percentage you would like to charge for allowing others to delegate to your node.

    You must select a number (integer/float) value between 5 and 10. This percentage represents the portion of staking rewards your node will collect as a fee

    4

    Confirm Your Entered Parameters

    You will be offered a chance to review your new input or changes before they are committed to the configuration file.

    Enter y to confirm

    🏁 Final Instructions

    Your configuration will be created or updated to match your requested parameters and final instructions will appear.

    Press any key and you will be returned the main menu of the configurator.

    ❌ Quit Configurator

    Your configuration is complete, you may issue a q to exit the configurator and return to your node's command line interface.

    Troubleshoot nodectl upgrade

    Resolve Issues When Upgrading Older Versions of nodectl

    Introduction

    As nodectl evolves, the upgrade process also changes.

    This guide helps bring your outdated nodectl installation up to the current recommended version using a versioned, step-by-step upgrade path.


    Directly From The nodectl Utility

    1

    Check Your Current Version

    2


    Manual Download


    1

    Releases page

    Open your browser and visit the nodectl Releases Page.

    2

    Troubleshoot EdgePointDown Message

    Resolve IPv6-related Connection Issues on Your Validator Node

    🧠 Understanding the Issue

    The EdgePointDown status typically indicates a failure in establishing communication between your node and the network’s edge points.

    A known root cause is the system resolving outbound connections using IPv6 instead of IPv4, which can happen in scenarios such as:

    • The cloud provider defaults to IPv6 or uses IPv6-to-IPv4 translation

    • The network infrastructure between your VPS and Constellation’s edge points mishandles IPv6

    • DNS resolution or routing forces IPv6 where IPv4 is required for compatibility

    ⚠️ This guide addresses IPv6-related causes only.

    As new root causes are discovered, this document will be updated.


    1

    Backup Your .p12 Keystore

    ⚠️

    Check IPv6 Status

    ⚠️ If either status is already disabled, your issue is not IPv6-related. Stop here and seek assistance from a Team Lead via the .


    Restart Auto Restart (Optional)

    To ensure the monitoring service is in sync with the updated configuration:


    Conclusion

    ✅ Your node should now resume connection attempts using IPv4.

    If the EdgePointDown issue was caused by IPv6, it should be resolved.

    If problems persist, please reach out to the Constellation Network support team or a Team Lead in Discord.

    MainNet & IntegrationNet Quick Start Guide

    Expert level walk through on how to build a node to run on Constellation Network's MainNet or IntegrationNet.

    This guide assumes expert level knowledge with little to no details.

    For a more descriptive build guide, please start here:

    Build Your Node
    1

    Choose your node's hosting medium

    Are you going to run this node via a Cloud Provider using a VPS, A dedicated cloud based server, or bare metal system.

    Choose your hardware to match our or Cloud Provider that offers systems that meet out .

    We will assume you are using a VPS for the remainder of this guide.

    2

    Choose a Debian based distribution

    Ubuntu is recommended, Debian 12 will work well.

    3

    Setup the Firewall

    Ensure the necessary ports are open to allow your node to communicate with the Hypergraph or metagraph.

    See firewall permissions table .

    4

    Remote access your VPS

    SSH into your node to prepare it to become a Constellation Network node.

    5

    Update and Upgrade the OS

    6

    Reboot

    Apply kernel level updates and make sure all service level updates are properly engaged.

    7

    Install nodectl

    Refer to the for nodectl and download the latest release.

    8

    Start the Installation

    9

    Select Cluster to Configure/Join

    • Choose 1 (mainnet [HyperGraph])

    10

    Decline P12 Migration Request

    Choose n to decline the migration

    11

    Node Administration Account Password

    Input and confirm the nodeadmin's new strong password that will be used to administer your node.

    12

    P12 Keystore Passphrase

    Input and confirm a complex passphrase that will be used to unlock your node's ability to access the network and to administer your node's wallet.

    13

    Wait for Installation to Complete

    No action required, you can wait for the installation to complete.

    14

    Test Access

    1. Leave your root , admin or ubuntu

    15

    Submit your Node Details

    1. Connect to the Constellation Network Official Discord Support Server.

    16

    Back up your Node's P12

    17

    Collateralize your Node

    Refer to the.

    18

    Wait for the next cluster restart to join

    Once an Administrator has confirmed your nodeid will be added to the seed list, on the next cluster restart, you should be able to authenticate and join the cluster.

    Upgrade nodectl Version

    Upgrade your node control utility.

    Introduction

    This guide provides a streamlined process to upgrade your nodectl utility to the latest supported version, while following the recommended upgrade path.


    ♻️How to SSH into VPS
    1

    Access your Node

    2

    Begin the Upgrade Process

    3

    Choose the Correct Upgrade Path

    You will be prompted to select between two available versions:

    • The latest version

    4

    Verify the Upgrade Signature

    After download, ensure the following message appears:

    🚫 If you see:

    Stop immediately. Do not run additional commands. Report the issue via the Constellation Network Official Discord to verify the integrity of your upgrade and prevent potential malicious activity.

    5

    Tessellation Upgrade (If Prompted)

    You may now be asked whether to upgrade Tessellation as part of the upgrade flow.

    • 🛑 If not required: Skip to next step

    6

    Restart Auto Restart Feature (Optional)

    If you’re using the auto_restart feature, it’s recommended to manually restart it to ensure any upgrade-related updates are applied:

    🎉 Congratulations!

    Your node is now running the latest version of nodectl, fully updated and ready for continued participation in the Constellation Network.


    You can confirm your version using:

    Enable Auto Restart

    This guide outlines how to enable nodectl's auto-restart feature along with auto-upgrade support.

    Enabling this configuration allows your node to:

    • Automatically monitor and restart services if they become unresponsive or disconnected from the cluster

    • Automatically check for and apply updates via nodectl when new versions of Tessellation are available (based on your configuration preferences)

    This ensures your node remains healthy, up-to-date, and engaged in network operations with minimal manual intervention.

    Quick Install Guide

    Turn your VPS into a node using quick install guide

    This guide walks you through the fully automated “quick-install” of a Constellation validator node using nodectl’s --quick-install mode. All defaults are recommended settings, and you’ll see a live progress bar throughout.


    Begin Quick Install

    1

    Integrationnet - Build a Pacaswap node

    System Requirements

    To run a Metagraph Validator Node, ensure your machine meets the following minimum requirements:

    • Memory (RAM):

    Troubleshoot Node Alerting

    Diagnose Alert Delivery Issues for the Optional Alerting Extension in nodectl

    Introduction

    This guide provides a series of basic troubleshooting steps to help you resolve issues with the alerting module associated with the auto_restart feature in nodectl.


    Build Dor Validator Node

    Qualifications

    To qualify as a Dor Validator Node Operator, you will need to complete a few administrative tasks as part of the onboarding process.

    Please refer to the following document for detailed instructions on how to become a Dor Validator Node Operator:

    📄

    This guide outlines the necessary steps, requirements, and submission process to get started. Be sure to review it thoroughly to ensure a smooth and successful onboarding experience.

    1,000,000

    Choose a VPS Provider​

    To begin setting up your Dor validator node, you’ll first need to select a VPS provider.

    Refer to the Constellation Network Setup Guides for recommendations and considerations when choosing a provider that meets the node requirements.

    Advanced node operators may choose to build a bare metal server, operate their node inside of WSL, or within a containerized setup. While these options offer greater flexibility and control, they are not covered in the official documentation. Operators pursuing these methods should have the necessary expertise to manage system configuration, security, and ongoing maintenance independently.

    Provision Your VPS

    Provision Your VPS​

    Before setting up your Dor Validator Node, ensure your VPS meets the minimum specifications required for proper performance and stability.

    📄 Refer to the official specification document for detailed validation requirements.

    Required

    • Debian based Linux distribution.

    Suggested Operating System

    • Ubuntu 24.04 (Recommended)

    • Debian 12

    ⚠️ Not Supported:

    • Ubuntu 20.04 and lower.

    • Debian 11 and lower


    Once your VPS is built and provisioned, you may return to this Quick Start Guide to continue with the installation and configuration process.

    ​
    Dor Validator Onboarding Guide
    1

    Enter Configuration Edit Mode​

    2

    Access Auto Restart Options​

    We will choose the R from the Edit Menu.

    3

    Enable All Options​

    • Choose y to enable auto_restart

    • Choose y to enable auto_upgrade

    • Choose y to enable on_boot

    4

    Confirm Selections​

    Choose y to confirm selections.

    5

    ◽ Exit Configurator​

    Choose Q to exit back to the command line interface.

    6

    Confirm Auto Restart is Enabled​

    Understanding the various auto restart options

    The nodectl utility includes several optional features designed to automate node recovery, version compliance, and startup behavior. These options help ensure your Validator node remains online, up-to-date, and resilient without requiring constant manual intervention.


    🔁 auto_restart

    When auto_restart is enabled, nodectl continuously monitors the health and cluster status of your node.

    Key Functionality:

    • Detects if your node drops off the cluster due to issues such as network interruptions, process failures, or misconfigurations.

    • Automatically attempts to restart and rejoin the node to the cluster without user involvement.

    • Automatically attempts to return your node to consensus if it stops participating for a variety of reason.

    This is especially helpful for maintaining high availability and reducing downtime.


    ⬆️ auto_upgrade

    Constellation Network requires all active Validator nodes to run the same version of Tessellation. If your node is not running the correct version during a cluster upgrade, it will be rejected from joining, regardless of its other credentials (e.g., collateral, seed list status).

    When auto_upgrade is enabled:

    • nodectl will monitor the current cluster version.

    • If a version mismatch is detected, it will automatically upgrade your node to match the active cluster version.

    This ensures version compliance and minimizes the risk of node rejection due to outdated software.


    🔄 on_boot

    Enabling on_boot ensures that nodectl's auto-recovery features are initialized automatically when your VPS starts up, such as after:

    • A manual system reboot

    • An unexpected crash

    • Cloud maintenance or hardware restarts

    How it works:

    • On system boot, nodectl launches the auto_restart process.

    • If necessary, auto_upgrade also activates to bring the node back in sync with the cluster version.

    • This setup enables your node to recover and reconnect unattended after the VPS completes its boot sequence.


    These automation features are highly recommended for production Validator nodes, as they enhance stability, uptime, and operational efficiency across the Constellation Network.

    on the
    DAG Explorer
    within the
    Delegated Staking section
    and should be:
    • Concise – keep it short and simple

    • Descriptive – reflect your identity or purpose

    • Unique – avoid names that could be confused with other nodes

    A clear and recognizable name will help users quickly identify and delegate to your node within the Constellation Network ecosystem.

    Must be no smaller than 5 characters

    You’ll need to provide a brief description of your node that will be publicly displayed on the DAG Explorer within the Delegated Staking section.

    Keep it short and clear, highlighting your node’s strengths, unique features, or anything that sets it apart. This description is your opportunity to attract community members interested in delegated staking to delegate their $DAG to your node.

    in exchange for providing delegation services. Do
    not
    include
    %
    sign.

    You may use floating point values. 5, 5.1,5.2 ... 9.9, 10.

    Choose a rate that aligns with your operational strategy, encourages community participation, and reflects the value your node offers.

    ​
    ​
    user connected to your node's terminal.
    Do not exit the VPS terminal session.
  • Open a new local terminal and attempt a second SSH remote connection to your node using your nodeadmin user and passphrase as created in the SSH into Your VPS.

  • Reach out to an Administrator.
  • Supply and request to have your node ID appended to the MainNet Hypergraph access seed list.

  • specs
    specs
    here
    nodectl Github Repository
    ​
    ​
    collateralize your node guide

    The last known upgrade path version

    ⚠️ Important: Select the version that follows the recommended upgrade path. Skipping versions may result in misconfiguration or compatibility issues.

    • Press the corresponding number key (no need to press Enter).

    • Press y to confirm your selection.

    ✅ If required: Press y and follow the prompts

    You may optionally refer to the full Tessellation upgrade guide for details before continuing

    Minimum: 8 GB
  • Recommended: 16 GB or more for optimal performance

  • Storage:

    • At least 100 GiB of SSD storage

  • CPU:

    • Minimum: 2 vCPU

    • Recommended: 4 vCPU

  • Dependencies

    This node runs inside a Docker container, so you’ll need the following installed on your local machine or cloud instance:

    Docker Engine

    Ensure Docker is installed and running. Installation instructions can be found in the official documentation:

    👉 Docker Engine Install Guide

    Docker Compose

    Docker Compose is required to manage multi-container setups. You can install it by following this guide:

    👉 Docker Compose Install Guide

    Java

    Java is required to run the JARs. You can install it by following this guide:

    👉 Java Install Guide

    .p12 File and Node ID

    Before proceeding, you need to create a .p12 file and get your Node ID so we can add you to the seed list.

    1.1 Download the required tools

    Download the following files from the latest Tessellation release:

    • cl-keytool.jar

    • cl-wallet.jar

    🔗 You’ll find them under Assets here: 👉 Tessellation Releases on GitHub

    1.2 Set your environment variables

    1.3 Generate your .p12 file

    1.4 Get your Node ID

    1.5 Share your Node ID

    Tag the team on Discord and send your Node ID so it can be added to the seed list.

    ⚠️ Only proceed to the next step after your Node ID has been confirmed in the seed list.

    Full instructions

    👉 Working with .p12 files

    Installation

    To install and run a Metagraph validator node, follow the steps below:

    1. Create your working directory

    2. Create the shared-data directory with the metagraph-l0 subdirectory

    3. Copy your .p12 keystore file into this directory

    If you haven’t created a .p12 file yet, follow the official guide: Working with .p12 files

    4. Return to the root of your my-node directory Ensure you’re back in my-node before the next steps:

    5. Create a docker-compose.yml file

    Use the appropriate template for your network (e.g. docker-compose.integrationnet.yml) and paste it into a new file:

    6. Create a .env file Use the corresponding .env template (e.g. .env.integrationnet) and paste it into a new file:

    7. Edit the .env file with your node’s configuration

    Make sure to update the following values:

    • NODE_IP: Your instance’s public IP

    • METAGRAPH_L0_CL_KEYSTORE: Full path to your .p12 file (e.g. /app/shared-data/metagraph-l0/my_file.p12)

    • METAGRAPH_L0_CL_KEYALIAS: Your keystore alias (e.g. my_file)

    • METAGRAPH_L0_CL_PASSWORD: Your keystore password (e.g. my_password)

    8. Verify your folder structure

    Your my-node directory should now contain:

    9. Start your node 🚀 Run the following command to bring your node up:

    This command will:

    • Stop any running container

    • Pull the latest image

    • Start the node in detached mode

    • Stream the logs

    5KB
    docker-compose-integrationnet.yml
    Open
    3KB
    .env.integrationnet
    Open
    🚨 Support Disclaimer

    Important

    The alerting module is a community extension of nodectl and not officially supported.

    Use at your own risk. Limited support is available, and advanced troubleshooting may not be provided.


    🔁 Step 1: Clear the Alerting Cache

    Start by clearing the alerting module’s internal cache:

    This resets any internal flags that may be preventing alert dispatch.


    📬 Step 2: Send a Test Report

    To test if the daily reporting mechanism works:

    Check your inbox for the report. If not received, continue with the next steps.


    📣 Step 3: Send a Test Alert

    Trigger an alert manually:

    This simulates a node failure alert. Verify that the message is received by the configured email or SMS gateway.


    🧾 Step 4: Review Logs

    Check the nodectl logs for any errors related to alert dispatch:

    Look for entries that may indicate connection failures, authentication errors, or message rejection.


    📥 Step 5: Check Email Spam Filters

    If alerts are routed to a standard email inbox:

    • Check your Spam or Junk folders

    • Add the configured sender (e.g., your Gmail alert account) to your email whitelist or safe senders list

    • Create filter rules in your email settings to allow all mail from that address to reach your inbox

    • Confirm your email provider hasn’t rate-limited or blacklisted your alerting Gmail account


    📱 Step 6: Mobile SMS/MMS Alerting Considerations

    If you’re routing alerts to a mobile number via email-to-SMS/MMS:

    • ✅ Ensure MMS is supported and enabled on your phone

    • ✅ Test sending a manual email to your mobile email address (e.g., [email protected])

    • ⚠️ Contact your mobile carrier and request approval to receive messages from your node’s Gmail address—some providers block automated or high-frequency alerts

    • 🚫 Mobile providers may "black hole" repetitive or unauthenticated email messages to prevent spam


    🆘 Step 7: Seek Help (Last Resort)

    If you've exhausted all basic troubleshooting steps:

    • Join the Constellation Network Official Discord

    • Navigate to the appropriate validator support channel

    • Provide details such as:

      • Your nodectl version

      • Email provider used for alerts

      • Mobile provider (if applicable)

      • Relevant error logs or symptoms

    sudo nodectl configure -e -cb -d
    sudo nodectl auto_restart status
    Q) Quit
    sudo nodectl install --quick-install
    sudo nodectl upgrade_nodectl
    SUCCESS - AUTHENTIC NODECTL
    INVALID SIGNATURE - WARNING
    sudo nodectl auto_restart restart
    nodectl version
    export CL_KEYSTORE="my_node.p12"
    export CL_KEYALIAS="my_node"
    export CL_PASSWORD="your_secure_password"
    java -jar cl-keytool.jar generate
    java -jar cl-wallet.jar show-id
    mkdir my-node
    cd my-node
    mkdir -p shared-data/metagraph-l0
    cp /path/to/your/file.p12 shared-data/metagraph-l0/
    cd my-node
    nano docker-compose.yml
    nano .env
    my-node/
    ├── docker-compose.yml
    ├── .env
    └── shared-data/
        └── metagraph-l0/
            └── your_file.p12
    docker-compose down && docker-compose pull && docker-compose up -d && docker-compose logs -f
    sudo nodectl auto_restart clear_alerts
    sudo nodectl auto_restart send_report
    sudo nodectl auto_restart alert_test
    sudo nodectl logs -l nodectl
    Determine Upgrade Path
    3

    Follow upgrade path

    Choose the next available version required by the output in the previous step.

    4

    Upgrade your Node

    To verify that everything remains in perfect working order, issue a standard node upgrade.

    You may omit the --ni if you would like an interactive experience.

    Determine Version

    Locate the version you want to install.

    3

    Obtain Download Link

    Copy the direct download link for the release file that matches the Linux distribution you are running on your VPS.

    4

    Issue an upgrade

    You may omit the --ni if you would like an interactive experience.

    Important:

    This procedure modifies your VPS’s system configuration. If a misstep occurs, you may lose node connectivity.

    2

    Confirm Your nodectl Version

    You must be running nodectl v2.15.2 or later:

    3

    Check IPv6 Status

    Expected output:

    If you find IPv6 is disabled, you do not need to continue this troubleshooting guide. Please contact an administrator.

    4

    Disable IPv6 with sysctl

    To restrict the system to use IPv4-only routing:

    This updates the system configuration to disable IPv6 via sysctl.

    ⚠️ If either status is already disabled, your issue is not IPv6-related. Stop here and seek assistance from a Team Lead via the .

    ♻️Backup/Restore a P12 KeyStore
    Constellation Network Official Discord

    Start the installation using quick install

    For advanced users, if you prefer one-command install, supply any of these flags:

    • --p12-passphrase <pass>

    • --p12-alias <alias>

    • --user <username>

    • --user-password <password>

    • --p12-destination-path <path>

    • --p12-migration-path <path>

    • --confirm (auto-accept warnings)

    Warning: If you use any of the options/flags to supply a password or passphrase at the command line, these sensitive flags end up in your shell's history.

    It is strongly advised to clear your history after the installation completes with the history -c command ( -c= clear )

    2

    Verify Specifications

    When you first launch the nodectl utility, it will guide you through selecting the type of validator node you wish to install.

    Choose H to build a Hypergraph validator node or D to build a Dor Data Layer 1 validator node..

    3

    Continue

    If you node meets all the proper specifications you may press any key to continue.

    4

    Build Begins

    You can now sit back and monitor the progress as nodectl begins building your node using all the recommended options.

    5

    Assign Your Cluster

    After a few moments, you will be prompted to select the cluster you wish to join.

    Based on your selection, nodectl will download a predefined configuration tailored to the chosen Hypergraph or metagraph cluster.

    Choose 1 through 4 depending your requirements.

    6

    Migrating an Existing P12

    You may enter n or just press Enter to accept the default [n] option.

    🔵 Coming from the Migration Guide?

    If you are performing a New Node Installation with .p12 Migration, you may press y at this prompt to allow nodectl to automatically scan your VPS for any available .p12 keystore files. Once detected, you will be presented with a list to select from, choose the appropriate file to continue the installation.

    7

    Node Administrator Password

    No action is needed here.

    You will see validation of your choice to join a specific cluster including:

    • Hypergraph or metagraph cluster name

    • Default username nodeadmin

    • Defaults p12 keystore name nodeadmin-node.p12

    • Default alias nodeadmin-alias

    8

    Create Your nodeadmin Password

    You will be prompted to create a password for the nodeadmin user, which will serve as the default user on this VPS/node. This password will be required to execute administrative commands using nodectl going forward.

    Reminder to use proper password .

    Enter and confirm the .

    9

    P12 Keystore Passphrase

    You will be prompted to enter a passphrase for your node’s .p12 keystore (wallet). This passphrase is required to perform signing requests and access your node’s hot wallet on the blockchain.

    Reminder to use proper passphrase .

    Enter and confirm the .

    10

    Record For Later

    It is important to securely record your username, password, .p12 keystore filename, keystore passphrase, and node alias for future reference. These details are easy to forget and losing them could lead to serious consequences.

    11

    Allow Installation to Complete

    The installer now has all the necessary information to complete the node setup.

    You can sit back and relax while your node is automatically built.

    12

    Completed Install Screen

    The nodectl utility will finish by displaying a final instructional page.

    Review it carefully, record any important information in your notes.

    The following instructions will be explained in greater detail in the post-seeding documents available on our documentation hub.

    13

    Final instructions

    Now that your VPS has been successfully configured as a Constellation Network node, there are a few final steps to complete before proceeding to the First-Time Connection Guide to bring your node online.

    🚩Node Prerequisites

    First Time Cluster Connection

    This guide walks you through connecting a Validator Node to a Constellation Network Hypergraph or metagraph cluster for the first time.

    ⚠️ Guide Usage

    This guide assumes that you have properly created and connected to your VPS successfully and installed the nodectl utility.

    Build Your Node💽The nodectl utility

    🧰 Prerequisites

    Before beginning, ensure you’ve reviewed the full checklist and profile documentation.

    • This guide uses dag-l0 as the profile name.

    • Replace dag-l0 with your node’s actual profile name if it differs.

      • For example dor-dl1 for Dor data layer1 validator nodes.


    🔐 SSH Into Your VPS

    Use the following command to connect to your VPS via SSH:


    📄 Verify Your Node Is on the Seed List

    To confirm that your node is recognized by the network, run:

    Expected Output:

    🛑 If you are not on the seed list, stop here and contact a Discord Administrator Team Lead via the Constellation Network Official Discord. You must wait for the next cluster restart that includes a seed list update before continuing.


    ⬆️ Perform a Node Upgrade

    Use the upgrade command to prepare your node for the cluster connection:

    The -ni flag enables non-interactive mode, accepting default values automatically.


    ⚙️ For Single Layer1 Nodes

    If you're operating a Layer1-only Metagraph Validator, you may skip directly to the Join Layer1 step at the bottom of this guide.


    🧬 For Hybrid Nodes

    Hybrid nodes must reach a Ready state on Layer0 before joining Layer1.

    ⚠️ Expected Behavior:

    After your node completes Layer0 connection steps, it will attempt to join the Layer1 profile and fail. This is expected and not a concern at this stage.

    This happens because Layer1 participation is blocked until your node fully syncs the Layer0 snapshot chain.

    During this period, your node will transition through the following statuses:

    • SessionStarted

    • DownloadInProgress


    📥 Monitor for DownloadInProgress State

    After upgrading, verify your node has reached the correct syncing phase:

    Expected Output:

    If you see SessionStarted, continue running the command periodically until it transitions to DownloadInProgress.


    ⏳ Wait for Ready State

    Your node will now download the entire snapshot chain from the Layer0 cluster. This process may take several days.

    You have two options:

    • Wait for your node to reach the Ready state.

    • Proceed to the optional next step to speed up the snapshot process using the Starchiver utility.


    🚀 Optional: Execute Starchiver to Speed Up Sync

    To accelerate snapshot syncing:

    👀 Monitor your node closely to ensure the process completes without error.

    🚧 Caution: Starchiver is a community-supported tool and not officially supported by Constellation Network. Use at your own risk. For issues, contact the tool's maintainer via GitHub or seek help on the Constellation Discord.


    📊 Verify Node Status

    Once your node has completed downloading the snapshot chain, it will enter the Ready state and begin participating in consensus.

    To verify:

    Look for the following:

    For Layer1:

    🔄 To monitor the transition in real time:

    Use the q key to exit the watch command gracefully.


    🔗 Join Layer1 (For Hybrid Nodes Only)

    If Layer1 displays ReadyToJoin, you may initiate the join process:

    If your node is in any other state, restart the profile before retrying:


    Once the above steps are complete and your node is fully synced and participating in consensus, your first-time connection process is complete.

    Collateralize Your Node

    This guide outlines the steps required to collateralize your node’s hot wallet, meeting the staking requirements needed to join the Constellation Network Hypergraph or a metagraph.

    1

    Connect to your node

    Follow the connection guide to connect to your node.

    2

    Export your private key

    MainNet

    3

    Supply your p12 passphrase

    Due to the sensitive nature of this command, nodectl will prompt you to manually re-enter your .p12 keystore passphrase before proceeding.

    4

    Record your private key confidentially

    Be careful with this private key

    5

    Connect to your Stargazer Wallet

    Login as normal.

    6

    Enter the "Settings" ⚙️

    7

    Wallets

    8

    Add a new wallet

    9

    Import a wallet

    10

    Constellation wallet type

    11

    Paste your private key

    12

    Import

    13

    Collateralize

    You may begin transferring your $DAG or $DOR tokens to your newly imported wallet.

    🚧 Proceed with caution

    Start by sending a small test amount to ensure the transfer is successful before committing to a full transfer.

    You can continue with multiple transfers or a single lump-sum transfer after the test is confirmed. There should be no fees associated with these transfers.

    Download nodectl

    How to download nodectl for the first time.

    Before Be Begin

    From now on, all instructions will be executed on your remote VPS, not on your local system.

    Please make sure to set up and connect to your remote VPS before continuing.

    Build Your Node🚉First Time Connection Guide

    Download the nodectl binary

    1

    Navigate to to GitHub

    From the web browser navigate to Constellation Network's Stardust Collective GitHub repository dedicated to the development nodectl.


    auto_restart disable - Error Explained

    From Step 5.1 from ☝️

    Since the auto_restart command is a background feature, if you're not downloading nodectl for the first time; but instead downloading a newer version manually, instead of using nodectl's built-in upgrade feature, the auto_restart process may still be running.

    This can prevent you from overwriting the nodectl

    Manual Installation

    Manually download all the elements needed to run a node for advanced Node Operators.

    Before you Begin​

    If you’ve chosen to use nodectl to create your node, excellent choice! You should skip this section of the instructions.

    Users leveraging nodectl do not need to perform any of the steps outlined here, as nodectl handles all of them dynamically and automatically.

    Manual Installation

    1

    Setup your user management on your VPS.

    2

    Environment variables chart

    Variable
    Value
    Instructions

    Cluster Removal

    Leave Cluster

    To leave the cluster after a process has been started and joined.

    Stop jar processes

    Find the process(es) associated with your node

    Kill the process(es)

    Backup/Restore a P12 KeyStore

    Table of Contents

    🔐Backup P12 Keystore File

    Maintaining an up-to-date and secure backup of your .p12 file is essential for protecting access to your Validator node and wallet. This guide will walk you through securely backing up and restoring your .p12 file using a macOS or Windows system.


    1

    Determine Cold Storage Medium

    What and Why Cold Storage?


    🔄 Restore P12 Keystore File

    1

    Obtain p12 keystore backup from cold storage

    • Access your backup device

    IntegrationNet Quick Start Guide

    Expert level walk through on how to build a node to run on Constellation Network's IntegrationNet.

    Before We Begin:

    IntegrationNet vs. MainNet Node Setup

    When building your Validator node, it’s important to understand the key distinction between IntegrationNet and MainNet from a node operator perspective.

    While both environments serve critical roles in the Constellation ecosystem, the primary difference during setup is related to collateral staking.

    Note:

    This statement is primarily to understand the distinctions between a Node Operator operating a node on IntegrationNet verses MainNet.

    NOT DISTRINCTIONS BETWEEN THE PURPOSE OF THESE TWO HYPERGRAPH CLUSTERS


    🔄 IntegrationNet Overview

    • IntegrationNet is a non-production environment used for development.

    • It operates on a separate, non-economic Hypergraph cluster.

    • $DAG tokens used in IntegrationNet have no monetary value and cannot be transferred to MainNet.


    💼 Hot Wallet Behavior

    • The hot wallet on an IntegrationNet node does not hold real $DAG tokens.

    • As such, collateral staking is not required or validated directory from the node, in this environment.

    • This allows new Constellation specific metagraphs, Enterprise metagraphs, and Eco-system develped metagraphs test metagraph functionality and behaviors, before moving into production.


    🧩 Required: Lattice Integration

    To operate a node on IntegrationNet:

    1. Create an account on the .

    2. Connect a DAG wallet address through the IntegrationNet Node Operator Program.

    3. This wallet is used for tracking your staking collateral.

    1. Build your IntegrationNet node, using the guide options presented below.


    🛠️ Summary

    Feature
    IntegrationNet
    MainNet

    Understanding this distinction will help you correctly prepare your node for the appropriate environment and avoid unnecessary confusion during setup.

    Quick Start Guide Options

    To build your IntegrationNet node, you may either use two options:

    1. Detailed Build your Node guide (recommended).

    1. Expert minimalistic guide

    Build AWS EC2 Instance

    Amazon Web Services Specific Build Process

    Before we begin

    Please make sure you created your SSH key pairs prior to starting these steps.

    VPS Build Procedure

    Alerting & Reporting Setup Guide

    Monitor Your Validator Node and Receive Email Alerts

    Introduction

    This guide walks you through configuring basic alerting and reporting for your Validator node using the nodectl utility. It enables email notifications if your node drops from the cluster (excluding local network outages).


    Contents

    Troubleshoot SSH Connection

    Introduction

    This guide is designed to help you troubleshoot and restore SSH access to your Validator node when it was previously working but is now unreachable.

    Common Steps

    How to SSH into VPS

    🤔Terminology

    Reference Table
    Term
    Definition

    Migrate an IntegrationNet Node to MainNet

    Quick Start Guide to migrate a node from IntegrationNet to MainNet

    Table of Contents

    Sections

    First Time Connection Guide

    How to connect to a brand new VPS created by using one of the Constellation Network VPS build guides.

    Prerequisites

    Create SSH Keys

    This page provides a step-by-step guide on how to create SSH (Secure Shell) keys for securely accessing your VPS or server. SSH keys are a more secure alternative to password-based authentication and are essential for managing your Constellation Network validator node.

    You’ll learn how to generate a key pair. This guide is ideal for both new and experienced operators looking to establish a secure and reliable connection to their node infrastructure.

    We will learn now to set proper permissions, and copy your public key to the remote server later in the documentation.

    Securing SSH Access

    Validator Node Operator Security with SSH

    Securing Your Validator Node in an Open Internet Environment

    In traditional, centralized server infrastructures, critical systems that require direct internet access are protected by layered security controls.

    These environments typically include a full suite of professionals; System Administrators, Site Reliability Engineers, Network Engineers, Security Engineers, and others. These experienced professionals are responsible for hardening systems and defending them from external threats.

    sudo nodectl upgrade_nodectl -v <version_you_found_here>
    sudo nodectl upgrade --ni
    sudo nodectl upgrade --ni
    sudo nodectl version
    sudo nodect upgrade_path
    sudo nodectl version
    sudo nodectl ipv6 status
    --------- * IPV6 STATUS * ---------
    Interface found ................... eth0
    
    IPv6 sysctl Status   IPv6 GRUB Status
    enabled              enabled
    sudo nodectl ipv6 disable --ni --sysctl
    sudo nodectl auto_restart restart
    sudo nodectl install --quick-install
      ========================================
      =   CONSTELLATION NETWORK HYPERGRAPH   =
      =          VERIFY NODECTL SPECS        =
      =         PRE-INSTALLATION TOOL        =
      ========================================
      Code Name: Princess Warrior
    
      Please choose node type to test:
      H)ybrid Dual Layer
      D)or Validator
      Q)uit
    
      KEY PRESS an option
      HYPERGRAPH or METAGRAPH
      predefined choices
      -------------------------------------------
      1) mainnet [HyperGraph]
      2) integrationnet [HyperGraph]
      3) testnet [HyperGraph]
      4) dor-metagraph-mainnet [metagraph]
    
      Q)uit
    
      KEY PRESS an option
     ------ * INSTALLATION COMPLETE * -------
    
      CONGRATULATIONS!
      Below you will find your nodeid which 
      was derived from your p12 file
      Please report this nodeid to administrative 
      staff to gain access to the network via the 
      access  list permissions.
    
      HyperGraph/metagraph ..................... hypergraph
      Environment .............................. mainnet
      P12 Location ............................. /home/nodeadmin/tessellation
      P12 Name ................................. nodeadmin-node.p12
      P12 Alias ................................ nodeadmin-alias
    
       ----- * CHECK SEED LIST REQUEST * ------
    
      NODE ID
      <your_node_id_here>
      NODE ID FOUND ON SEED LIST
      False
      DAG WALLET ADDRESS
      <your_dag_wallet_address_here>
    Constellation Network Official Discord
    requirements
    password
    requirements
    passphrase
    Node Operator Notes
    SSH Remote Access
    Dor metagraph

    IntegrationNet

    You should not export your private key when participating on IntegrationNet. The $DAG tokens used on IntegrationNet hold no intrinsic value.

    Collateral requirements for this TestNet are validated through a connected wallet within your Lattice account that contains the required 250,000 $DAG collateral.

    ssh -i /path/to/ssh/private/key root@<vps_ip_address>
    sudo nodectl check_seedlist -p dag-l0
    NODE ID FOUND ON SEED LIST
    True
    sudo nodectl upgrade -ni
    sudo nodectl status -p dag-l0
    JOIN STATE
    DownloadInProgress
    sudo nodectl execute_starchiver -p dag-l0 --restart
    sudo nodectl status -p dag-l0
    Layer0
    JOIN STATE       Ready
    IN CONSENSUS     True
    Layer1
    JOIN STATE       ReadyToJoin
    sudo nodectl status -p dag-l0 -w 120
    sudo nodectl join -p dag-l1
    sudo nodectl restart -p dag-l1
    sudo nodectl export-private-key -p dag-l0
    
      This command requires manual re-entry of your p12 passphrase
      You may press q + <enter> to quit
      You will not see the q echoed to the screen.
      Please enter your p12 passphrase to validate config_file:
    
     WARNING  THIS IS YOUR PRIVATE KEY
      DO NOT EXPOSE TO ANYONE, AS YOUR HOT WALLET AND NODE CAN BE COMPROMISED!
    
      PRIVATE KEY FOR [constellation-node01.p12]
      =============================================================================================
      13abcdef13abcdef13abcdef13abcdef13abcdef13abcdef13abcdef13abcdef
      =============================================================================================
    suod nodectl export-private-key -p dor-dl1
    https://github.com/StardustCollective/nodectl/releases
    2

    Find the newest latest release

    It is not recommended to download a pre-release tagged release. These releases are developmental and may contain bugs that can interfere with your node's operations.

    3

    Choose the right download link

    On the Releases page you’ll see direct wget commands for various distros.

    For example, for Ubuntu 22.04 and Debian 12 or Ubuntu 24.04.

    Please ensure you download the correct version for your Linux distribution. The background libraries required to compile and run nodectl differ between Ubuntu 22.04 and Ubuntu 24.04. Downloading the wrong version will result in an inoperable nodectl utility and numerous error messages.

    4

    Copy & Paste the wget command

    On the right-most side of the code block showing the download wget command you should see a clipboard copy icon

    5

    Paste into your Remote VPS

    Paste the command into your remote VPS terminal session. This command is a combination of several commands linked together with the Linux's bash ; to indicate sequential commands that will be executed in order.

    The commands executed will perform the following:

    1. Attempt to disable nodectl's auto restart feature if nodectl may already be installed on the system to avoid conflicts when attempting to download the nodectl utility. This command will produce an expected that we can safely ignore.

    2. The next command will use wget to download the nodectl utility and place it in the appropriate directory for seamless execution.

    3. Next, the permissions of the nodectl binary will be set to executable, allowing you to run the command.

    4. Finally, the last command in the sequence will run the version check, allowing you to verify that nodectl was successfully downloaded, placed in the correct location, has the proper permissions, and is running the expected version.

    6

    Verify the installation

    Once all the steps from Step 5 are completed, the version of your nodectl utility should be displayed on your screen.

    binary, as the Linux system will detect that the binary is in use.

    To avoid this issue, you must disable the auto_restart feature before attempting to overwrite the binary. The command to do this is provided on the releases page. It is safe to run, even if the nodectl binary is not present. It will simply return a harmless error message.

    Verify Specifications

    Please ensure your VPS meets the required specifications to run on Constellation's Hypergraph or metagraph networks.

    Proper sizing is essential for performance, stability, and successful participation in consensus.

    3

    Install dependencies

    4

    Download Tessellation Binaries

    Please replace the download version with the latest available version, as version numbers may have changed between the time this document was written and when you are accessing it.

    • cl-dag-l1.jar - Layer1 Data or Currency jar

    • cl-node.jar - Global Layer0 Node jar

    • cl-keytool.jar - Key tool utility specific to Constellation Network's Tessellation

    5

    Download the latest seed list file

    This is an access list containing public keys (referred to as node's nodeid).

    6

    Firewall Considerations

    Please choose a TCP port for your node’s public ingress/egress traffic, as well as a separate TCP port for peer-to-peer communications.

    Ensure that both selected ports are open and accessible on your firewall or VPS provider to allow proper protocol communication.

    7

    Export environmental variables

    The values shown below are examples only. Do not use them as-is. Refer to the Environment Variable Chart for explanations of each variable.

    8

    Create your P12 keystore file

    The values shown below are examples only. Do not use them as-is.

    9

    Update P12 keystore permissions

    The values shown below are examples only. Do not use them as-is.

    10

    Start your Layer0 Process

    The values shown below are examples only. Do not use them as-is.

    11

    Start your Layer1 Process

    The values shown below are examples only. Do not use them as-is.

    CL_L0_PEER_HTTP_HOST

    <layer0_peer_ipv4>

    This is recommended to be your node's external IP address. Your node will be participating on both Layer0 and Layer1. The Layer1 should link through your Layer0 connection. Your node will be the most reliable node to be UP at the time your attempt to join the Hypergraph.

    CL_L0_PEER_ID

    <layer0_peer_nodeidr>

    he node ID of the node you will be linking with on Layer0.

    CL_L0_PEER_HTTP_PORT

    <public_port>

    The public port of the node you are linking to through Layer0.

    CL_EXTERNAL

    <public_facing_ipv4>

    Our node's remote IP address

    CL_KEYSTORE

    <name_of_keystore>

    This will be placed at the end of the path CL_KEYSTORE line in the file.

    CL_PASSWORD

    <p12_keystore_passphrase>

    The password/passphrase you will use for your p12 keystore.

    CL_KEYALIAS

    <your_keystore_alias>

    Do not use this example, come up with your own.

    https://documentation.ubuntu.com/server/how-to/security/user-management/index.html
    ​
    Cold storage refers to keeping your .p12 file offline, minimizing exposure to unauthorized access or system vulnerabilities. Acceptable storage methods include:
    • Encrypted USB drives

    • Hardware wallets with secure storage

    • Air-gapped systems

    • Secured Encrypted Software Vaults

    2

    Open Terminal Application

    Macintosh MacOS Terminal

    Windows 11 Terminal App and make sure the terminal session opens a PowerShell prompt.

    3

    Create Temporary Backup Directory

    4

    Start SFTP Session to Your Validator Node

    Replace values with your actual SSH key and node IP address:

    You'll be prompted to enter your SSH key passphrase.

    5

    Locate your p12 KeyStore

    Example output:

    6

    Download your p12 KeyStore

    Use the get command to download the file to your temporary directory:

    You should see:

    7

    End the SFTP Session

    8

    Confirm p12 Keystore on Local System

    cd ~/constellation-backups
    ls -l
    cd ~/constellation-backup
    dir

    Confirm your p12 keystore is locally found on your system.

    9

    Transfer to Cold Storage

    Move your .p12 file to a secure offline storage device.

    10

    Remove p12 KeyStore from Local System

    Once complete, delete the p12 keystore file from your local system to maintain proper security practices.

    11
    cd ~/constellation-backups
    rm -f my-p12file.p12
    cd ~/constellation-backup
    rm my-p12file.p12
    Locate your backup p12 key store file
    2

    Transfer p12 keystore to local system

    Copy your backed-up p12 keystore file to your local Macintosh or Windows system.

    mkdir ~/constellation-backup
    cp /Volumes/ColdStorage/my-p12file.p12 ~/constellation-backup/
    cd ~/constellation-backup
    ls -l
    • Connect your backup device or connect to your backup medium to your Windows 11 system.

    • Use File Explorer to copy the file into your constellation backup directory under your local user's home directory.

    Verify that you see your p12 file listed.

    3

    Open Terminal Application

    Macintosh MacOS Terminal

    Windows 11 Terminal App and make sure the terminal session opens a PowerShell prompt.

    4

    Connect to Your Node via SFTP

    5

    Navigate to Restore Location

    We need to change directories to the location where we would like to place our p12 keystore file.

    Change directories in your SFTP session:

    6

    Upload our P12 KeyStore

    We will use the SFTP put command.

    Expected output:

    7

    Exit SFTP Session

    Backup Procedure
    Restore Procedure

    Wallet Usage

    Node identity only

    Node identity + Staking

    Environment Type

    Non-Production Development

    Live Production

    $DAG Token Value

    No real-world value

    Real, staked assets required

    Collateral Required

    ✅ Required - External through Lattice

    ✅ Required

    Lattice Account

    ✅ Required

    Lattice platform
    Build Your Node
    MainNet & IntegrationNet Quick Start Guide

    ❌ Not Required

    Creating your account on AWS is a simple process similar to all other SaaS model services. At the current time, we will leave this process up to you.
    1

    Sign Up for an AWS account

    AWS Sign Up Page

    2

    Create SSH Keys

    If you have not yet created your SSH keys, please follow the instructions at the link below to generate your public and private key pair:

    Once you have successfully generated your SSH keys, return here and continue to the next step.

    3

    Navigate to EC2 Console

    • Enter in ec2 in the search bar at the top left

    4

    Access Key Pair Console

    Choose Key Pairs from the Network & Security section

    Choose Actions and Import key pair

    5

    Access Security Groups Console

    From the same Network & Security section choose Security Groups .

    6

    Create your rules

    From the Inbound rules select Add rule

    7

    Enter EC2 instances console

    Click on the Instances from the Instances section on the left side panel.

    8

    Enter Launch Instances Wizard

    Click on Launch instances on the top right of the screen.

    9

    Name your VPS

    In the Name and tags section enter the name you would like to call your VPS.

    10

    Choose your Application and OS Image

    Choose Ubuntu

    The AMI will auto populate.

    11

    Choose your Instance Type

    Click the drop down and type in the search:

    Hypergraph Validator: m7i.2xlarge or t2.2xlarge

    Dor Data Layer 1 Validator: t2.medium

    12

    Choose your key pair (SSH)

    Click on the drop down inside the Key pair section and choose the key pair you uploaded in step 4.

    13

    From the Network Settings section

    Select the Select existing security gruop and select your security group (firewall policy) from the list.

    14

    From the Configure Storage section

    Set the size to 320 GiB gp3

    15

    Launch instance

    Click Launch instance from the left side Summary section.

    16

    Success Confirmation

    Select the link to the instance ID from the green success box.

    17

    Enter the details of your new VPS

    Select the link to the instance ID from the list table

    18

    Record the IP address of your VPS

    Complete

    You have successfully launched a VPS instance in AWS, Congratulations

    You are now ready to continue to connect to your node for the first time, install nodectl and turn your EC2 instance (VPS) into a Constellation Network Validator Node!

    SSH Remote Access


    ⚠️ Important Limitations

    The nodectl utility's alerting feature depends on your node being reachable. If the VPS goes offline or loses internet access, alerts cannot be transmitted and will not be delivered.


    🖇️ Prerequisites

    • nodectl must be installed and running on your node.

    • A Gmail account with:

      • 2-Step Verification enabled

      • A dedicated App Password (email token) created for nodectl

    This guide will walk you through these steps.


    🏵️ Configure Alerting

    1

    Create or Use a Gmail Account

    You can use an existing Gmail account or create a new one.

    2

    Enable Gmail 2-Step Verification

    If not already enabled, activate 2-Step Verification via your Google Account:

    • Go to: Manage your Google Account

    • Click the Security tab

    • Follow prompts to enable 2-Step Verification

    3

    Generate an App Password

    • In your Google Account > Security > 2-Step Verification section

    4

    Determine Your Timezone

    Your VPS uses UTC, but you can configure alerting in your local timezone.

    Use to look up your exact timezone string (e.g., America/New_York, Europe/Zurich).

    Record your timezone string for later.

    5

    Connect to Your Node

    6

    Launch the Configurator

    7

    Enter Alerting Setup

    You’ll be prompted for the following details:

    Prompt
    Description
    8

    Exit Configurator


    🧪 Test Configuration

    1

    Test an Alert

    2

    Handle Spam

    Check your inbox. If it ends up in spam, mark it as "not spam."

    If you are sending alerts to a mobile provider email, ( sending an email to your mobile phone number in order to obtain text (SMS/MMS) message alerts ). It is important to make sure your carrier allows the message through to your phone. Some carriers may silently block messages they flag as suspicious. This may require contacting your mobile provider support with a request to allow the emails, and remove any flags as non-nefarious.

    3

    Test a Daily Report

    You should receive a formatted status report via email.


    🛠️ Troubleshooting

    If you don’t receive emails:

    • Confirm your App Password was entered correctly

    • Ensure your Gmail account is not blocking outbound activity

    • Double-check that your time zone string matches the official naming convention

    • Use a secondary email address to confirm if messages are being blocked by your provider


    Once configured, your Validator node will monitor its cluster participation status and email you alert messages and daily status reports; helping you stay informed, even when you’re away.

    ✅ Verify the username for the VPS you're connecting to
    • e.g.) nodeadmin

    ✅ Check your SSH key pair file names

    • Private key must match the server's authorized key.

    ✅ Confirm correct permissions

    • private key should be read-only: chmod 400

    ✅ Ensure the public key exists on the server in the correct location

    ✅ Confirm the private key file exists locally

    • Is it correctly referenced by your SSH command.


    🏠 Local IP address

    Many ISPs assign dynamic IP addresses to customer routers.

    A change in your IP may cause your cloud provider’s firewall to block your SSH attempts.

    🩹Symptoms:

    Your SSH terminal or remote connection application sits idle and eventually shows Connection timed out messages.

    Terminal or remote terminal application will how a blank screen only

    No password or key prompts appear

    Not entering the SSH connection string and attempting to run commands locally instead of through your SSH tunnel.

    💡 Example:


    🔧 How to Fix It

    1

    Determine your new IP address

    Open your web browser and navigate to:

    2

    Record New IP Address

    Copy your current public IPv4 address

    3

    Cloud Provider Console

    Go to your cloud provider's web console.

    4

    Update Firewall Rules

    Update your firewall or security group rules to allow SSH access from your new IP

    • AWS: Update the Security Group

    Try connecting again after updating the rules.


    🔐 SSH Key Issues

    📍 Local Key Issues

    Ensure the private key file:

    • Still exists in the expected location

    • Has not been renamed or moved

    • Is intact and not corrupted

    • Has the proper permissions

    📌 Tip:

    If in doubt, restore your key from a known-good backup.

    Important: Once resolved, create a backup of your SSH keys if you haven’t already.


    📡 Remote Key Issues (Accessing via Console)

    If you can still access your VPS through your cloud provider's web console:

    1

    Log into the Web Terminal

    2

    Navigate to the .ssh Directory

    3

    Verify Public Key

    Check for the authorized public key file

    authorized_keys or .pub file.

    If the key is missing or incorrect:

    Check alternate directories:

    4

    Identify _backup

    If you find your key with a _backup attached to the name of the file, issue the following command and check again:

    Enable root SSH temporarily:

    5

    Copy SSH Key Back Over

    Copy the key into your nodeadmin’s .ssh directory :

    Change ownership

    6

    Disable Root Access Again

    Re-Attempt to create an SSH connection to your node.


    📡 Cloud Provider Outage

    • Visit your cloud provider’s main dashboard

    • Look for service alerts

    • If the console is also unreachable, check external outage reports

      • Google

      • Twitter


    🖥️ VPS-Specific Issue

    • From the cloud console, check the status of your VPS instance

    • Ensure it’s running and not reporting hardware or OS-level errors


    🌍 Local Internet Outage

    • If you cannot connect to any external site or service, confirm your own network is online

    • Restart your router/modem if necessary and try again later

    ♻️How to SSH into VPS

    local

    This refers to the system you are currently using to administer all commands. It is typically a Macintosh, Windows 11 PC, mobile phone, or tablet. It is the physical device directly in front of you.

    remote

    This is the VPS or cloud-based server that you are attempting to connect to in order to perform administrative tasks.

    VPS

    Virtual Private Server (a server in the cloud). If you are not using a VPS, a bare metal or dedicated server can be used as a substitute for all references to a VPS in these guides.

    IP address

    The Internet Protocol (IP) address is assigned independently to both your local and remote systems. This address is similar to a mailing address like 123 Main Street, CA 94015, it tells network devices how to locate and communicate with each other.

    tcp port

    Transmission Control Protocol (TCP) can be thought of like a dedicated channel on your TV or streaming service. In this guide, we’ll focus on port 22, which is the default "channel" used for SSH (Secure Shell) remote access. It’s similar to switching your remote to channel 22 to securely connect to your VPS. On the other end of the connection, your VPS is actively listening on port 22 for incoming requests from your local machine to establish a secure session. ( note this port is configurable; does not need to be port 22 )

    Public Key

    This is an encryption key that we share with others, which can decrypt any communication between our local and remote systems. It can only decrypt messages that were encrypted using our private key.

    Private Key

    We use this encryption key that is never shared with anyone. The SSH protocol uses this private key to encrypt data on the local system before transmitting it over the Internet to the remote system, which holds the corresponding public key. Only this public key can decrypt messages that originate from our private key.

    🔐Locate the necessary parameters

    We will need to identify a few things (parameters) before we connect to our VPS.

    See terminology for references.

    We should have our notes accessible to identify the parameters below:

    What we need to know
    Description

    private key name

    What did we use when we our VPS originally?

    private key location

    We need to know the full system path to the private key we created so that we can instruct the SSH protocol utility (which is installed by default on most systems) where to locate and use it.

    remote username

    When we created our VPS, which non-root user account did we set up?

    IP address

    What is the IP address of our remote VPS?

    Did we configure a unique custom port or use the default SSH assigned TCP Port?

    You most likely have not configured a custom TCP port to connect to your VPS; however, using a as it can provide an additional layer of security for your VPS.


    1

    Open Terminal Application

    Macintosh MacOS Terminal

    Windows 11 Terminal App and make sure the terminal session opens a PowerShell prompt.

    2

    Create our SSH connection string

    For our example

    Parameter Needed
    Example Only Value
    3

    Start SSH Session to Your Validator Node

    Build our SSH connection string from the ☝️step (example only - replace with your own values )

    • Windows

    4

    Private Key Passphrase

    You will be prompted to enter your SSH key passphrase.

    If this is the first time you connected to your VPS you will be prompted to approve adding the SSH key details into the authorized key list on your VPS. Since we know we purposely attempted this connection, we can say yes

    🗒️Node Operator Notes
    ✨Prepare Node
    1

    Validate VPS Specifications

    Ensure your VPS meets the minimum specifications for a MainNet Hybrid node.

    IntegrationNet nodes often already meet these specs, but this is a good time to confirm before migrating.

    2

    SSH Into Your VPS

    :

    3

    Document Your Current .p12 Details

    Run the following command to retrieve current .p12 configuration details:

    4

    Check Auto Restart Status

    • If you see SERVICE PROCESS FOUND (PID), continue to the next step.

    5

    Disable Auto Restart

    • Choose r → Disable all three options:

    6

    Upgrade VPS - OS Packages

    If you encounter a purple TUI (text interface), use Tab to move between options and Enter to accept defaults.

    7

    Reboot VPS

    Whether you are requested to reboot after the completion of the upgrade or not, it is a good idea to give your VPS a warm boot ( restart ) to obtain a fresh starting point.

    Answer y if asked to leave clusters. Wait one minute, then SSH back into the node.

    8

    Validate Latest nodectl Version

    If you obtain a True you should skip the upgrade_nodectl step.

    If you obtain a False you should upgrade nodectl.

    9

    Upgrade nodectl

    10

    Leave and Stop IntegrationNet Cluster


    🦌Migrate Node

    1

    Enter Configurator

    2

    Choose Scenario 3

    • Press 3 to select Scenario 3

    • Read the warning → press any key to continue

    • If prompted to stop profiles → choose n

    3

    Select Predefined Configuration

    Choose 1 for MainNet (Hypergraph)

    4

    Set Global .p12 Details

    • Set all profiles to global: y

    5

    Clean Up Old Configuration

    • Remove old profiles: y

    6

    Review Config (Optional)

    • You may choose to skip reviewing: n

    Press q

    7

    Collateralize Your Node

    Follow the official collateralization guide to complete the staking process. Once complete, return to this guide.

    8

    Starchiver

    Optionally, you may utiltize the community owned and maintained .

    9

    Upgrade You Node

    Perform a full upgrade to make sure everything if properly setup and configured.

    For an interactive experience, ommit the --ni .


    🔘 Optional Post Migration Steps

    Prepare Node

    Migrate Node

    Optional Post Migration

    Enable Auto Restart
    Delegated Staking
    These examples will use a ficitious 13.13.13.13
  • Assumptions

    • You are using Debian Ubuntu as your distribution. If you are not, please substitute ubuntu for root throughout this document.

    • The username alice or Alice should be replaced with your actual local username on your Windows or Macintosh system.

    • We are using an ed25519 SSH key pair ( replace with rsa otherwise )


    💻 Windows, Macintosh or Linux

    1

    Open Terminal

    🪟 Launch Windows Terminal and select a PowerShell tab (or Command Prompt if you prefer).

    You may also decide to use remote access applications tools such as Termius or PuTTy

    Termius: /

    PuTTy:

    🍎 Press ⌘ Space, type Terminal and hit Enter.

    🐧 From the GUI launch a terminal app.

    If on the command line, no action needed.

    2

    Remote Connection to your VPS

    This step assumes root as the default username created by the cloud provider for first time access. Depending on the cloud provider this username may be different. You may need to try all three options through process of elimination to gain initial access.

    Possibility
    Description
    3

    The host-key fingerprint prompt

    We should now be remotely connected to our VPS.

    On FIRST connect you will see a message similar 👇

    4

    Verify the fingerprint

    • Retrieve the expected fingerprint from your VPS provider’s dashboard or control panel (most clouds show it when you create the instance).

    5

    Accept the fingerprint

    If everything matches from step 4, you may type in the full word yes and hit enter.

    6

    Confirm your connection

    Once authenticated, your local system prompt should change to your remote system prompt.

    7

    Update your VPS

    Just to make sure everything is nicely updated on your Linux VPS, we will perform some updates and upgrades.

    During the upgrade process, you may encounter a PURPLE dialog box asking you to select a few options. Since our node doesn’t require any special Debian configuration, just keep the default settings.

    If you receive a purple box, on your keyboard hit the tab to move to the OK

    8

    Reboot

    Restart your VPS to apply any necessary updates that may require a reboot.

    9

    Reconnect

    Repeat the steps above to reconnect to your VPS, verify connectivity, confirm the upgrade was successful, and ensure everything is in order.


    🎶 Tips & Best Practices

    • Keep your private key secure: Never share it, and use a strong passphrase.

    • Use Keychain (macOS) or ssh-agent (Windows) to avoid re-entering the passphrase each session. ( Out of scope of this document ).

    • Regularly update your local OpenSSH client and your VPS’s OpenSSH server to the latest stable versions.

    https://www.whatismyip.com
    🔥 IMPORTANT 🔥

    Before starting the setup process, it is strongly recommended that you create a dedicated backup file to store critical information. This file should be securely saved on a USB stick (thumb drive), a remote secure location, or even printed and stored physically for safekeeping.

    Store this file securely and offline.

    If it is compromised, it could lead to unauthorized access to your validator node and potentially result in financial losses.

    Treat it with the same level of caution as you would sensitive personal or banking information.

    Procedure

    Create an ED25519 SSH Key on Windows 11 Terminal

    Prerequisites

    • Windows 11 (fully updated)

    • OpenSSH client (comes pre-installed on Windows 11)

    • Access to Windows Terminal, PowerShell, or Command Prompt


    Open the Terminal

    You can use any of the following:

    • Command Prompt

    • PowerShell

    💡 To open: Press Win + X → choose Terminal.

    By default, Windows will open PowerShell when launching a terminal session. For the purposes of this guide, we will use PowerShell as the default, as it should not make a difference for the steps involved.

    If you're more comfortable using Command Prompt or another terminal, feel free to do so, just ensure any command syntax aligns accordingly.


    Generate the SSH Key

    Run the following command to generate a new ED25519 SSH key:

    Explanation:

    • -t ed25519 → use ED25519 algorithm (modern, fast, and secure)

    • -C "comment" → optional label (typically your email address)

    For anonymity purposes, it is recommended not to include personal information (such as your name or email address) in the comment section when creating your SSH key.

    Instead, you may choose to use a descriptive comment that helps you identify the key’s purpose later.


    Save the Key

    You’ll see a prompt like:

    Options:

    • Press Enter to save in the default location: C:\Users\YourName\.ssh\constellation_network_keypair

    • Or type a custom path and filename if you want. Leaving the key in the default location will help us later in the documentation and is best practice.

    ⚠️ Remember the location. Update your with the location now.


    Set a Passphrase

    You’ll be prompted to enter a passphrase:

    • You can press Enter to skip this step (absolutely not recommended).

    • Or type a secure passphrase and press Enter.

    ⚠️ Remember the passphrase! You’ll need it every time you use the key. Update your with the location now.


    View Your New Keys

    By default, two files are created in C:\Users\YourName\.ssh:

    • Private key → constellation_network_keypair

    • Public key → constellation_network_keypair.pub

    ⚠️ Remember the file names! You will need to remember your private key every time you attempt to connect to your node. Update your with the location now.

    Create an ED25519 SSH Key on MacOS

    Open Terminal

    Copy your public key for upload

    When the time comes for your to upload your public key to your VPS, you can return to this section to remind yourself how to do so.

    🗒️Node Operator Notes
    This security model often includes:
    • Firewalls

    • Intrusion Detection and Prevention Systems (IDS/IPS)

    • Email spam filters

    • Endpoint protection

    • Credential management systems

    These measures are in place to prevent unauthorized access, data breaches, or misuse of system resources.


    🚨 Why Node Operators Must Be Extra Cautious

    Unlike enterprise-grade infrastructure, as a Constellation Node Validator Operator, you're responsible for a single VPS instance that connects directly to the public internet, often without intermediary security devices or professional oversight.

    This makes your system a high-value target for attackers. Once compromised, malicious actors can:

    • Steal your wallet credentials

    • Hijack your node resources

    • Use your system as a pivot point to exploit other services

    To prevent this, you must manually enforce best-practice security configurations.


    🛡️ Security Measures You Must Implement

    1

    Restrict SSH Access by IP address

    Only allow inbound SSH access from specific IP addresses (e.g., your home, office, or trusted remote locations). This significantly reduces the risk of unauthorized login attempts.

    2

    Use Cloud Providers With External Firewall Features

    Choose a VPS provider that offers built-in firewall configuration options at the account or project level.

    3

    Disable Root Login for SSH

    Disable root-level SSH access to ensure only limited, authorized accounts can initiate remote sessions.

    4

    Protect SSH Keys With Strong Passphrases

    Always secure your private keys with strong, unique passphrases.

    5

    Use a custom port to obscure your SSH connection

    Since our only way to connect to the VPS (unless we are advanced experts) is through the Internet, it's important to take precautions. To prevent malicious actors from "sniffing" the default TCP port used for SSH connections, we should .


    🌍 Determining Your Public IP Address

    When defining firewall rules to restrict access to your VPS, you’ll need to specify your current public IPv4 address.

    Steps:

    1. Open your web browser.

    2. Navigate to: https://www.whatismyip.com

    3. Look for the section labeled "My Public IPv4:"

    4. Record this IP address. This is the address you’ll allow through your VPS firewall.

    🔁 Repeat this process for each trusted location from which you plan to access your node (e.g., home, office, mobile hotspot).


    📱 Accessing Your Node From Mobile Devices

    If you plan to use mobile apps to connect to your VPS:

    • Be aware that mobile IP addresses often change and are part of large, dynamic subnet ranges.

    • For security, avoid allowing full open access unless absolutely necessary.

    • Alternatively, you can configure two firewall rule sets:

      • Locked-down mode (only allows known IPs)

      • Travel mode (temporarily opens access when you’re on the move)

    Subnet-based access control from mobile networks is more advanced and outside the scope of this document. Only use this approach if you understand the implications.


    By proactively applying these security best practices, you help safeguard your node from attacks and maintain your reliability as a participant in the Constellation Network.

    Node Specifications

    Constellation Network's Node Spec Requirements.

    TL;DR

    View specs starting here.

    Introduction​

    As with any cryptographic ecosystem, there are specific hardware requirements that must be met to ensure your node operates securely, efficiently, and reliably within the Constellation Network’s ecosystem.

    Meeting these requirements is essential for maintaining node performance, ensuring compatibility with consensus protocols, and avoiding issues related to resource limitations.

    Hardware Requirements​

    Constellation Network currently supports two distinct types of nodes across its Hypergraph and metagraph infrastructure:

    • Constellation Network Hybrid Validator Node

    • Dor Validator Data Layer 1 Node

    Virtual vs Dedicated

    A VPS (Virtual Private Server) is a virtualized environment running on a physical machine that shares resources (tenancies) with other instances. This makes it a more cost-effective option for operators who are just getting started.

    A group of these VPS instances forms what is commonly referred to as the "cloud."


    In contrast, a dedicated bare metal server is a physical machine allocated to a single tenant. It offers exclusive access to all hardware resources and typically provides higher performance and configurability. Many cloud providers offer both VPS and dedicated server options, depending on your needs.

    Constellation Network does not require or prefer one over the other.

    You are free to choose the infrastructure that best fits your technical experience, performance expectations, and budget.

    Bare Metal

    A bare metal server is a physical machine designed to run dedicated services for a single tenant. Unlike virtualized environments, bare metal servers provide full access to the underlying hardware, offering maximum performance, control, and customization.

    You can run a bare metal server from various environments, including:

    • A personal data center

    • A colocation facility

    • A private office

    • Even from your home, if conditions allow


    Because you have full control over both hardware and software, this setup is best suited for advanced operators who need:

    • Greater resource allocation

    • Custom system configurations

    • Specialized networking or storage requirements

    Due to the complexity and responsibility involved, bare metal servers are not recommended for beginners or casual operators


    🔁 Constellation Network Hybrid Node

    A Hybrid Node is required to operate on both the:

    • Global Layer 0 – the global consensus and infrastructure layer

    • DAG Layer 1 – the native currency and transaction layer for the $DAG token

    This dual-role node type is commonly referred to as a Hybrid Validator Node.


    Hybrid Node Hardware Requirements

    To ensure reliable and efficient performance hybrid nodes must meet the following minimum hardware specifications:

    Component
    Requirement
    Preferred

    🔁 Dor Data Layer 1 Node

    A Dor Node is required to operate on both the:

    • Data Layer 1 Metagraph – the data validation layer for the Dor metagraph

    Dor Node Hardware Requirements

    To ensure reliable and efficient performance hybrid nodes must meet the following minimum hardware specifications:

    Component
    Requirement
    Preferred

    Software Specification Requirements

    Distribution

    • Linux Debian-based distribution

    Operation System Recommendations

    • Ubuntu 24.04

    • Debian 12

    Software Specific Version Requirements

    • Java 11


    Considerations

    Constellation Network's Tessellation is developed to run on any Debian distribution with Java 11 installed.

    The nodectl utility was developed to run specifically on Ubuntu 24.04 and Ubuntu 22.04.

    Ubuntu Specific

    Ubuntu uses the convention of .04 to represent versions of their Debian distribution that is LTS (long term support), and .10 for their more "experimental" short term support releases.

    It is highly recommended to use a .04 version release.

    Build Hetzner Server

    Build a Hetzner specific Cloud Resource Server

    Before we begin

    Please make sure you created your SSH key pairs prior to starting these steps.

    SSH Remote Access

    VPS Build Procedure

    Creating your account on Hetzner is a simple process similar to all other SaaS model services. At the current time, we will leave this process up to you.

    1

    Sign Up for an Account

    Complete

    You have successfully launched a Server instance on Hetzner, Congratulations!

    You are now ready to continue to connect to your node for the first time, install nodectl and turn your VPS into a Constellation Network Validator Node!

    Generic Build a VPS Guide

    This is a generic guide created to assist you in building a Constellation Network validator node.

    Recommendation

    If you are going to build your VPS on a cloud provider that we offer a specific guide to follow, skip this document and move directly to one of those guides

    • AWS

    • Digital Ocean

    • Hetzner

    Before We Begin

    This guide does not include cloud provider-specific steps or images. You may use the specific cloud provider documentation .

    There are many cloud providers available to choose from, and unfortunately, we cannot cover each one in these tutorials and guides.

    We encourage you to research and select a provider that best fits your needs in terms of performance, pricing, reliability, and regional availability.

    You may also:

    • Adapt an existing setup guide by intuitively translating the steps to match your chosen provider’s interface.

    • Ask for advice or recommendations in the Constellation Network Official Discord channel, where community members and team members can share their experience and guidance.

    The right provider is the one that aligns best with your technical comfort level and validator node requirements.

    Create SSH Keys

    Cloud Provider Specific

    While this guide provides generic, provider-agnostic steps to help you build a VPS on any cloud service, it is designed so you can follow along using intuitive actions regardless of the platform.

    However, if you prefer a more tailored experience, you may choose to opt into service-specific guides that have been prepared for popular providers. These offer more detailed, platform-specific instructions to streamline the setup process.

    Choose the path that best fits your comfort level and desired level of guidance.

    Create a Firewall

    Create a Firewall (Security Group)

    It's recommended to create your firewall policy (also known as a Security Group) before launching your VPS. Doing this upfront allows you to immediately assign the correct firewall rules when the VPS is created, ensuring proper and secure access from the start.

    IMPORTANT

    Do NOT rely on software firewalls such as UFW (Uncomplicated Firewall) or IP Tables for securing your validator node.

    Because your node will have

    If your cloud provider of choice does not offer built-in firewall or security group features, it is strongly advised not to use that provider for hosting your validator node.

    Firewall Mappings Chart

    Advanced Checklist: Manual Node Build Steps

    This checklist is intended for advanced users who are not following a pre-configured cloud provider guide.

    If you’re building your Validator node manually on a custom VPS or bare-metal environment, use this sequence to ensure a complete and secure setup.

    These steps assumes familiarity with manual system setup, firewall management, and node operations. Be sure to follow official documentation closely when applying any configurations related to the Tessellation protocol or node lifecycle.


    1

    Build Your VPS or Bare-Metal Server

    • Refer to the t to determine the appropriate system configuration.

    Migrate V1 to V2 - P12 Keystore

    Convert a Version 1 p12 keystore to Version 2 for operations on Constellation Network.

    Constellation Network has introduced a new version 2 standard for .p12 keystore files. These updated keystores are now required to access the Hypergraph and metagraph clusters.

    Version 1 .p12 files are no longer supported.


    📌 Purpose of This Guide

    This guide is intended to help Node Operators still using version 1 .p12 files migrate their private key to the updated version 2 format, ensuring compatibility with current network requirements.


    🛠️ Setup Requirements

    Option
    Description

    Option 1: Use an Existing Node With nodectl

    If you already have nodectl running:

    • Upload your version 1 .p12 file using the restore process.

      • Refer to platform-specific steps:

        • Restore .p12 from macOS

    ⚠️ Caution: Do not overwrite an existing or active .p12 file in a running Validator node environment.


    Option 2: Create a Temporary VPS

    If you don’t have an existing node:

    1. Provision a new Linux VPS (Debian-based preferred).

    2. Upload your version 1 .p12 file.

    3. Install nodectl following the official documentation.

    💡 Note: This VPS will not be used to run a Validator node. Its purpose is solely to install the required tools for migration.

    ✅ Minimum Requirements:

    • 30GB of disk space

    • Internet connectivity

    • SSH access


    Option 3: Manual Setup

    Alternatively, install the required components manually:

    • java

    • haveged

    • cl-keytool.jar

    • cl-wallet.jar

    📎 Still ensure the VPS or machine has at least 30GB of available disk space.


    🔄 Begin the Conversion Process

    Once setup is complete, proceed with the following steps.


    Step 1: Upload Your .p12 File

    Place your original version 1 .p12 file (from macOS or Windows) into the working directory of your VPS.

    Example path:


    Step 2: Set Environment Variables

    Export the following environment variables using your .p12 file details. Be precise—use double quotes and match spacing exactly.

    Confirm the exports:

    Expected output:


    Step 3: Run the Migration Command

    Run the following command to migrate the .p12 file to version 2 format:

    ✅ If successful, no output will appear. If there's an issue, an error will be printed.


    Step 4: Verify the New File

    List the directory to verify that a new version 2 .p12 file has been created:

    Expected output (example):


    Step 5: Test the New .p12 File

    Update your CL_KEYSTORE variable to point to the new file:

    Now display the public key to confirm the file is valid:

    Example output:


    ✅ Completion

    Your .p12 file is now migrated from version 1 to version 2.

    🔒 Important: Store the original version 1 file in a secure, offline (air-gapped) location temporarily.


    🧪 Final Testing

    To fully validate your new .p12 file:

    • Connect to the appropriate Constellation cluster (Layer0 or Layer1).

    • Export and verify the private key.

    • Use the new file in your validator setup or wallet integration.


    🔁 Optional: Rename the New File

    If you want to use the original filename, rename your new file:


    ⚙️ nodectl Configuration (If Applicable)

    If you're using nodectl and kept the _v2 filename, make sure to update the configuration:

    This ensures nodectl references the correct .p12 file for all future operations.


    You have now successfully migrated and verified your .p12 keystore to the latest version, ensuring your validator remains compatible with Constellation Network's current infrastructure.

    Onboard Guide

    Welcome!

    Thank you for your interest in becoming a Dor Validator Node Operator and joining our community of dedicated operators.

    Program Requirements

    Upgrade Tessellation to v3

    This page is a dedicated procedure specifically for upgrading your Constellation Network node from Tessellation v2 to Tessellation v3.

    Introduction

    With the exciting announcement that the Constellation Network's MainNet will be upgraded to a stable release of v3, this documentation provides a straightforward guide to help you through the process.

    It outlines what to expect and the steps required to upgrade from v2 to v3, ensuring a smooth and successful transition.

    The latest version of Tessellation is a major upgrade that introduces breaking changes

    Build DigitalOcean Droplet

    Digital Ocean Specific Build Process

    Before we begin

    Please make sure you created your SSH key pairs prior to starting these steps.

    VPS Build Procedure

    [email protected]:~# sudo nodectl version
      VERSION     MAJOR     MINOR     PATCH    CONFIG
      vX.XX.X     X         X         X        vX.X.X
    sudo apt -y update && sudo apt -y upgrade
    sudo apt -y install haveged
    sudo apt -y install default-jdk
    sudo wget https://github.com/Constellation-Labs/tessellation/releases/download/v1.0.1/mainnet-seedlist -P /var/tessellation; sudo chmod +x /var/tessellation/cl-wallet.jar -O /var/tessellation/seed-list -o /dev/null
    export CL_EXTERNAL_IP=113.113.113.113
    export CL_KEYALIAS="myConstellationAlias"
    export CL_KEYSTORE="/home/nodeadmin/tessellation/myconstellation.p12"
    export CL_APP_ENV="testnet"
    export CL_PUBLIC_HTTP_PORT=9000
    export CL_P2P_HTTP_PORT=9001
    export CL_PASSWORD="my_p12_keystore_pass"
    java -jar /var/tessellation/cl-keytool.jar generate
    chmod 600 ~/tessellation/myconstellation.p12
    /usr/bin/java -jar '-Xms1024M' '-Xmx7G' '-Xss256K' /var/tessellation/cl-node.jar run-validator --seedlist /var/tessellation/seed-list & 
    /usr/bin/java -jar '-Xms1024M' '-Xmx3G' '-Xss256K' /var/tessellation/cl-dag-l1.jar run-validator --public-port 9010 --p2p-port 9011 --cli-port 9012 &
    curl -X POST http://127.0.0.1:<private_cli_port>/cluster/leave
    ps -ef
    kill <process_no>
    cd ~
    mkdir constellation-backup
    cd ~/constellation-backup
    sftp -i ~/.ssh/my-node-ssh-keyname [email protected]
    cd /home/nodeadmin/tessellation
    ls -l
    -rw-r--r-- 1 nodeadmin nodeadmin 31 Jun 11 14:28 my-p12file.p12
    get my-p12file.p12
    100% 31 0.3KB/s 00:00
    exit
    sftp -i ~/.ssh/my-node-ssh-keyname [email protected]
    cd /home/nodeadmin/tessellation
    put my-p12file.p12
    Uploading my-p12file.p12 to /home/nodeadmin/tessellation/my-p12file.p12
    100% 31 0.6KB/s 00:00
    exit
    sudo nodectl auto_restart alert_test
    ssh -i ~/.ssh/my_identity_file [email protected]
    ssh: connect to host 13.13.13.13 port 22: Operation timed out
    sudo nodectl configure -n -cb -d
    The nodectl utility will automatically configure basic SSH restrictions, including disabling root login and enabling IP-based access control. However, you must manually obtain and configure your IP address during the firewall setup process to complete this protection.
    change it to a non-well-known port above 1024
    direct Internet access
    , these tools are
    not sufficient
    as a primary IP packet security layer and can
    interfere with the proper operation
    of your node on the VPS.

    Instead, always use your cloud provider’s built-in firewall or security group features to manage port access and protect your server at the network level.

    Choose a provider or hardware setup that meets or exceeds the minimum system requirements.

    2

    Apply Network Access Requirements

    • SSH Access:

      • Generate a secure key pair.

      • Lock down your SSH configuration to allow access only from known IP addresses.

      • Disable root login.

    • Local Administration:

      • Ensure you have non-root administrative access (e.g., a user in the sudo group).

    3

    Create and Apply Firewall Rules

    Configure your VPS or provider-level firewall to:

    • Allow only necessary inbound ports (e.g., SSH, Tessellation API ports).

    • Restrict SSH to trusted IPs only.

    • Deny all other traffic by default.

    4

    Build your Node

    Turn your server into a validator node by performing the following:

    • Install all required dependencies.

    • Install the Tessellation binaries and any Constellation-specific tooling.

    • Place and secure your keystore.

    • Configure the API endpoints needed for Layer0 and/or Layer1 connectivity.

    5

    Collateralize

    • Stake the required amount of $DAG tokens to activate your validator node.

    • Follow official guidelines to complete the collateralization process.

    6

    Submit Your Node Information

    • Join the Constellation Network Official Discord.

    • Navigate to the appropriate validator channel and submit your node profile details to the team.

    7

    Dor Metagraph Specific

    • Log in to your Lattice dashboard.

    • Navigate to the Dor section.

    • Link your nodid for tax rewards.

    8

    IntegrationNet Specific

    • Log in to your Lattice dashboard.

    • Navigate to the IntegrationNet section.

    • Link your wallet for rewards.

    here
    🔑Create SSH Keys
    🚧Build AWS EC2 Instance
    🚧Build DigitalOcean Droplet
    🚧Build Hetzner Server
    ​
    Firewall Settings Table
    Validator Specifications Documen
    constellation-backup
    error

    Bandwidth

    2 TB/month

    10 TB/month

    OS

    Ubuntu 22.04 LTS (64-bit)

    Ubuntu 24.04 LTS (64-bit)

    Architecture

    x86_64

    x86_64

    Bandwidth

    1 TB/month

    5 TB/month

    OS

    Ubuntu 22.04 LTS (64-bit)

    Ubuntu 24.04 LTS (64-bit)

    Architecture

    x86_64

    x86_64

    CPU

    8 vCPUs

    Greater than 8 vCPUs

    RAM

    16 GB

    32 GB

    Disk

    320Gb

    500Gb

    Storage Type

    SSD

    CPU

    2 vCPUs

    Greater than 2 vCPUs

    RAM

    2 GB

    4 GB

    Disk

    40Gb

    80Gb

    Storage Type

    SSD

    ​
    ​
    ​
    ​
    ​

    NVMe / NVM

    NVMe / NVM

    cl-wallet.jar - Wallet tool utility specific to Constellation Network's Tessellation

    Tessellation Latest Releases
    Scroll to App passwords
  • Click the right-arrow (>) to open

  • Under Select app, choose Other (Custom name)

  • Enter a name (e.g., constellation_alerts)

  • Click Create

  • Copy the generated app password (token) and store it securely

  • ⚠️ This password will only be shown once.

    If lost, delete and recreate it.

    Do not use shortcuts like EST or CET.

    token

    The App Password (token) you generated

    send method

    Use multi (recommended) or single

    recipient emails

    Comma-separated list of emails ([email protected],[email protected])

    time zone

    Your exact timezone string (e.g., America/Los_Angeles)

    begin alerting hour

    Start time for alerts in UTC (e.g., 0 for always)

    end alerting hour

    End time for alerts in UTC (e.g., 0 for always)

    send report hour

    Hour (UTC) to receive daily report (e.g., 13 for 1 PM UTC)

    gmail account

    this reference list
    How to SSH into your Node
    Important Limitations
    Prerequisites
    Configure Alerting
    Test Configuration
    Troubleshooting

    The Gmail address used to send alerts

    DigitalOcean: Update Firewall settings

  • Hetzner: Follow DigitalOcean-style firewall update workflow

  • Refer to the Cloud Provider Specific Guides.

    www.whatismyip.com
    Downdetector

    🔐 Important:

    If your passphrase is encrypted, it will not be visible. Ensure you have the passphrase securely stored before proceeding.

    If disabled, skip to Update OS Packages step.

    auto_restart

  • auto_upgrade

  • on boot

  • Choose q to exit.

  • If prompted to migrate your node configuration, select:

    • y to confirm migration

    • n if asked to upgrade nodectl again immediately after migration

    Preserve global .p12 details: y

    Remove old service files: y

    🏗️ The nodectl utility will automatically build your new service files for you.

    to return to the terminal.
    Collateralize Your Node
    Node Specifications
    Connect to your node via SSH
    Upgrade nodectl Version
    Starchiver Utility

    Restore .p12 from Windows

    1

    Live Constellation Validator Node

    Utilize an existing Constellation Network validator node with all components already installed.

    2

    Ephemeral VPS with nodectl

    Build a temporary VPS, install nodectl, use its utility to migrate your p12 from version 1 to version 2.

    3

    Load utilities necessary only

    Use an existing or build a temporary VPS and only install the utilities necessary to complete this guide.

    root

    Digital Ocean or Hetzner may use this as the default.

    ubuntu

    AWS may use this as default.

    admin

    Debian 12 users may need to use the admin username as the default for initial connections.

    Remember we are using generic names, locations and IP address for your SSH key and VPS external IP address.

    ssh -i C:\Users\Alice\.ssh\node_private_key [email protected]
    ssh -i /Users/alice/.ssh/node_private_key [email protected]
    ssh -i /home/alice/.ssh/node_private_key [email protected]

    Compare that value against what your SSH client displays.

    In most cases, because you are manually making this connection, you can be confident you’re connecting to the correct host. However, when handling remote connections, always exercise extra caution.

    or
    CONTINUE
    , or
    CONFIRM
    options and then press
    Enter
    .
    https://www.termius.com
    https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
    Press Command + Space to open Spotlight Search.
  • Type Terminal and hit Enter.


  • Generate a New SSH Key Pair

    To generate a new key using the Ed25519 algorithm (recommended):

    Enter the name of our SSH key pair.

    You'll see something like:

    Options:

    • Press Enter to save in the default location: /Users/yourname/.ssh/constellation_network_keypair

    • Or type a custom path and filename if you want. Leaving the key in the default location will help us later in the documentation and is best practice.

    ⚠️ Remember the location. Update your notes with the location now.

    Enter a passphrase.

    • You can press Enter to skip this step (absolutely not recommended).

    • Or type a secure passphrase and press Enter.

    ⚠️ Remember the passphrase! You’ll need it every time you use the key. Update your notes with the location now.


    View Your New Keys

    By default, two files are created in /Users/yourname/.ssh/:

    • Private key → constellation_network_keypair

    • Public key → constellation_network_keypair.pub

    ⚠️ Remember the file names! You will need to remember your private key every time you attempt to connect to your node. Update your notes with the location now.

    notes
    notes
    notes
    sudo wget https://github.com/Constellation-Labs/tessellation/releases/download/v1.0.1/cl-node.jar -P /var/tessellation; sudo chmod +x /var/tessellation/cl-node.jar
    sudo wget https://github.com/Constellation-Labs/tessellation/releases/download/v1.0.1/cl-dag-l1.jar -P /var/tessellation; sudo chmod +x /var/tessellation/cl-dag-l1.jar
    sudo wget https://github.com/Constellation-Labs/tessellation/releases/download/v1.0.1/cl-wallet.jar -P /var/tessellation; sudo chmod +x /var/tessellation/cl-wallet.jar
    sudo wget https://github.com/Constellation-Labs/tessellation/releases/download/v1.0.1/cl-keytool.jar -P /var/tessellation; sudo chmod +x /var/tessellation/cl-keytool.jar
    ssh -i /path/to/ssh/private/key nodeadmin@<vps_ip_address>
    sudo nodectl configure -e -cb -d
    N) Setup Alerting
    Q)uit
    sudo nodectl auto_restart send_report
    cd ~/.ssh
    ls -l
    ls -l /root/.ssh/
    ls -l /home/ubuntu/.ssh/
    ls -l /home/admin/.ssh/
    sudo nodectl enable_root_ssh
    sudo cp /root/.ssh/mypublickey.pub /home/nodeadmin/.ssh/mypublickey.pub
    sudo chown nodeadmin:nodeadmin /home/nodeadmin/.ssh/mypublickey.pub
    sudo nodectl disable_root_ssh
    ssh -i /path/to/ssh/private/key nodeadmin@<vps_ip_address>
    sudo nodectl view_config --section global_p12
    sudo nodectl auto_restart status
    sudo nodectl configure -e -cb -d
    sudo nodectl upgrade_vps
    sudo nodectl reboot
    sudo nodectl check_versions
    NODECTL VERSION MATCH: True
    sudo nodectl upgrade_nodectl
    sudo nodectl stop -p intnet-l0 --leave
    sudo nodectl stop -p intnet-l1 --leave
    sudo nodectl execute_starchiver -p dag-l0 --restart
    sudo nodectl upgrade --ni
    /home/nodeadmin/tessellation/
    export CL_KEYALIAS="myConstellationAlias"
    export CL_KEYSTORE="/home/nodeadmin/tessellation/myconstellation.p12"
    export CL_PASSWORD="my_password"
    export CL_STOREPASS="my_storepass_passphrase"
    export CL_KEYPASS="my_keystore_passphrase"
    env | grep CL_
    CL_KEYALIAS=myConstellationAlias
    CL_KEYSTORE=/home/nodeadmin/tessellation/myconstellation.p12
    CL_PASSWORD=my_password
    CL_STOREPASS=my_storepass_passphrase
    CL_KEYPASS=my_keystore_passphrase
    java -jar /var/tessellation/cl-keytool.jar migrate
    ls -l
    -rw-r--r-- 1 nodeadmin nodeadmin 1094 May 26 12:17 myconstellation_v2.p12
    export CL_KEYSTORE="/home/nodeadmin/tessellation/myconstellation_v2.p12"
    java -jar /var/tessellation/cl-wallet.jar show-public-key
    EC Public Key [ee:ff:aa:bb:cc:dd:ee:ff:11:22:33:44:55:66:77:88:99:aa:bb:cc]
      X: abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890
      Y: 111222333444555666777888999101010111111121212131313141414151515a
    mv /home/nodeadmin/tessellation/myconstellation_v2.p12 /home/nodeadmin/tessellation/myconstellation.p12
    sudo nodectl configure
    The authenticity of host '13.13.13.13 (13.13.13.13)' can't be established.
    ECDSA key fingerprint is SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890+=.
    Are you sure you want to continue connecting (yes/no)?
    The authenticity of host '13.13.13.13 (13.13.13.13)' can't be established.
    ECDSA key fingerprint is SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890+=.
    Are you sure you want to continue connecting (yes/no)? yes
    ubuntu@your-vps-name:~$
    sudo nodectl update && sudo nodectl upgrade
    ssh-keygen -t ed25519 -C "constellation network"
    Enter file in which to save the key (/c/Users/YourName/.ssh/id_ed25519):
    Enter passphrase (empty for no passphrase):
    Microsoft Windows [Version 10.0.22631.5189]
    (c) Microsoft Corporation. All rights reserved.
    
    C:\Users\MyUser>cd .ssh
    
    C:\Users\MyUser\.ssh>dir
     Volume in drive C is Windows-SSD
     Volume Serial Number is ZZZZ-ZZZZ
    
     Directory of C:\Users\MyUser\.ssh
    ssh-keygen -t ed25519 -C "constellation network"
    Enter file in which to save the key (/Users/yourname/.ssh/id_ed25519):
    Enter passphrase (empty for no passphrase):

    Rest your mouse over EC2 Virtual Services in the Cloud

  • Click on Dashboard in the top features section.

    • Decide on a key pair name that you will use to identify your key pair later.

    • You should have already created your SSH KEYS, if not, please do so and return to this step.

    • Click the Browse to navigate to your public key on your local system, select that key and choose Open

    • Import key pair

    You will be returned to the Key pairs console and should see your key pair in the list (table) of the console with details about the key.

    Create a new security group.

    Give your security group a name and description

    Leave the VPC at the default.

    Select Type SSH

    • Please refer to Wide Open SSH Access document for details on the security implications of allowing any system that is connected to the internet to have access to your SSH port. This document contains instructions on how to determine your local IP address for entry in this section.

    • Destination choose Custom

    • We will assume you decided to use a static IP address, in this example our static IP address is 13.13.13.13/32 ( Do NOT use this address, it is an example only. ) Type in 13.13.13.13/32 into the box and the blue CIDR block item will auto-populate, select it.

  • Choose the Add rule again.

  • This rule is designed for both a Hypergraph hybrid layer validator DAG layer1 and a Dor data layer 1 nodes.

    • Select Type Custom TCP

      • Port Range 9010-9011

      • Destination Anywhere-IPv4

    • Hypergraph Hybrid Nodes ONLY

    This rule is designed for validator Hypergraph layer0 nodes.

    • Choose the Add rule again

    • Select Type Custom TCP

      • Port Range 9000-9001

      • Destination Anywhere-IPv4

    • Click the Create security group button

    You will be returned to the security group console and you should see your security group in the list table.

    Ubuntu Server 24.04

    Leave the default options

    SSH Remote Access

    Private Key Location

    • windows

    • Macintosh

    VPS username

    nodeadmin

    Local username

    MyUser

    Remote IP address

    13.13.13.13

    SSH Port

    22 ( default port )

  • Macintosh

    • Custom port ( example: port 2222 )

    yes
    .

    Private Key Name

    private key
    created
    custom port is recommended

    my_private_key

    2

    Create a Project

    Create the project and enter into the Project's dashboard.

    3

    Create Resource

    Click on the Create Resources button.

    Choose Servers

    4

    Location

    Choose either the Nuremberg or Helsinki location.

    These locations provide more server resource types.

    5

    Image

    Choose Ubuntu and make sure that 24.04 is selected from the dropdown box.

    6

    Type

    Select x86 (Intel/AMD)

    Once selected a table of resource types will populate. You may choose a resource name from the list that best meets the specs requirements for your type of validator node.

    Hypergraph Hybrid Nodes

    • CPX51 is recommended

    • CX52 is also recommended is aviable

    • CPX41 may suffice however, you will run into disk space issues so be cautious.

    Dor Data Layer 1 Nodes

    • CX22

    • CPX11

    7

    Networking

    You may leave this section with the defaults

    8

    SSH Keys

    Add SSH key

    Copy and Paste your PUBLIC key to the provided box.

    Follow this document .

    If the Name field does not populate, create a name for the key that will help you identify it later.

    Click the Add SSH key button.

    Select your SSH key if not already checked.

    9

    Volumes

    We can skip this section

    10

    Firewalls

    We can skip this section. We will handle this in the next few steps.

    11

    We can skip all the remaining sections

    Leave set to their defaults

    12

    Create & Buy now

    13

    Creation complete

    Our server should populate into our server dashboard.

    Record the public ip address for later.

    14

    Firewalls

    Rest your mouse over the 🏠 button on the left side panel.

    Choose Firewalls.

    From the Inbound rules section, you should see a TCP ➡️ 22 rule.

    Please refer to document for details on the security implications of allowing any system that is connected to the internet to have access to your SSH port. This document contains instructions on how to determine your local IP address for entry in this section.

    If you decide to leave your SSH access wide open you can skip to the next step.

    Click on Any IPv4 it will turn red, click the delete to remove it.

    Click on Any IPv6 it will turn red, click the delete to remove it.

    Type in the IP address you retrieved that is allocated to your local system into the same box to replace the Any IPv4 and Any IPv6 entries, and hit enter.

    Replace the Add description with SSH

    15

    Create Layer1 Rule

    This rule is designed for validator Hypergraph hybrid DAG layer1 and Dor data layer1 nodes.

    Click on Add rule

    Leave the Any IPv4 and Any IPv6 entries.

    Leave the TCP protocol type

    Replace in 9010 for the Port

    Replace in 9011 in the Port range

    Replace Add description with Layer1

    16

    Hypergraph Validator Node Only

    Dor data layer1 nodes do not use these port settings. Open these ports will offer attackers an open port to your VPS without a service listening on the inside. This is not recommended.

    Repeat the previous step to add a rule for Layer0.

    Ports 9000 and 9001.

    Click on the Create Resource button.

    Choose Servers.

    17

    Outbound rules

    Skip this section

    18

    Apply to

    Click on Select Resources ➡️ Server.

    Choose our server name from the list.

    19

    Labels

    Skip this section

    20

    Name our firewall policy

    21

    Create our firewall

    https://www.hetzner.com/
    The following are the basic requirements to become a Dor metagraph operator.
    1

    Lattice Account

    You must have an active and verified account on the Lattice platform.

    2

    Discord Account

    A valid is required to join the official Constellation Network channels for communication, support, and coordination.

    3

    Collateral Requirement Met

    Your validator node must hold 1,000,000 $DOR tokens in its associated wallet to meet the staking collateral requirement.

    4

    Willingness to Handle Limited Technical Requirements

    While extensive technical expertise isn’t required, you must be comfortable following setup instructions and managing basic system administration tasks.

    These requirements ensure that all operators are properly aligned with the Dor metagraph’s standards for security, performance, and community involvement.

    Collateral Preparation​

    To qualify as a Dor metagraph Validator, you must accumulate and prepare the required staking collateral.

    This collateral is essential to participate in validation activities and maintain eligibility within the Dor metagraph network cluster.

    1

    Set Up a Stargazer Wallet

    If you don’t already have a Stargazer wallet, create one by following the

    2

    Confirm $DOR Token collateral

    Having the required collateral is a critical prerequisite for qualifying to operate a Dor validator node on the Dor metagraph.

    Token
    Collateral Requirement
    3

    Setup or Login to your Lattice account

    Create or login to your account.

    4

    Select the Dor Node Operator Program

    From the click on View program to view the .

    5

    Opt-in

    Connect your through the Lattice Gateway and follow the instructions to opt-in to the program.

    6

    Acceptance

    Your application to join the program will be processed through the Lattice Gateway. Upon approval, you will receive an email containing detailed instructions for the next steps.

    7

    Request Access

    Join the Constellation Network Official Discord server, reach out to an administrator and request access.

    8

    Intercom Button

    There is a blue intercom button at the bottom right of the Lattice portal website. You can also use this as a method to contact a member of the team to answer any questions.

    Technical Notice

    The below 👇 procedures and steps will be fully covered in the technical procedures section of the documentation website.

    At this stage, you are only expected to read and understand theses steps, do not attempt to perform them yet.

    Familiarizing yourself with the process in advance will help ensure a smoother experience when it is time to begin the technical setup.

    Post Acceptance​

    Once your application is approved, you can begin the technical steps to build and activate your Dor validator node.

    1

    Reception

    You will receive a confirmation of acceptance and be ready to proceed with the next steps in the onboarding process.

    This email will be sent to your verified Lattice email address.

    2

    Build your node

    Once accepted, you’ll be ready to dive into the technical aspects of building your data layer 1 validator node for the Dor metagraph.

    This phase involves setting up a VPS, transforming your VPS into a node, and preparing to meet the operational requirements of the network.

    3

    Obtain and submit your node ID

    When your Dor validator node is built and running, you will be able to submit your node wallet's public key (node id) through the Lattice portal.

    The node id is used for AAA purposes.

    4

    Join the Dor metagraph

    Once the Lattice team receives your node ID, they will update the necessary permissions to authorize your node to join the Dor Metagraph cluster.

    This step is essential to grant your node access and allow it to begin participating in the network. Make sure your node ID is submitted accurately to avoid delays in onboarding.

    Wallet Export Considerations

    Important Security Note:

    Your validator node will operate using a hot wallet.

    This means that if your P12 keystore is accessed or compromised, it could have serious operational and financial consequences.

    Recommended Best Practice:

    1

    Create a new wallet

    The nodectl utility used to transform your VPS into a Dor validator node will automatically create this for you during installation.

    2

    Import private key into Stargazer

    Use the nodectl utility to export your private key from our Dor validator node and import it into our Stargazer wallet.

    3

    Transfer your tokens

    Transfer your $DOR from your existing wallet carefully to your newly created Dor validator node wallet. Follow standard transfer protocols to ensure safe delivery and avoid any risk of lost funds.

    Advanced Option

    In most cases, you will not be able to directly export your existing wallet for use on your Dor validator node.

    Not Recommended for most users.

    If you are an advanced user with experience in wallet management and security, you may choose to:

    • Export the private key from your existing wallet

    • Import it into the P12 keystore configured on your node

    This process requires a solid understanding of key management and security best practices. Improper handling can compromise your wallet and jeopardize the integrity of your node.

    ​
    ​
    .

    From a Node Operator’s perspective, the Constellation Network Team has worked diligently to ensure that all necessary components are in place for a simple and seamless migration from version 2 to version 3.

    BEFORE YOU BEGIN

    If you plan to upgrade manually using Constellation Network's nodectl utility, you should disable auto-restart and auto-upgrade features before the cluster upgrade (restart) begins.

    Failing to do so may break your manual upgrade sequence, as the auto upgrade could interfere with the manual intervention process.

    The nodectl Utility

    Prerequisites and Deprecations

    🔧 Prerequisites

    In order to utilize the nodectl utility to run Tessellation v3 you will need to be running version v2.15.2 or newer of nodectl. Version v2.17.3 is recommended.

    These steps will be covered in this guide.

    Please follow the nodectl upgrade path properly to ensure you do not run into any inconsistencies or issue later.

    ⚠️ Deprecations

    The nodectl utility v2.15 will be the final version to support the following Debian-based distributions:

    • Ubuntu 20.04 and earlier

    • Debian 11 and earlier

    You may safely upgrade nodectl to 2.15.2 and continue using the listed Debian-based distributions.

    If mission-critical updates (hotfixes) are required, they will be supported for this version until June 2025.

    Do not upgrade to nodectl v2.16.0 (or higher) if you are running any version of Debian or Ubuntu listed above.

    Note: No new features will be added to the v2.15.x line.

    Starting with v2.16.0 and beyond, support for these operating systems is officially removed.

    To continue receiving updates, improvements, and full support, please upgrade your operating system to a supported version.

    It is recommended to build a new node using Ubuntu 24.04 (or Ubuntu 22.04) rather than attempting a distribution upgrade from an older distribution version to a newer.

    This approach is advised because nodes are considered ephemeral, meaning they can be recreated or replaced without impacting long-term operations. Migrating to a fresh installation ensures a clean, stable environment and reduces the risk of issues during the upgrade process.

    Upgrade nodectl in Preparation for the Cluster Upgrade

    1

    Verify your version

    Issue the version command to output the current version of nodectl.

    It is recommended to be on v2.17.3 of nodectl

    2

    Upgrade if necessary

    Please follow the correct upgrade path to ensure your node remains manageable by nodectl and does not encounter compatibility issues.

    You may replace v2.17.3 with v2.15.2 if necessary ().

    If there are multiple versions between your current version and v2.17.3, you must follow the correct upgrade path.

    UPGRADE OPTIONS

    TABLE OF CONTENTS


    Auto Upgrade (Recommended)

    If you have auto-upgrade enabled on your node, nodectl will automatically detect the upgrade and attempt to perform all necessary migration steps as outlined in the next section.

    However, it's important to keep two key points in mind when relying on auto-upgrade:

    ⚠️ 1. Be Patient – Do Not Interrupt the Process

    The migration may take time. Interrupting it can cause the node to fail the migration, leading to recovery behavior where the node attempts to download all snapshots from genesis. This introduces two major issues:

    • ⏳ It may take days to download all snapshots.

    • 💾 You may retain residual v2 snapshots, which could consume excessive disk space and potentially cause your node to run out of storage.

    ⚠️ 2. Pay close attention - Monitor the upgrade

    If you're returning to check the results of an upgrade hours after it occurred, simply run the following command to verify that your node is in Ready state.

    If you plan to be actively available during the upgrade, follow these steps to ensure your node re-joins the cluster properly and to avoid any unexpected issues:

    Allow the upgrade process to complete without interruption

    Alternatively, monitor the node closely during the process.

    Perform nodectl upgrade

    If you have auto restart with auto upgrade enabled, and the cluster has already restarted, do not attempt to upgrade. This may cause unexpected behavior.

    You will perform the upgrade as normally done, no additional steps required. The nodectl utility will disable auto restart if it is engaged, and reengage upon completion.

    or

    Optional

    • use the --ni option ( non-interactive )

      • This option will choose all the default options for any questions normally asked by nodectl during the installation process.

    Manual ( not using nodectl )

    Before downloading the latest Tessellation binaries and attempting to rejoin the network cluster, it is strongly recommended to migrate your snapshot data directories from the old v2 structure to the new v3 structure.

    The Constellation Network team has provided a data migration script to assist with this process, located here.

    ⚠️ Failure to migrate will result in your node attempting to redownload and install all snapshots from genesis, which can lead to delays and increased resource usage.

    Enable Auto Restart
    🐎Upgrade Tessellation Quick Start
    🏭Upgrade Tessellation Guide
    Creating your account on DigitalOcean is a simple process similar to all other SaaS model services. At the current time, we will leave this process up to you.

    Before launching your validator node on DigitalOcean, it is recommended to add a valid payment method to your account.

    In some cases, you may need to request access to larger Droplet sizes (i.e., virtual machines with higher CPU, RAM, or disk allocations). The DigitalOcean team may restrict these resources until they’ve verified your account for higher usage limits.

    1

    Sign Up with Digital Ocean

    https://www.digitalocean.com/

    To enhance the security of your validator node, it is strongly recommended to enable Two-Factor Authentication (2FA) on your DigitalOcean account.

    2

    Create a Droplet (VPS)

    Choose Droplets from the Create button on the top right.

    3

    Choose Region

    Choose a Region that is closest to your local location.

    4

    Choose an image

    Select Ubuntu and CHANGE the Version to 24.04 (LTS) x64 ( not 24.10 x64 )

    5

    Choose Size

    You may keep Basic

    Choose Regular Disk type SSD

    Choose no less than 16Gb Memory, 8

    6

    Skip next few sections

    You may leave these with default options

    7

    Choose Authentication Method

    Choose SSH Key

    New SSH Key

    Copy and Paste your PUBLIC key to the provided box.

    8

    Monitoring and alerting (optional)

    Select the check box to enable free metrics and alerting.

    9

    Finalize Details

    Set the Quantity to 1

    You do not need to change the hostname, this will be done for you later.

    You do not need to add tags.

    You may leave the default

    10

    Create Droplet

    11

    Allow your Droplet to be created

    Copy down the IP address to access your system later. In the example above your IP address would be similar to 138.197.99.126

    12

    Under the MANAGE section on the left side

    Expand the section if necessary and choose Networking

    13

    Choose the Firewalls tab from the horizontal top tab

    Click on Create Firewall

    14

    Create a name to identify our firewall rule set

    15

    Create an SSH rule

    In the sources box leave the All IPv4 and All IPv6 if you want to have open access to this Droplet. Otherwise click the x on both the All IPv4 and All IPv6

    16

    Create your Pubic & Peer to Peer rule

    This rule is designed for both a Hypergraph hybrid layer validator DAG layer1 and a Dor data layer 1 nodes.

    Click on the New rule choose Custom

    Under the Port Range

    17

    Hypergraph Global Hybrid Validators ONLY

    This rule is designed for validator Hypergraph layer0 nodes.

    Click on the New rule choose Custom

    Under the Port Range

    18

    Dor data layer1 nodes do not use these port settings. Open these ports will offer attackers an open port to your VPS without a service listening on the inside. This is not recommended.

    Apply to Droplets

    19

    Create Firewall

    Complete

    You have successfully launched a VPS instance on DigitalOcean, Congratulations!

    You are now ready to continue to connect to your node for the first time, install nodectl and turn your Droplet (VPS) into a Constellation Network Validator Node!

    SSH Remote Access

    Normal Install Guide

    Turn your VPS into a node using a normal installation.

    This guide will walk you through the steps required to convert a VPS or bare-metal server into a Constellation Validator Node.

    A normal installation provides more customization options during setup, whereas the quick installation only prompts for essential inputs and uses recommended defaults for all other settings outlined in this guide.

    🚩Node Prerequisites

    Begin Installation

    1

    Start the Installer

    For advanced users, if you prefer one-command install, supply any of these flags:

    • --normal

    • --p12-passphrase <pass>

    2

    Verify Specifications

    When you first launch the nodectl utility, it will guide you through selecting the type of validator node you wish to install.

    Choose H to build a Hypergraph validator node or D to build a Dor Data Layer 1 validator node..

    3

    Continue

    If you node meets all the proper you may press any key to continue.

    4

    Quick Install Request

    We will type in n and hit Enter.

    5

    Assign Your Cluster

    Based on your selection, nodectl will download a predefined configuration tailored to the chosen Hypergraph or metagraph cluster.

    Choose 1 through 4 depending your requirements.

    6

    Migrating an Existing P12

    You may enter n or just press Enter to accept the default [n] option.

    7

    Downloads

    You user interaction needed during this step.

    The nodectl utility will being the process of installing your node. You will see output from the installation as nodectl performs the following:

    8

    Continue

    Press any key to continue

    9

    Setup non-root administrator account for our node

    You will be prompted to specify the name of the Node Administrator account you will use for SSH remote access after installation.

    The default username is nodeadmin, and all subsequent documentation will reference this default.

    Enter the a custom user and press Enter

    10

    Create Your nodeadmin Password

    You will be prompted to create a for the nodeadmin user, which will serve as the default user on this VPS/node. This password will be required to execute administrative commands using nodectl going forward.

    11

    SSH Key Pair

    Press Enter to accept the default selection of y.

    Choosing y will transfer the SSH key from the default user (ubuntu or root

    12

    Disable root Access & Special Accounts

    In 99% of the cases, your Constellation Validator Node will have direct access to the Internet.

    To enhance security, it is recommended to disable access for commonly known default accounts, such as the root user and other special system users ( default ubuntu or admin accounts common preconfigured on default VPS images ).

    13

    Disable Password Authentication

    Since SSH keys are being used to securely access your node, it is strongly recommended to disable username and password authentication.

    This prevents unauthorized access through brute-force password attempts and significantly enhances your node’s security.

    14

    Dynamic Structures

    Allow nodectl to create the required directory structures that your node will utilize during standard protocol operations.

    Press any key to continue

    15

    Choose P12 Keystore name

    You will be offered the ability to create a specific name for you p12 keystore that will be used to hold your private and public keys used for signature requests, wallet administration, and other validator node operations.

    You may choose a name of your choosing and press Enter.

    16

    P12 Keystore Passphrase

    You will be prompted to enter a for your node’s .p12 keystore (wallet). This passphrase is required to perform signing requests and access your node’s hot wallet on the blockchain.

    17

    P12 Keystore Alias

    You will be prompted to create an alias for your node’s wallet.

    This alias is required for certain behind-the-scenes operations specific to the Constellation Network.

    Please choose a unique and recognizable alias for your .p12 keystore.

    18

    Encryption Services

    The nodectl utility provides the option to encrypt your .p12 passphrase using the SHA3-512 algorithm.

    This adds an extra layer of security by ensuring the passphrase is not stored in plain text within your configuration file.

    Recommended to choose y

    19

    Record For Later

    It is important to securely record your username, password, .p12 keystore filename, keystore passphrase, and node alias for future reference. These details are easy to forget and losing them could lead to serious consequences.

    20

    Completed Install Screen

    The nodectl utility will finish by displaying a final instructional page.

    Review it carefully, record any important information in your .

    The following instructions will be explained in greater detail in the post-seeding documents available on our documentation hub.

    21

    Final instructions

    Now that your VPS has been successfully configured as a Constellation Network node, there are a few final steps to complete before proceeding to the to bring your node online.

    Releases · StardustCollective/nodectlGitHub

    Node Operator Notes

    Important notes to help remind us about the concepts of the three different passphrase/passwords we need to maintain and use on a daily basis to manage our node.

    Before We Begin

    The following pages are essential reading before proceeding to any technical implementation. They are designed to help you organize your notes, confirm your virtual server specifications, and understand cloud provider requirements. Reviewing this information will ensure a smooth setup process and reduce the likelihood of configuration errors.

    These sections are especially helpful for first-time Node Operators. However, experienced or technically proficient users may choose to skim or skip them as needed.

    Topics covered in this section:

    Metagraphs

    This section is dedicated to the processes and procedures specific to validator nodes being built on a Constellation Network metagraph.

    The following guides provide guidance and best practices for configuring, deploying, and maintaining validator nodes within the Constellation Network metagraph ecosystem.

    What is a metagraph?

    Please click for details.

    ssh-i C:/Users/MyUser/.ssh/my-private_key [email protected]
    ssh-i /Users/MyUser/.ssh/my-private_key [email protected]
    ssh-i C:/Users/MyUser/.ssh/my-private_key [email protected] -p 2222
    ssh-i /Users/MyUser/.ssh/my-private_key [email protected] -p 2222
    The authenticity of host '13.13.13.13' port <22>: can't be established.
    ECDSA key fingerprint is SHA256:<<abcedf1234568910abcdef>>.
    Are you sure you want to continue connecting (yes/no)?  
    sudo nodectl version
    sudo nodectl status
    sudo nodectl quick_status -p intnet-l0 -w 120
    sudo nodectl logs -l app -p dag-l0
    sudo nodectl upgrade
    sudo nodectl upgrade --ni
    Upload SSH Public Key
    Wide Open SSH Access
    https://lattice.is/dashboardlattice.is
  • --p12-alias <alias>

  • --user <username>

  • --user-password <password>

  • --p12-destination-path <path>

  • --p12-migration-path <path>

  • --confirm (auto-accept warnings)

  • 🔵 Coming from the Migration Guide?

    If you are performing a New Node Installation with .p12 Migration, you may press y at this prompt to allow nodectl to automatically scan your VPS for any available .p12 keystore files. Once detected, you will be presented with a list to select from, choose the appropriate file to continue the installation.

  • or just press
    Enter
    to accept the default

    If you choose to use a custom username, please substitute it wherever nodeadmin is mentioned after completing this step.

    Reminder to use proper password requirements.

    Enter and confirm the password.

    ) to the newly created Node Administrator account.

    You will also be prompted to choose whether to disable root access via SSH, enhancing your server’s security.

    Local Bare Metal Server may use advanced methods for access control and should decided accordingly

    Using the strongest security practices is essential in these scenarios to protect your node and its associated wallet.

    We will choose y or just press Enter.

    Local Bare Metal Server may use advanced methods for access control and should decided accordingly

    Reminder to use proper passphrase requirements.
    .

    Allow nodectl a moment to encrypt your passphrase.

    Node Operator Notes
    specifications
    password
    passphrase
    notes
    First-Time Connection Guide
    Take note of each intermediate version and run the upgrade_nodectl command sequentially for each version step using the -v <version> option.

    Upgrade one version at a time. Do not skip versions until you reach v2.16.0. This ensures compatibility and prevents potential issues with configuration or functionality.

    Example: sudo nodectl upgrade_nodectl -v v2.13.0

    Node internal upgrade

    If you are requested to upgrade the node, issue a Y and allow nodectl to upgrade the node so that all the features, changes, and updates can be properly applied.

    This is important to ensure that all features of nodectl are enabled.

    When you reach a version that can be directly upgraded to the latest v2.17.3 you may exclude the -v option.

    info here
    AUTO UPGRADE
    NODECTL UPGRADE
    MANUAL UPGRADE
    sudo nodectl install
      ========================================
      =   CONSTELLATION NETWORK HYPERGRAPH   =
      =          VERIFY NODECTL SPECS        =
      =         PRE-INSTALLATION TOOL        =
      ========================================
      Code Name: Princess Warrior
    
      Please choose node type to test:
      H)ybrid Dual Layer
      D)or Validator
      Q)uit
    
      KEY PRESS an option
      HYPERGRAPH or METAGRAPH
      predefined choices
      -------------------------------------------
      1) mainnet [HyperGraph]
      2) integrationnet [HyperGraph]
      3) testnet [HyperGraph]
      4) dor-metagraph-mainnet [metagraph]
    
      Q)uit
    
      KEY PRESS an option
     ------ * INSTALLATION COMPLETE * -------
    
      CONGRATULATIONS!
      Below you will find your nodeid which 
      was derived from your p12 file
      Please report this nodeid to administrative 
      staff to gain access to the network via the 
      access  list permissions.
    
      HyperGraph/metagraph ..................... hypergraph
      Environment .............................. mainnet
      P12 Location ............................. /home/nodeadmin/tessellation
      P12 Name ................................. nodeadmin-node.p12
      P12 Alias ................................ nodeadmin-alias
    
       ----- * CHECK SEED LIST REQUEST * ------
    
      NODE ID
      <your_node_id_here>
      NODE ID FOUND ON SEED LIST
      False
      DAG WALLET ADDRESS
      <your_dag_wallet_address_here>
    C:/User/MyUser/.ssh
    /Users/MyUser/.ssh/
    sudo nodectl upgrade_path
    sudo nodectl upgrade_nodectl -v <next_version_in_path>
    Press Y then [ENTER] to upgrade or N then [ENTER] to cancel: Y
    sudo nodectl upgrade_nodectl
    Detailed instructions will be provided to guide you through each step of the build process.
    CAREFUL !

    Be sure to double-check all details during the transfer to avoid any issues, such as lost of funds.

    $DOR

    1,000,000

    Discord account
    ​
    Lattice Gateway
    main dashboard
    Dor Node Operator Program
    Stargazer
    ​
    CPUs, and
    320Gb
    disk.

    Recommended: 32Gb Memory configuration ( available with Premium Intel/AMD )

    Follow this document Upload SSH Public Key.

    If the Name field does not populate, create a name for the key that will help you identify it later.

    Click the Add SSH key button.

    Select your SSH key if not already checked.

    Project
    .
    to remove those items and add your local IP address. In the example the fake IP of
    13.13.13.13/32
    is used.

    Once you enter the IP address you will see an Add "13.13.13.13/32 ( similar ) which you will need to click on to populate the Sources for your SSH remote access.

    Please refer to Wide Open SSH Access document for details on the security implications of allowing any system that is connected to the internet to have access to your SSH port. This document contains instructions on how to determine your local IP address for entry in this section.

    enter in
    9010-9011

    Leave the Sources as All IPv4 and All IPv6

    enter in
    9000-9001

    Leave the Sources as All IPv4 and All IPv6

    If you gave your droplet a hostname during the Finalize Details step above begin to type in that hostname and it should auto populate into the provided box.

    If you left the hostname as default type in u and wait for the box to auto populate with default ubuntu name

    Select the droplet to populate the Apply to Droplets box.

    No spaces allowed

    Setting Up Your Notes — Guidance on preparing and organizing the information you'll need throughout the node setup process.

  • Understanding Your VPS Specifications — Ensure that your virtual server meets the required hardware and system configuration.

  • Cloud Provider Specific Guides — Reference materials tailored to specific providers like AWS, DigitalOcean, and Heztner.

  • Take the time to review this material thoroughly before beginning any technical work.

    Purpose

    This document suggests a method for keeping notes and tips accessible when preparing to or operating your node.

    We hope that referring back to your notes for reminders on managing your node and recalling necessary passphrases or passwords will be time-saving, useful, and efficient.

    Even the most advanced users with the best memory will forget the necessary information to access the various aspects of running a node. Keeping notes is important.


    Understanding Passphrase & Passwords

    There are 3 main passwords that we must have an understand and control of the concepts to make the administration of our nodes simple and less aggravating.

    1

    SSH Remove Access

    Passphrase used to complete the connection authentication.

    This is used to access your VPS/node from your local system. You’ll typically enter it once per session when establishing a connection to your node.

    2

    Administer Your Node

    Password used to confirm authorization.

    When issuing administrative commands on your node, you will be required to enter your sudo password associated with the nodeadmin user whenever a privileged action is executed or your session times out.

    The nodectl utility operates with elevated privileges and therefore requires

    3

    P12 Key Store

    PKCS#12, or PFX

    The P12 keystore (also referred to as PKCS#12 or PFX) contains your cryptographic key pair, both the private and public keys. it is used for signing transactions on the node. These keys also serve as authentication credentials for managing your node’s hot wallet.

    The passphrase protecting this keystore is critical: it is required to authorize actions related to rewards, collateral

    Password and Note Storage

    The following mediums are a good start to where you should record and maintain your notes.

    Medium
    Description

    Secured Software Manager

    There are password managers that allow for keeping passwords, passphrases, notes, and documents. From LastPass, 1Password, Bitwarden, Dashlane, KeePass, to others.

    USB Stick

    Placing your information on a USB stick that is stored in a secure location such as a safe.

    Physical Piece of Paper

    Writing down your notes and storing in a secure location such as a safe.

    Make sure to create backups that will be stored in a safe location.

    Warnings​

    🚑 PLEASE DO NOT 🚒

    Do not use the same passphrases or other sensitive values/information as shown in this example.

    These examples are public facing and may be used by a nefarious actor as a first attempt to access your node in a penetration attack.

    The example values in these notes are fictitious, please replace usernames, passwords, passphrases, etc. with your own.

    Notes for Macintosh​

    Notes for Windows​

    Just in Case

    If you are using a Command Prompt verses PuTTy, you may want to copy the Macintosh notes 👆and replace Terminal with Command Prompt as necessary.

    P12 Keystore

    Description of a p12 keystore.

    What Is a .p12 Keystore File?

    A .p12 keystore file—also known as a PKCS#12 file is a secure, encrypted container that stores multiple cryptographic keys and certificates within a single file. It is commonly used to bundle private keys, public keys, and certificates in a portable, protected format.


    🔐 Usage in the Constellation Network

    Within the context of running a Validator Node on the Constellation Network, the .p12 keystore file plays several critical roles:

    • Network Authentication (Public Key) Contains a public key used to authenticate your Validator Node against the Constellation Network's seed list, allowing it to join the network cluster.

    • Transaction Signing (Private Key) Contains a private key used to sign and authorize transactions, making it your node’s hot wallet. This key can also be imported into a wallet like Stargazer to provide proof of staking, receive validator rewards and hold supported cryptocurrencies.

    • Consensus Participation (Private Key) Used to digitally sign consensus proofs, which is a core function of Validator Nodes participating in Hypergraph or metagraph consensus rounds.


    🔒 Security Best Practices

    Because the .p12 file contains sensitive keys, it must be handled with extreme care:

    • Never share your .p12 file with untrusted individuals or systems.

    • Always protect it with a strong passphrase.

    • Maintain offline backups in secure, air-gapped locations (i.e., systems not connected to the internet).


    Losing access to your .p12 file or having it fall into the wrong hands can result in loss of funds, node compromise, or inability to participate in network validation. Treat it as a critical asset.

    Constellation Validator Node Notes:
    
    To access our node:
        open a terminal and enter:
        ssh -i /home/myuser/.ssh/myprivatekey [email protected]
        
        This command will attempt to SSH into our VPS/node 
        We will be challenged for access to supply the passphrase.
        passphrase: efg6abc13efg6
    
        If the command hangs or an error message stating 
        "refused" check to make sure that our firewall 
        on the VPS is properly setup to use the local 
        IP address of our system. During installation, 
        we restricted this down to a specific IP of our 
        local system, that may have changed.   
        www.whatismyip.com
    
    To issue commands using nodectl we use sudo
       We need to use our nodeadmin password here:
       passphrase: efg6abc13efg6
    
    If we need to access our p12 file (hot wallet)
       passphrase: abc13efg6abc13
    
    Reminders:
    ----------
    ssh private key: myprivatekey
    ssh public key: mypublickey.pub
    ssh passphrase: efg6abc13efg6
    location of keys:
       - on this USB stick
       - local mac directory: /home/myuser/.ssh/
    
    p12 keystore name (hot wallet): myp12name.p12
    p12 keystore passphrase: abc13efg6abc13
    
    VPS IP: 113.113.113.113
    VPS SSH port: 22
    VPS username: mynodeadmin
    VPS sudo password: 
    
    Access My Node
    --------------
    1. Open Terminal Session
    2. ssh -i /Users/yourname/.ssh/myprivatekey [email protected]
    
    * After typing in: sudo nodectl
      you can double-tap the tab key for a list
      of commands.
      
    Key Commands
    ------------
    sudo nodectl status
    sudo nodectl restart -p all
    sudo nodectl upgrade
    sudo nodectl check_versions
    sudo nodectl check_consensus
    sudo nodectl dag -p dag-l0
    Constellation Validator Node Notes:
    
    To access our node:
        open PuTTy
        select our saved session from the 
        PuTTy main menu, load, and then open
        (or double click)
        
        This command will attempt to SSH into our VPS/node 
        We will be challenged for access to supply the passphrase.
        passphrase: efg6abc13efg6
    
        If the command hangs or an error message stating 
        "refused" check to make sure that our firewall 
        on the VPS is properly setup to use the local 
        IP address of our system. During installation, 
        we restricted this down to a specific IP of our 
        local system, that may have changed.   
        www.whatismyip.com
    
    To issue commands using nodectl we use sudo
       We need to use our nodeadmin password here:
       passphrase: hij678hij678&*()
    
    If we need to access our p12 file (hot wallet)
       passphrase: abc123abc123!@#
    
    Reminders:
    ----------
    ssh private key: myprivatekey
    ssh public key: mypublickey.pub
    ssh passphrase: efg345efg$%%^
    location of keys:
       - on this USB stick
       - <enter saved location here>
    
    p12 keystore name (hot wallet): myConstellationP12File.p12
    p12 keystore passphrase: abc123abc123!@#
    
    VPS IP: 113.113.113.113
    VPS SSH port: 22
    VPS username: nodeadmin
    VPS sudo password: hij678hij678&*()
    
    Access My Node
    --------------
    1. Open Terminal Session
    2. ssh -i C:\Users\myuser\.ssh\myprivatekey [email protected]
    
    * After typing in: sudo nodectl
      you can double-tap the tab key for a list
      of commands.
    
    Key Commands
    ------------
    sudo nodectl status
    sudo nodectl restart -p all
    sudo nodectl upgrade
    sudo nodectl check_versions
    sudo nodectl check_consensus
    sudo nodectl dag -p dag-l0 (intnet-l0) (dor-dl1)
    sudo
    access
    to perform many of its core functions.
    management, and
    token transfers
    . Store this passphrase securely, as losing it may result in permanent loss of access to these functions.

    If you have previously imported your node’s private key into the Stargazer wallet, it is possible to recover access to your funds even if the P12 keystore is lost or the keystore passphrase is forgotten. This is because the private key alone is sufficient to restore control over the associated wallet and its assets.

    DAG Wallet Address Derivation (Public Key) Contains the public key required to derive your wallet’s DAG address, used in transactions and rewards distribution.

    Consider using hardware-based or encrypted storage for long-term archival.
    Logo

    Upgrade Tessellation Guide

    Introduction

    This document will guide you through step-by-step instructions for upgrading your node to the latest version of Tessellation.


    1

    SSH Into Your VPS

    2

    Issue the Upgrade Command

    3

    Migration Considerations

    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.

    4

    Confirm upgrade

    We will be asked if we are sure we want to continue the installation. We can hit the enter key to accept the default y or type in y + enter to confirm.

    5

    Environment Confirmation

    We will see what environment is being upgraded.

    or

    6

    Configuration Backup

    A backup of our configuration will commence and output:

    7

    Verify Node Upgrade

    The nodectl utility will begin by verifying that the upgrade path is valid.

    If the upgrade path not valid, you will be met with the following message:

    It is recommended upgrade nodectl after the upgrade is complete using the correct upgrade paths.

    8

    Determine p12 details

    The nodectl utility will:

    • Validate the p12 usage for all profiles.

    9

    Select Tessellation Version

    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

    10

    Understanding Environments

    The nodectl utility organizes your configured profiles into logical groups called environments.

    Each environment typically represents a specific network cluster, such as:

    11

    Leave the cluster & Stop your node

    Gracefully leaving the cluster is highly recommended before performing upgrades, maintenance, or reboots. This practice helps:

    • Prevent snapshot corruption

    12

    Upgrade Node Internal Elements

    The nodectl utility will begin the upgrade process by performing several important housekeeping and system preparation steps:

    1. Clean up abandoned utility-specific files

    13

    Clean up backups

    Backup files may contain plaintext P12 keystore passphrases. If you have not encrypted your P12 keystore, please keep this in mind.

    14

    Clean up uploads

    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.

    15

    Clean up logs

    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.

    16

    Upgrade Tessellation Binaries

    The nodectl utility will download the necessary packages that will upgrade your node to the latest version.

    17

    Update Seed List

    It is crucial that your node's seed list matches the latest seed list recognized by the cluster. If there is not an exact match, the node will fail to connect to the network.

    18

    P12 Keystore Passphrase Encryption

    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.

    19

    Updating Services

    Now that your node is ready to rejoin the cluster with its newly updated components, the following services will be restarted:

    • Protocol services

    20

    Start Protocol Services

    You will see the node start the layer0 profile (for a Hybrid node) or the Data Layer 1 service for a Dor metagraph (or any other single-layer metagraph node).

    You will a status update confirming your node is in ReadyToJoin status.

    21

    ReadyToJoin

    The configured layer0 profile will rejoin the network. In this case the profile dag-l0 is configured as the layer0 and will attempt to join.

    22

    SessionStarted

    After some initial setup behind the scenes, your node will reach SessionStarted and wait for an opportunity to issue a join against one of the peers of the cluster that is in a state that will allow you to join with the node and become a member of the cluster.

    23

    DownloadInProgress

    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.

    24

    Ready

    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:

    25

    Hybrid Nodes

    A hybrid node includes both a Layer 1 (L1) and a Layer 0 (L0) profile running on the same VPS or server.

    • Layer0

    26

    Joining Layer1 on a Hybrid Node

    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

    27

    Final Steps

    After the join process completes, nodectl will:

    1. Display summary metrics related to the upgrade operations

    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.

    Backup P12 Keystore

    Determine if nodectl is using global references.

  • Obtain the nodeid from the p12 file.

  • 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.

    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.

    Reduce unnecessary load on the rest of the cluster

  • Maintain overall network health and stability

  • The nodectl utility automates this process by:

    1. Issuing an internal API call to gracefully leave the cluster

    2. Stopping the service(s) associated with the selected profile(s)

    3. 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.

    • 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.

    In most cases it is a good idea to clear your backups. If you are in the mist of troubleshooting, you may want to retain your backups.
    Currently, it is expected that the dag-l1 (Hypergraph Currency DAG L1) profile has a disabled seed list.

    Auto-restart services

  • Versioning services

  • WaitingForObserving

  • Observing

  • WaitingForReady


  • ✅ Final Goal: 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.

    : 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.

    Ready
    state
    .

    Timing Considerations

    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

    How nodectl Handles This

    To 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:

    1. Use the following command to check the Layer 0 status:

      Wait until it reaches Ready.

    2. 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.

  • 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.

    How to SSH into a VPS
    sudo nodectl status -p dag-l0
    sudo nodectl join -p dag-l1
    ssh -i /path/to/ssh/private/key nodeadmin@<vps_ip_address> -p <port>
    sudo nodectl upgrade
    Are you sure you want to continue this upgrade? [y]: y
    Using environment ............................. mainnet
    Using environment ............................. integrationnet
    Backing up configuration ......................complete
    Backup Date: YYYY-MM-DD-HH:MM:SSZ
    Backup Location: /var/tessellation/backups/
    Backup File Name: backup_cn-config_YYY-MM-DD-HH:MM:SSZ
    ---- * VERIFY NODE UPGRADE * -----
    Verify upgrade paths .......................... complete
    Check permissions & versioning ................ warning
    This is not a current stable version of nodectl.
    Recommended to:
        - Cancel this upgrade of Tessellation.
        - Issue: sudo nodectl upgrade_nodectl
        - Restart this upgrade of Tessellation.
    WARNING non-interactive mode was detected, developer mode, or extra parameters were supplied to this upgrade.
    It will continue at the node Operator's own risk and decision.
    Press enter to accept the default value between [] brackets.
    Please enter version to upgrade to.........[v3.0.0] :
    Are you sure you want to clear the selected uploads? [n]: y
    Are you sure you want to clear the selected logs? [n]: y
    --------- * HANDLE PACKAGES * ----------
    
    Download Tessellation Binaries................. running
    backup files .................................. complete
    
    Download version .............................. v3.0.0
    Fetch [cl-keytool.jar -> global] .............. complete
    Fetch [cl-wallet.jar -> global] ............... complete
    Fetch [cl-node.jar -> dag-l0] ................. complete
    Fetch [cl-dag-l1.jar -> dag-l1] ............... complete
    Fetch [mainnet-seedlist -> dag-l0] ............ completed
    Fetch [seedlist for -> dag-l1] ................ disabled
    Start request initiated [node_l0] ............. complete
    Fetching Status [dag-l0] ......................
    Attempt update and migrate configuration file? [y]: y
    Backing up cn-config yaml ..................... complete
    Verify upgrade paths .......................... complete
    p12 validated [dag-l0] ........................ using global
    p12 validated [dag-l1] ........................ using global
    Global p12 validated .......................... True
    Obtaining node ID from p12 [global] ........... 11111....11111
    Node IP address ............................... 113.113.113.113
    WARNING Tessellation is already on the latest known version.
    If you are only upgrading the node's internal components because your node is exhibiting undesirable or unexpected behavior, you should accept the default and upgrade your node's version to the same version level by simply hitting <enter> here.
    ====================
    PROFILE:     dag-l1
    ENVIRONMENT: mainnet
    METAGRAPH:   hypergraph
    
    Cluster mainnet for profile dag-l1 using v3.0.0
    Are you sure you want to clear the selected backups? [n]: y
    Do you want to encrypt the passphrase in your cn-config.yaml configuration file?
    Enable encrypt? [y]:
    Reload the Node's services .................... complete
    Starting versioning updater ................... complete
    Stargazer wallet installation documentation.
    here

    nodectl Command Reference

    Introduction​

    This document serves as a companion to the nodectl help command reference, which is available when running the nodectl utility on your node.

    What is an option and parameter?

    In nodectl, a command-line option is a modifier added to the end of a command to customize its behavior. It follows the syntax:

    An option may be accompanied by one or more parameters, which are specific values or instructions the option uses to perform its task.

    Examples

    sudo nodectl <command> <option> <parameter>

    sudo nodectl <command> <option> <parameter> <option> <parameter>

    sudo nodectl <command> <option> <parameter> <option> <option>

    Option without parameters

    Some options do not require a parameter be supplied afterwards. The option may need to be supplied alone.

    | As a simple example, the command

    • The status is the command

    • The -p is a option

    • The dag-l0 is a parameter.

    This reference guide will explore the status command in greater detail.

    In the example provided earlier, the option -p specifies which profile you would like to check the status of, and the parameter dag-l0 identifies the specific profile being queried.

    Example:

    What Is Pagination?

    When accessing your node via a remote shell, some commands may produce output that exceeds the visible height of your terminal window. In such cases, nodectl uses pagination, which pauses the output once it fills the screen, allowing you to view it in manageable sections.

    You’ll be prompted with options to continue or quit the output stream.

    • Press any key to continue scrolling

    • Press q to quit and return to the command prompt

    If you prefer to display the full output without pauses, many paginated commands support the -np (no pagination) option to disable this behavior.

    Example:

    This reference guide will explore the peers command in greater detail.

    Final Note

    If an option requires a parameter, it must be entered directly after the option is supplied on the command line. However, the order of the options that do not require parameters does not matter.

    option1 requires parameter1, option2 does not require a parameter.

    Is the same as:


    ⚙️ Command References

    getting_started


    The getting_started command will display a simple readme file with the most used commands found within the nodectl utility.

    Command
    Shortcut
    Version

    Examples

    • Show getting started readme.

    help


    The help command will offer help for most commands available by the nodectl utility.

    Node Operators can issue the help command by itself to see a basic rundown of all options and parameter requirements.

    Issuing the help command with the actual command you are seeking help from, will show a more detailed explanation of that command. Similar to this document, except from the command line itself.

    ⚙️ Service Change Commands

    start


    The start command takes a single option.

    This command requires the <profile_name> to be provided and will not execute without it.

    option
    parameter
    description
    required

    Examples

    • Help screen

    • Start profile named dag-l0

    stop


    The stop command takes a single parameter.

    Stop the service related to a configured profile name. This command will not work without the <profile_name> supplied.

    option
    parameter
    description
    required

    Examples

    • Show the help screen.

    • Stop profile named dag-l0.

    • Stop profile named dag-l0 and force a leave.

    restart


    The restart command takes a single parameter and is used to restart the service associated with a specified profile.

    This command requires either a specific <profile_name> or the special parameter all. It will not function without one of these.

    Actions Performed (in order):

    1. Leave the cluster

    2. Stop the service

    3. Start the service

    4. Re-join the cluster

    option
    parameters
    description
    require

    Examples

    • Help screen

    • Restart all the profiles configured on the node, in proper order of operations.

    • Restart profile named dag-l0

    • Restart but do not join dag-l0

    leave


    The leave command takes a single parameter.

    Leave the Hypergraph or metagraphs related to a configured profile name. This command will not work without the <profile_name> parameter supplied.

    Issuing a leave against your node will allow your node to complete any processes on the Hypergraph or metagraph that it may be involved in before your node exits the cluster.

    It is appropriate and will improve your node's PRO score to leave the cluster before you issue a stop command.

    option
    parameters
    description
    required

    Examples

    • Help screen

    • Leave profile named dag-l0

    join


    The join command takes a single required parameter and is used to join a Hypergraph or metagraph network using a configured profile.

    Requirements:

    • The <profile_name> must be supplied—this command will not function without it.

    • The associated profile must be started.

    • The node's status must be ReadyToJoin before issuing the command.

    option
    parameters
    description
    required

    Examples

    • Help screen

    • Join profile named dag-l0

    ⚙️ Node Operations

    auto_restart


    The auto_restart command takes several parameters.

    This feature is disabled, by default. You can enable this feature by issuing:

    Option r

    The auto_restart feature in nodectl is a specialized background service that continuously monitors your node to ensure all configured profiles. Whether on the Hypergraph or metagraphs, auto_restart attempts to remain connected to the cluster.

    If a profile is detected to be offline or in an undesirable state, auto_restart will attempt to automatically recover and rejoin the profile to its respective network, helping to maintain uptime and stability.

    option
    parameter
    description
    requried
    • list of monitoring

    • timing

    • Manual interoperability

    • auto_upgrade

    Do not rely entirely on the auto_restart feature. While auto_restart is a useful tool for keeping your node consistently up, it is not foolproof. You should still manually monitor your node to ensure it stays online and connected to the correct cluster session.

    • Help screen

    • Manual enable auto_restart services

    • Manual enable auto_restart services with auto_upgrade

    • Manual disable auto_restart services

    • Manual restart auto_restart services

    • Check if auto_restart is running by searching for the process ID (pid) of the auto_restart service. The command will also show status of auto features set in the configuration.

    clean_files


    The clean_files command will offers the Node Operator the ability to clear specified logs or special stored files that may not be needed anymore.

    Once the command is executed the Node Operator will be offered a CLI menu of removal options to choose.

    The option will be carried out and the Node Operator will be offered a visual confirmation of the files:

    • To be removed

    • number of files

    • Size to be freed by their removal.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required
    Type of Logs
    Description
    • Help file

    • Clean logs of type logs

    • or

    check_minority_fork


    The check_minority_fork command will execute a check against your node's status on the cluster in an attempt to determine if the node is in a minority fork.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    If node shows MINORITY FORK True

    You should restart your node in order to return of the majority fork. auto_restart has the ability to automatically detect a minority fork and restart your node for you.


    Examples

    • Help menu

    • Check the Hypergraph profile dag-l0 for a minority fork

    check_connection


    The check_connection command performs a diagnostic check on the currently connected Hypergraph or metagraph cluster.

    It compares the list of nodes discovered from a source peer against those found on an edge peer, helping to identify connectivity inconsistencies or potential issues in peer discovery.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required
    • The -s option may be supplied to request a lookup on a specific peer. If not specified, nodectl will pick a random peer on the cluster; specified by the -p profile (required) parameter.

    • The -e option may be supplied to request a lookup on a specific peer edge device that is not the local node. If not specified, nodectl will pick a random peer on the cluster; specified by the -p profile (required) parameter.

    If the nodes connected to each do not match, the command will display those nodes that are missing between the two.

    Dictionary

    symbol
    description

    If node shows False

    There may be circumstances where your node is showing a False positive. The network may still be converging or another node may be causing your node to show False.

    In some cases you may need to wait a little longer and then check again if:

    • Your node is showing False.

    • If you are seeing many nodes "missing".

    The node may be off the network and a restart is required. You can use the restart command to attempt to restart and join the network.

    Troubleshooting

    • You may review your log files to see if you can find an issue

    • You can contact a System Administrator to review log files which may help to figure out if your issue is correctable. They may request you send_logs feature.


    Examples

    • Scenario for help

      • <profile_name> will be dag-l0

      • Node you joined to originally (source) : 10.1.1.1

    • Check random "source" against the local "edge" node

    • Check random "source" node against "other" node

    • Check "any other node" against "any other node"

    check_consensus


    The check_consensus command will execute a check against your node's status on the cluster in an attempt to determine if the node participating in consensus rounds.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    If the -p parameter is not supplied, nodectl will offer you a menu of known profiles to choose from.

    The --file command expects a csv (comma separated values) file that is populated with node IDs. Each node ID must be on its own line.

    If node shows IN CONSENSUS False

    You should restart your node in order to return of the majority fork. auto_restart has the ability to automatically detect a node that is out of consensus and restart your node for you.


    Examples

    • Help menu

    • Check if the Hypergraph profile dag-l0 is in consensus

    • Execute consensus check against node with profile name dag-l0 and IP address 10.10.10.10.

    • Execute consensus check against list of node IDs with profile name dag-l0 and file containing the node ID list called test.csv located in the the '/tmp/' directory on the node.

    • Execute consensus in brief format.

    • Execute consensus in brief format refreshing and checking again every 120 seconds.

    check_source_connection


    The check_source_connection command takes a profile parameter.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    When executed the check_source_connection command will attempt to find a random node on the current known Hypergraph or metagraph cluster.

    The random node needs to be joined into the consensus of the cluster, and must be on the cluster and in Ready state.

    nodectl should take care of this for us.

    example output

    Title
    Description

    Examples

    • Help screen

    • Execute the check_source_connection command

    check_seedlist


    The check_seedlist command takes one parameter.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    check_seedlist will pull your node ID out of your p12 file and compare it to the seedlist downloaded from Constellation Network's authorized list.

    Title
    Description

    Examples

    • Help screen

    • Execute the check_seedlist command

    check_seedlist_participation


    The check_seedlist_participation command does not take any parameters.

    | Command | Shortcut | Version | | :---: | :---: | :---: | >v2.7.x | | check_seedlist_participation | -cslp |

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    This command can be used to review seed list access-list participation for any/all given profile(s) in the configuration that has a seed-list setup.

    Examples

    • Help screen

    • Execute the check_seedlist_participation command

    check_tcp_ports


    The check_tcp_ports command performs a diagnostic test on your node’s external network interface card (NIC) to detect network activity on your node’s API TCP ports.

    This tool is especially useful during troubleshooting to determine if there may be a firewall or connectivity issue.

    What nodectl will do:

    • Extract the public and peer-to-peer API ports from your node’s configuration

    • Sniff the NIC for a short duration to observe traffic on these ports

    • Report the results without interfering with or modifying any traffic

    Sniffing is a passive process—it simply listens to the interface and does not interact with or alter any UDP/TCP packets.

    If the node does not have the protocol up and running for a given profile, nodectl will not see any traffic and If the protocol is not actively running for the specified profile, nodectl will not detect any traffic on the associated ports. As a result, the check_tcp_ports command will report a failure, indicating no observed network activity.

    This does not necessarily mean there is a firewall issue—it could simply mean the node is not currently active on the network for that profile.

    option
    parameters
    description
    required

    console


    The console command does not take any parameters.

    This is a special utility command that allows you to use a menu driven methodology towards issuing the most common commands on your node. There are three (opinionated) menus of commands.

    • Main Menu: Hold the most common commands.

    • General Menu: Holds commands that are commonly useful.

    • Troubleshooting Menu: Holds common commands used for troubleshooting purposes.

    Simply issue the console command, select the letter corresponding to the predefined commands, and that command will execute. After completion, nodectl will terminate the process and return the Node Operator to the terminal prompt.

    mobile


    The mobile command is synonymous with the console command; however, it will return to the main menu and allow the Node Operator to issue "the next" command, as needed, in an iterative fashion.

    Command
    Shortcut
    Version

    download_status


    The download_status command is experimental and may not always be accurate.

    The download_status command is experimental and may not always be accurate.

    It makes a best-effort attempt to review the node's logs in real time to estimate the progress of the DownloadInProgress state and how long it may take to complete.

    When a node begins the process of joining the cluster for the configured profile(s), it undergoes a series of essential initialization tasks to ensure proper integration and functionality as a peer in the cluster.

    After your node completes the initial phases of authentication and becomes a peer on the cluster, it must synchronize and gather knowledge of the existing blockchain before it can actively participate in consensus and earn rewards.

    Constellation Network uses an incremental snapshot strategy to minimize the "cost" of downloading blockchain snapshots. When a new node joins the cluster, it undergoes an extended one-time process of learning the entire blockchain. For an existing node rejoining the cluster, the node calculates the differences between its previous state and the current blockchain state.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    execute_starchiver


    is a community created and supported tool.

    IMPORTANT

    Constellation Network does not support this tool.

    This tool is highly useful and has been integrated into nodectl to assist with proper execution with a single command, without any extra steps. It can expedite your node’s ability to join the cluster, potentially reducing download times from days to just hours or less.

    Command
    Shortcut
    Version

    When executed on a node via nodectl

    option
    parameters
    description
    required
    • Help screen

    • Execute Starchiver-Extractor using the most recommended command options.

    find


    The find command takes several parameters.

    Command
    Shortcut
    Version

    This command will attempt to find the requested peer on the current connected Hypergraph or metagraph.

    The find command offers insight into the

    • number of nodes on the cluster

    • number of nodes in Observing state

    • number of nodes in WaitingForObserving state

    It will show you the profile searched (required) and offer you confirmation that your node is seen on the cluster.

    option
    parameters
    descriptio
    required

    You may specify a source node that will be used as the reference point to lookup the target node (either your node default or a specified target) on the cluster and return a True or False depending on whether or not it is found.

    You may use the self keyword for either the source ( -s ) or target ( -t ) parameters.

    Note

    Choosing a source node that is NOT on the network may result in an error or false negative.

    • Help screen

    • Check if your node is listed/seen on the cluster using a random source node that is already found on the cluster.

    • Check if your node is listed/seen on the cluster using a specific source node.

    • Check if your node is listed/seen on the cluster using a specific source node and a specific target node (other then your own.

    other find examples

    If our node is 10.1.1.1 check if 10.1.1.1 is listed/seen by another random node on the cluster we are connected to identified by the profile dag-l0.

    look for a node by node ID

    If our node is 10.1.1.1 check if 10.1.1.1 is listed/seen by a node identified by the -s option (10.2.2.2) on the cluster we are connected to.

    Examples using self keyword

    In this example we are asking 10.2.2.2 (our source) if it is able to identify the target 10.1.1.2 on the network cluster.

    health


    The health command does not take any parameters.

    It displays the basic health elements of your node.

    OUTPUT
    Description
    Title
    Description

    Examples

    • Help screen

    • Execute the health command

    list


    The list command does not take any parameters and displays the details of the profiles found in the cn-config.yaml file. You can update the cn-config.yaml file with the configure command.

    Title
    Description
    • Help screen

    • Execute the list command

    market


    The market command does not take any parameters.

    Performs a quick lookup for crypto markets via CoinGecko's public API.

    The command will list the Top 10 Crypto markets at the current moment in time. In the event that Constellation Network is not in the top ten, it will list it's current position in relation to the rest of the known markets.

    warning

    This command is for recreation purposes only.

    Constellation Network is not a financial advisor. Information is sourced from CoinGecko and does not represent the opinions or financial advice of Constellation Network.

    Title
    Description

    node_last_snapshot


    The node_last_snapshot command takes a single option.

    This command reviews the Tessellation app.log to find the last instance of a downloaded snapshot for the specified <profile_name>.

    option
    parameters
    description
    required

    Examples

    • Help screen

    • Review snapshots for profile named dag-l0

    peers


    The peers command will attempt to list all the peers found on the cluster; as well as, list their IP addresses for review.

    option
    parameters
    description
    requires

    Normal output from the peers command will show all the peers seen on a given metagraph or the Hypergraph (profile dependent) this will include:

    • node IP with public port

      • 10.10.10.10:1000 = 10.10.10.10 with public TCP port of 1000

    • node ID (shortened to first 8 hex values, ...., last 8 hex values)

    You can utilize the --basic option to force nodectl to only show the PEER IP:TCP PORT column.

    You can utilize the --extended option to force nodectl to only show all fields in long format.

    If you do not use the --basic or --extended options, the output will be in shorten form for all elements (ip:port, dag address, node ID).

    Dictionary

    abbrv
    Description

    Examples

    • Help screen

    • Show nodes on cluster from random peer on the cluster from a specific profile

    • Show YOUR nodes's peers

    • Show peers on the cluster utilizing a specific target ip address.

    • Show count of peers your node is able to see. (synonymous with find command) show peers on the cluster utilizing a specific.

    • Source target ip address to count against.

    Other examples

    Example usage for a profile called dag-l0

    Example usage for --basic

    Create a csv file

    price


    The price command does not take any parameters.

    This command performs a quick lookup for crypto prices via CoinGecko's public API.

    warning

    This command is for recreation purposes only.

    Constellation Network is not a financial advisor. Information is sourced from CoinGecko and does not represent the opinions or financial advice of Constellation Network.

    Title
    Description
    Title
    Description

    Examples

    • Help screen

    • Execute the price command

    refresh_binaries


    The refresh_binaries command does not take any parameters.

    Command
    Shortcut
    Version

    This command will download and overwrite the existing Tessellation binaries files that are required to run your node. The result of this command will be to download the binaries from the latest release and is independent of a system upgrade.

    This command can be used to refresh your binaries in the event that you have a corrupted or missing binary files.

    This command should be accompanied by the restart command in order to allow your node to utilize the new binary files.

    This includes a refresh of the latest local seed-list access list file.

    Examples

    • Help screen

    • Execute the refresh_binaries command

    quick_status


    The quick_status command takes a single optional parameter.

    quick_status will review the current status of your node and offer a single output of the found state of your node's known clusters, as quickly as possible.

    If the -p option is used with the <profile_name>, only that profile's status will appear. If the quick_status command is called without the -p option, all profiles will be shown.

    The difference between quick_status and status are two-fold:

    1. quick_status will only show the state of the node's known active profile(s)

    2. quick_status will review the state of your node's known active profile(s) via the local API on the node. This should be understood and used with caution, as if your node is in Ready state but not on the proper cluster, you may receive a false positive. The status command; although more time costly (expensive), will offer a better outlook on your node by providing metics such as sessions.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    Examples

    • Help screen

    • Show all profiles

    • Show status of profile named dag-l0

    sec


    The sec command does not take any parameters.

    sec = security

    It displays the basic security elements of your node. It displays parsed elements from the auth.log file on your Debian operating system.

    Following the table formatted output, nodectl will display a list of date -> ip address of external access requests against your node.

    note

    The results will be based off the current and last "rolled" auth.log file.

    This nodectl feature is currently not related to the Tessellation processes on a node. It is reviewing distribution level auth files.

    example output

    Title
    Description

    Examples

    • Help screen

    • Execute the sec command

    show_cpu_memory


    The show_cpu_memory command does not take any parameters.

    nodectl will assess the CPU and memory to determine the percentage of usage detected.

    To provide more reliable results, nodectl will perform 10 iterations of checking CPU and memory usage before averaging the results and displaying them.

    Command
    Shortcut
    Version
    Output Header
    Description

    Examples

    • Help screen

    • Execute the show_cpu_memory command.

    show_current_rewards


    The show_current_rewards command takes several parameters.

    Search the Constellation Backend explorer and pull the last 50 global snapshots.

    The command will output a paginated list of DAG addresses and the amount of DAG accumulated per DAG address over the course of the time between the START SNAPSHOT timestamp listed and the END SNAPSHOT timestamp listed.

    note

    This only pertains to global MainNet rewards.

    This does not apply to IntegrationNet and TestNet rewards.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    The --output option can only be a filename. If you would like to have your output saved to an alternate location, you can update the configuration file via the configure command.

    sudo nodectl configure

    If a wallet address is not specified the first known wallet address obtained from the configuration will be used. If a -p <profile> is specified, the defined profile wallet address will be used for the lookup against the profile specified.

    If a -s <snapshot_history_size> is specified:

    • The history size entered will be used.

    • Must be between 10 and 375 snapshots.

    • The default value is 50.

    note

    Currently this command only searches on the MainNet Layer0 global Hypergraph network.

    If the -w <dag_wallet_address> is used, the -p <profile_name> will be ignored unless the profile fails to be present on the node (exist in the configuration).

    Examples

    • Help screen

    • If the -p <profile> if not specified, nodectl will use the first known profile.

    • If the -w <dag_address> is specified, nodectl will the requested DAG address against the MainNet explorer.

    • If the -np is not specified nodectl will attempt to paginate the output to the current known screen height. create a csv file

    • Create a csv file and put in the designated uploads directory with specified name.

    show_node_proofs


    The show_node_proofs command will display the current known snapshot proofs that this node is working on.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    The command will display the SnapShot Transaction ID and SnapShot Transaction Signature for all proofs in the current consensus round that the node is participating in.

    Examples

    • Help screen

    • Execute show_node_proofs.

    • Execute show_node_proofs without pagination.

    show_node_states


    The show_node_states command does not take any parameters.

    This command displays the list of the known node States that you may find on the Cluster or that nodectl defines when not on the cluster.

    Command
    Shortcut
    Version

    nodectl only states

    State
    Abv
    Description

    Examples

    • Help screen

    • Execute the show_node_states command

    • Execute using shortcut option command

    status


    The status command takes a single optional parameter.

    Status will review the current status of your node.

    If the -p option is used with the <profile_name>, only that profile's status will appear. If the status command is called without the -p option, all profiles will be shown.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    Examples

    • Help screen

    • Show all profiles

    • Show status of profile named dag-l0

    Title
    Description

    sync_node_time


    The sync_node_time command will update the node's underlining Linux Debian distribution's datetime clock. It will use the NTP service installed during nodectl installation to force an update of the node's clock.

    This command displays the list of the known node States that you may find on the Cluster or that nodectl defines when not on the cluster.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    Examples

    • Help screen

    • Execute the sync_node_time command

    • Execute using verbose mode

    update_seedlist


    The update_seedlist command does not take any parameters.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    The update_seedlist command retrieves the latest seed list from the Constellation Network repositories. This command can be used if your node is unable to authenticate and, therefore, cannot connect to the network.

    Using the check_seedlist command, a node Operator can confirm if the node is seen on the access lists; if not, issue the update_seedlist command to attempt to correct the issue.

    caution

    If you update the seed list and still receive a False, you may need to contact a Constellation Network support Administrator for further help. This can be done by accessing the Constellation Network official Discord server.

    Examples

    • Help screen

    • Execute the update_seedlist command

    update_version_object


    The nodectl utility maintains a version object file in the background, running as a service and updating every 2 minutes.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    Examples

    • Help screen

    • Force an update to the versioning object.

    • Verify the versioning object.

    • Print the versioning object.

    verify_nodectl


    The verify_nodectl command is a special command that attempts to authenticate the nodectl binary with a signature file located on the official GitHub repository of nodectl.

    This command will fetch the public key, digital signature file, and digital signature hash from the official Github repository. It will then use those files to hash the nodectl binary and produce a binary hash file to compare with that found on the Github respository.

    If the hashes match, we are rest assured our nodectl is authentic.

    caution

    A man-in-the-middle (MITM) attack occurs when a hacker secretly intercepts communication between two parties or systems. The hacker, acting as a "middleman," can intercept the information and potentially impersonate files from nodectl's GitHub repository.

    To avoid a MITM attack, it is crucial to manually access the GitHub repository and review the public key and digital signature files for verification.

    HEADERS
    Description

    Examples

    • Verify the nodectl binary

    ⚙️ Distribution Operations

    change_ssh_port


    The change_ssh_port command is a special command that works on the Debian distribution level. For added security, it is recommended that your run your SSH remote access through a non-commonly known port number. In the case of the ssh protocol, a port that is different from port 22.

    You should use an unused port between 1024 and 65535.

    option
    parameters
    description
    required

    Examples

    • Help file

    • Change SSH TCP port to port 4242

    disable_root_ssh


    The disable_root_ssh command is a special command that works on the Debian distribution level. It will disable the ability for access to the root user, via remote access.

    SECURITY

    It is recommended to have the root user's remote access (inbound/ingress) disabled. The only way the root user should be accessed is through the nodeadmin user account.

    This is done by issuing a sudo in front of the nodectl command.

    note

    If the Node Operator used the recommended settings during installation, this process should have already been completed, and no Node Operator intervention should be needed.

    Example

    enable_root_ssh


    The enable_root_ssh command is a special command that works on the Debian distribution level. It will enable the ability for access to the root user, via remote access.

    SECURITY

    It is recommended to have the root user's remote access (inbound/ingress) disabled. The only way the root user should be accessed is through the Node Administrator's user account.

    This command can be used to reverse this security setting configured via nodectl's installation process.

    Example

    reboot


    The reboot command does not take any parameters and offers the Node Operator the ability to reboot their physical or VPS (Virtual Private Server in the cloud) via a warm boot.

    Recommended

    For node Operation this command is preferred/recommended over normal operating system reboot command.

    When issued, the nodectl reboot command will gracefully leave the profiles defined in the nodectl configuration file before rebooting the node.

    dictionary

    term
    definition
    • Help screen

    • Execute the reboot command

    upgrade_vps


    The upgrade_vps command provides a more user-friendly, non-technical way to ensure your VPS (or bare metal server) is up-to-date with the latest packages, utilities, security patches, and core distribution elements (such as kernels, services, etc.).

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    The feature will offer you instructions on how to handle any interactive requirements, including handling purple boxes.

    caution

    During an upgrade, the Debian distribution may require the Node Operator to handle certain service configurations interactively.

    If this occurs, a purple box will appear with options and default settings already selected for you. Since we do not modify any default Debian distribution settings to run our node, you can accept the defaults. To do this, use the Tab key to navigate to the OK or Confirm boxes and then press Enter to accept.

    Examples

    • Help screen

    • Execute an update and upgrade.

    • Execute an update and upgrade in non-interactive mode.

    • Execute an update and upgrade with a reboot.

    uptime


    The uptime command provides the amount of time the cluster, the node itself, and the system supporting the node has been up and running.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required
    HEADERS
    Description

    Examples

    • Help screen

    • Execute an uptime request

    • Execute an uptime request against the profile named dag-l0.

    whoami


    The whoami command displays the external ip address of your node.

    Optionally, you can use the optional -id option to map a node ID to an IP address on a cluster.

    The external IP of your node is the address that allows your node to communicate with the rest of the systems on the Internet.

    This is the address your node will use to communicate with the other decentralized nodes that make up the Hypergraph and/or metagraphs. Your node will attempt to establish communications with other nodes through peer-to-peer (p2p) connections and public API requests.

    option
    parameters
    description
    required

    warning

    The -id option followed by the full node ID requested, will lookup the node ID and return its IP address. This command will require the -p with the profile name of the network you are searching.

    Examples

    • Help file

    • Show external ip

    • Show ip address of a node by node ID from a cluster via a profile this node is connected to

    ⚙️ p12 Operations

    create_p12


    The create_p12 command will create a p12 file and place it on the system in a location of the Operator's choosing.

    If a location is not supplied, the global p12 configured location will be used by default.

    If a username is not supplied, the global p12 username will be used by default.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    Examples

    show help screen

    Build a new p12 file using the global configured Node Administrator username:

    Build a new p12 file using a keystore named test.p12 and the file location /tmp/my_new_p12_files.

    dag


    The dag command will retrieve your node's wallet information for your local node.

    You can specify another node by supplying the -w (wallet) option followed by the dag_wallet of the node on the cluster that is targeted.

    Following general output details about your wallet, nodectl will query the DAG explorer API and retrieve details of the last 350 snapshot entries. This level of detail can be excluded by using the -b option.

    option
    parameters
    description
    required

    The --output option can only be a filename. If you would like to have your output saved to an alternate location, you can update the configuration file via the configure command.

    Output Header
    Description
    SNAPSHOT HEADER
    Description

    Examples

    • Help Screen

    • Retrieve local dag wallet details.

    • Retrieve dag wallet information of a node on the cluster with the DAG wallet address of DAG0911111111111111111111111111111111111

    • (fake address for demonstration purposes only).

    • Retrieve dag wallet information of a node on the cluster without snapshot details.

    • Retrieve the node's dag wallet without pagination.

    export_private_key


    The export_private_key command does not take any parameters.

    export_private_key will expose your private key from your p12 file and print it to the screen.

    danger

    Do not share this private key with anyone that you do not completely trust with your financial assets.

    option
    parameters
    description
    required

    nodectl is designed to work with p12 private key files that support Constellation Network v2 keys. If you are running an older node, please refer to the v1 to v2 migration document.

    Import the private key produced by this command into your StarGazer wallet (or other) in order to control your node's wallet.

    Examples

    • Help screen

    • Expose your private key


    nodeid


    The nodeid command will retrieve your node's public key (nodeid) for either your local node or another node by supplying the -t (target) option followed by the ip_address of the node on the cluster that is targeted.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    Examples

    • Help Screen

    • Retrieve local node ID

    • Retrieve node ID of a node on the cluster with the IP address of 113.113.113.113.

    nodeid2dag


    The nodeid2dag command will take in a required public node id or public key ( 128 byte hexadecimal string ) and converts it into its associated Constellation Network DAG wallet address.

    option
    parameters
    description
    required

    warning

    The <node_id> is required and does not have a related option.

    Examples

    • Help file

    • Convert node ID to DAG wallet

    note

    Due to the cryptographic nature of a DAG wallet, you can only 1-way hash a node ID to the DAG wallet, and not visa-versa.

    passwd12


    The passwd12 command does not take any parameters.

    This command offers the Node Operator the ability to change their p12 keystore file's passphrase through an interactive experience.

    warning

    passwd12 will not update the cn-config.yaml file.

    Please run the sudo nodectl configure command to update your passphrase (if necessary) after completing the passphrase update utility command.

    IMPORTANT

    BACKUP your p12 prior to using the passwd12 command

    Examples

    • Help File

    • Go through the p12 passphrase change process

    show_p12_details


    The show_p12_details command will show the nodes p12 keystore details.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    NOTE

    This command will not show the private key of our p12's primary Constellation Network wallet.

    Examples

    • Help File

    • View p12 details for the profile dag-l0.

    ⚙️ Configuration

    configure


    The configure command will attempt to guide the Node Operator through the creating or editing the cn-config.yaml file.

    The cn-config.yaml file is an extremely important file that nodectl uses to determine how it should control and configure your Constellation Network Validator Node.

    The configure command will offer a relatively detailed explanation of all configuration options, unless the -a (advanced) option is used.

    nodectl will confirm if you want to enter advanced mode if not specified.

    option
    parameters
    description
    required

    In new configuration mode, nodectl will offer you two (2) options

    1. Predefined Profile settings

    2. Manual Configuration

    In edit configuration mode, nodectl will offer you several options

    1. Edit Profiles

    2. Edit Global Settings

    See the configuration guide document for more details on this command.

    Examples

    • Help screen

    • Enter default configuration

    • Enter configurator directly to new config options

    • Enter configurator directly to edit config options

    • Enter configurator directly to edit config options in advanced mode

    • Enter configurator directly to edit config options in detailed mode while confirming the backup location at the same time.

    install


    The install command will build a new node for you from a blank fresh new VPS.

    option
    parameters
    description
    required

    See the installation guide document(s) for more details on this command.

    Examples

    • Default installation

    • Default normal installation

    • Default quick installation

    • Default installation supplying the user password and p12 passphrase on the command line.

    • Default quick install installation supplying the user password and p12 passphrase on the command line.

    • Default quick install installation supplying the user, user password, p12 name, p12 alias, and p12 passphrase on the command line.

    • Default quick install installation supplying the user, user password, existing p12 for migration, and p12 passphrase on the command line.

    ipv6


    The ipv6 command handles enablement, disablement, and the ability to review the status of the IPv6 network configuration stack on the VPS that your node is running on.

    Command
    Shortcut
    Version

    There are three optional parameters; however, one of the three options is required.

    option
    parameters
    description
    required

    When the enable or disable options are used, the GRUB and sysctl IPv6 configuration files will be altered.

    DANGER

    This command will manipulate non-Tessellation Constellation Network files on your VPS.

    If the VPS was built without IPv6 during instantiation, this command will have no effect.

    Examples

    • Help screen

    • View the status of the IPv6 stack on the VPS.

    • Enable IPv6.

    • Disable IPv6.

    restore_config


    The restore_config command does not accept any options or parameters.

    When executed, restore_config provides a list of previously backed-up configuration files, allowing you to select and restore the desired configuration.

    caution

    Please be diligent and exercise caution when restoring a configuration, as an invalid or incompatible configuration could corrupt your node or cause issues with nodectl's functionality.

    nodectl will display the contents of your backup directory, identify any configuration files, and provide a list of available configurations for you to choose from.

    Examples

    • Help screen

    • Stop profile named dag-l0

    uninstall


    The uninstall command does not accept any options or parameters.

    When executed, uninstall will remove all elements required to make your VPS into a Constellation Network node.

    You will be provided the option to retain your p12 keystore file. If this option is taken, the p12 keystore file(s) will be moved to a temporary directory for the Node Operator to use or backup as necessary, after the uninstallation is completed.

    caution

    This command will not remove non-Tessellation dependencies as they may be utilized by other programs or features on the VPS.

    If you would like to remove these dependencies they will have to be removed manually.

    Examples

    • Help screen

    • uninstall the node.

    upgrade


    The upgrade command is used to upgrade both Tessellation and nodectl backend files.

    option
    parameters
    description
    required

    Just in Case

    In the event of the --ni is used, if nodectl identifies anything unusual, it still may disengage non-interactive mode and ask any necessary questions, in an attempt to avoid unexpected errors.

    Please see the upgrade nodectl documentation for a detailed explanation of the command.

    upgrade_nodectl


    The upgrade_nodectl command is a dedicated command used to upgrade the nodectl binary file.

    Please see the upgrade_nodectl documentation for a detailed explanation of the command.

    Command
    Shortcut
    Version
    option
    parameter
    description
    required

    If you attempt to downgrade nodectl to a version that is not backwards compatible, you may risk unexpected results. Please see upgrade_path for more details on how to determine if a version is not backward compatible.

    Examples

    • Help file

    Copy

    • Upgrade nodectl

    Copy

    • Upgrade nodectl to version v2.15.2

    upgrade_path


    The upgrade_path command does not take any parameters and offers the Node Operator the ability to check their node's current nodectl version for upgrade path requirements.

    If the node is not at the most current version of nodectl, this command will produce a warning. The warning will let the Node Administrator know what the next necessary upgrade version should be, and will show you upgrade path requirements.

    See the upgrade path document for more details.

    Command
    Shortcut
    Version

    Example Usage

    • Help screen

    Copy

    • Execute the upgrade_path command

    validate_config


    The validate_config command will attempt to review your cn-config.yaml file for errors that may cause unexpected results when attempting to run your node.

    Command
    Shortcut
    Version

    In the event that nodectl finds discrepancies or errors in the cn-config.yaml, a table of errors and possible resolutions will be displayed as output.

    view_config


    The view_config command will show a paginated view of the current cn-config.yaml file.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    ⚙️ Troubleshooting

    check_versions


    With the check_versions command, nodectl will go out and review the latest versions of both Constellation Network Tessellation and nodectl.

    nodectl will review the current GitHub repo and compare it to the versions running on the node.

    It will report back True or False based on whether the versions match.

    Command
    Shortcut
    Version
    Output Header
    Description

    Examples

    • Help menu

    • Execute the check_versions command

    display_snapshot_chain


    The display_snapshot_chain command is an advanced command that will review your node's snapshots and verify that every snapshot hash has an accompanying hard link to the ordinal that it is associated with. If you have an invalid snapshot chain, your node will not function properly.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    logs


    The logs command will print out the contents of the logs that have been requested.

    Command
    Alias
    option
    parameters
    description
    required

    Syntax:

    Log Types

    Log Name

    Example

    • Request to follow the log app.log from the dag-l0 profile filtering out the word "error" from each line.

    • Request to view the nodectl logs

      • The nodectl log is a command request that carries an exception. This request to view the logs does not take the -p <profile> option.

    prepare_file_download


    This command instructs nodectl to prepare your p12 keystore or another file of your choosing to be downloaded directly by the Node Administrator’s non-root account. This is a useful command for backup procedures.

    Your p12 file(s) or the specified file will be located, copied to the root (beginning) of the Node Administrator’s user directory, and have its permissions changed to allow retrieval directly from the Node Administrator’s account.

    Nodes built with recommended security practices cannot retrieve a p12 file or other files created by nodectl using the non-root user. This command provides a solution to this restriction.

    Command
    Version
    option
    parameters
    description
    required

    Recommended

    --cleanup

    It is highly recommended to use the --cleanup <path_to_file> command once you have completed downloading the requested file.

    This is especially important when handling p12 keystore files, as they should be kept secure.

    When --cleanup is used with --type p12, you do not need to specify the p12 file names; nodectl will automatically remove all p12 files from the local Administrator’s root directory.​

    Examples

    • Show the help screen

    • Move all known p12 files to the root of the Node Administrator's user and update permissions for access.

    • Move only p12 files associated with the profile dag-l0 to the root of the Node Administrator's user and update permissions for access.

    • Migrate a file called mylogs.tar.gz that is located in the /var/tessellation/uploads for download from the root of the Node Administrator's user directory.

    • Remove the p12 files associated with all profiles including global.

    • Remove the file named mylogs.tar.gz that is located in the Node Administrator's home username's directory.

    send_logs


    The send_logs command is a tool to allow uploading of logs to help debugging analysis. It may be used to help accumulate log files to send to Administrators, Developers or System Engineering to dissect; to improve the code base.

    The command will upload to a file share service with an expiry date for download.

    During the execution you will be offered a menu to upload:

    • current logs

      • singular - will offer a choice of nodectl or app log.

      • all - will offer ability to accumulate and upload all logs including rolling and archived logs.

    Once you follow the prompts a tarball gzip file will appear in the uploads directory and the system will offer you the ability to upload the results to the a public (non Constellation Network supported) file transfer service.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    Examples

    • Help screen

    • Execute a log preparation for upload

    show_dip_error


    The show_dip_error command is designed to help identify the root cause error that was logged prior to the node being placed in a state where it is stuck in WaitingForDownload.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    Examples

    • Help screen

    • Execute show_dip_error.

    show_profile_issues


    The show_profile_issues command is designed to help identify possible causes for connection errors. It will review the node's log file and attempt to categorize the resulting errors in the order of importance.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    Result Header Descriptions

    Result Header
    Description

    Examples

    • Help screen

    • Execute show_profile_issues.

    show_service_log


    The show_service_log command is designed to help identify possible causes for service errors. It will review the node's service file log file of a given profile.

    This command will search the Debian distribution based journal specifically for the service logs associated with the requested profile which launches to allow the profile to connect to its configured cluster.

    Command
    Shortcut
    Version
    option
    parameters
    description
    required

    Examples

    • Help screen

    • Execute show_service_log of a profile by the name of dag-l0.

    show_service_status


    The show_service_status command will review the processes running on the node, and display their current known state.

    Command
    Shortcut
    Version

    This command does not accept any options.

    Result Header Descriptions

    Result Header
    Description

    Status Code Descriptions

    Result Header
    Description

    Status Descriptions

    Result Header
    Description

    Examples

    • Help screen

    • Execute show_service_status.

    -p is the option (profile selector)

  • dag-l0 is the parameter (the profile you want to review)

  • status

    display the auto_restart and auto_upgrade feature status

    no

    check_pid

    display the process ID of the process that is currently running the auto_restart feature.

    no

    --auto_upgrade

    enable the auto_upgrade feature with the auto_restart service. Must be accompanied by the enable option.

    no

    passphrase requirement

    wfd

    WaitingForDownload State

    wfr

    WaitingForReady State

    dip

    DownloadInProgress State

    ob

    Observing State

    Ready

    l

    Leaving State

    o

    Offline State

    ar

    ApiNotReady State (nodectl only)

    anr

    ApiNotResponding State (nodectl only)

    The IP of your node (edge) : 10.2.2.2
  • The IP of another node (other) : 10.3.3.3

  • The IP of another node (other) : 10.4.4.4

  • Help menu

  • --id

    <node_id>

    nodectl will check the node ID supplied instead of the localhost.

    no

    --brief

    Offer output in a more simplified form.

    no

    --file

    <path_to_csv_file>

    option is requested the consensus will be checked against the file that contains at least one node ID public key or multiple node IDs formatted in one line per node ID public key. The --file command cannot coincide with the -w option.

    no

    --restart

    Once the Starchiver-Extractor is complete, automatically restart the node's profile.

    no

    number of nodes in DownloadInProgress state
  • number of nodes in WaitingForReady state

  • number of nodes in Ready state

  • ATH

    All Time High price of the token

    -c

    None

    count the peers on the network.

    no

    -np

    None

    no pagination.

    no

    --csv

    None

    create csv (comma separated values) output file instead of print out to the screen.

    no

    --output

    <file_name>

    requires --csv --> this can only be a filename. If you would like to have your output saved to an alternate location, you can update the configuration file's upload location, via the configure command.

    no

    --basic

    None

    show only the ip address and public port.

    no

    --extended

    None

    show full node ID and dag address.

    no

  • abcd1234....efgh4567

  • DAG wallet (shortened)

    • DAG12345...78910111

  • o

    Offline State

    -np

    None

    no pagination.

    no

    --csv

    None

    create csv (comma separated values) output file instead of printing output to the screen.

    no

    --output

    <file_name>

    requires --csv --> this can only be a filename. If you would like to have your output saved to an alternate location, you can update the configuration file's upload location, via the configure command.

    no

    Current Session

    What is the session number being reported on the cluster.

    Found Session

    What is the session number seen by the node. If it does not match the Current Session, the node is not properly connected to the actual cluster.

    On Network

    Shows True or False if the node is found on the cluster.

    This feature updates the package lists to ensure the VPS's Linux distribution is aware of the latest available packages, followed by upgrading and installing any necessary elements.

    The apt update and apt upgrade commands will be executed through nodectl, eliminating the need for the user to run them directly from the Linux distribution.

    -b

    if the brief option is included a detailed view of the wallet transactions will be excluded from the command's output.

    no

    -np

    By default, the dag command will paginate the output, the -np flag will force no pagination during command output printing.

    no

    --csv

    Export the file to default dated file name to the default uploads (see configuration file) or based on the --output option (below).

    no

    --output

    <file_name>

    requires --csv --> this can only be a filename. If you would like to have your output saved to an alternate location, you can update the configuration file's upload location, via the configure command.

    no

    $DAG Price

    Current value of a $DAG token in USD

    -cb

    automatically c)onfirm that we understand the location of the b)ackup and that it was backed up. nodectl wants to make sure you know that there is a copy of your configuration on the node for security purposes.

    no

    -n

    enter directly into new configuration mode.

    no

    --confirm

    Auto confirm default options.

    optional

    --override

    Install nodectl over itself, do not remove existing files prior to installation.

    optional

    --username

    <user_name>

    Setup your new node with the supplied username verses the default username of nodeadmin.

    optional

    --user-password

    <string>

    Setup your new node with the following VPS username password. You will not be prompted for it during the installation.

    optional

    --p12-name

    <string>

    Setup your new node with the following p12 keystore name, verses the default p12 name of nodeadmin.p12.

    optional

    --p12-passphrase

    <string>

    Setup your new node with the following p12 keystore passphrase. You will not be prompted for it during the installation.

    optional

    --p12-alias

    <string>

    Setup your new node with the following p12 keystore alias, verses the default alias of nodeadmin-alias.

    optional

    --p12-destination-path

    <path-to-directory>

    Setup your new node to place the newly created p12 keystore in the fully qualified path location provided, verses the default location equal to /home/<username>/tessellation/.

    optional

    --p12-migration-path

    <path-to-directory-and-file>

    Setup your installation to migrate in an existing p12 keystore file. This should include the full path to the file and the file name

    optional

    --ni

    When used in conjunction with a required option, this will force the feature into non-interactive mode by-passing any questions and instead using the default options/answers

    no

    -f

    follow the log line by line. As a new line is added to the log during execution of user or program initiated elements that might print to the log file being monitored. To cancel out of the "-f" command you will simultaneously press and hold the control ctrl key on your keyboard and press the c key.

    no

    --cleanup

    file <path/tofile>

    The option is recommended to be used after the file has been properly downloaded and can now be removed from the local system administrators account. If used with the --type p12 this command does not need the <path_to_file> and will remove all p12 files located in the root of the Node Administrator's home directory.

    no

    backup logs
  • specific date logs

  • date range logs

  • archived logs

  • getting_started

    None

    >v2.14.0

    -p

    <profile_name>

    starts the service related to the profile name supplied.

    yes

    -p

    <profile_name>

    stops the service related to the profile name supplied.

    yes

    --leave | -l

    none

    You may use -l or the long option --leave to force a leave against a cluster (recommended) in the event that the profile's cluster is in a state where it is recommended to leave the cluster first.

    no

    -p

    <profile_name> | all

    restarts the service related to the profile name in question.

    yes

    --slow-restart

    functions similarly to the restart command, but with a deliberate 10-minute delay (600 seconds) built into the process.

    The --slow_restart is designed to help resolve issues where a node is:

    • Stuck in an undesirable or unstable state

    • Unresponsive to cluster activity

    • Experiencing other unexpected behavior.

    no

    --restart-only

    Noe

    Use --restart_only when you want to restart a profile’s service without immediately rejoining the cluster. This is useful for performing maintenance or troubleshooting before re-establishing cluster participation. After execution, the profile will end in a ReadyToJoin state.

    -p

    <profile_name>

    leaves the cluster related to the profile parameter supplied.

    yes

    -p

    <profile_name>

    join the cluster related to the profile name parameter supplied.

    yes

    enable

    enable the auto_restart feature.

    no

    disable

    disable the auto_restart feature.

    no

    restart

    disable and then enable the auto_restart feature

    clean_files

    -cf

    >v2.7.x

    -t

    <log_type>

    enter the log type that is desired.

    yes

    logs

    clear logs located in the default or specified log directories. Logs command handles json_logs and archived logs.

    uploads

    clear uploads located in the default or specified log directories.

    backups

    clear backups located in the default or specified log directories.

    check_minority_fork

    -cmf

    >v2.12.0

    -p

    <profile_name>

    which cluster related to the profile name in question do we want to review.

    yes

    check_connection

    -cc

    >v1.x.x

    -p

    <profile_name>

    which cluster related to the profile name in question do we want to review.

    yes

    -s

    <ip_address or hostname>

    identify a source node to use specifically by the check_connection command, to test against the edge node.

    no

    -e

    <ip_address or hostname>

    identify an edge node to compare against the source node.

    *

    Indicates the ip searched against was either the edge and source ip

    i

    Initial State

    rtj

    ReadyToJoin State

    ss

    StartingSession State

    s

    SessionStarted State

    rtd

    ReadyToDownload State

    check_consensus

    -con

    >v2.12.0

    -p

    <profile_name>

    which cluster related to the profile name in question do we want to review.

    no

    -s

    <ip_address>

    nodectl will check the ip address supplied instead of the localhost.

    no

    -w

    <seconds>

    watch mode: nodectl will continuously check if the node is in consensus every X seconds, until the q if hit to exit watch mode.

    check_source_connection

    -csc

    >v1.x.x

    -p

    <profile_name>

    which cluster related to the profile name in question do we want to review.

    yes

    Full Connection

    Both the source node picked by nodectl and the local edge node that executed the check_source_connection command can see each other True or cannot False.

    Profile

    The profile that this command was run against.

    Source -> State

    Can the SOURCE node see the edge node True or False. The source node's state is in Ready state.

    Edge -> State

    Can the EDGE node see itself True or False. The edge node's state is in Ready state.

    check_seedlist

    -csl

    >v2.x.x

    -p

    <profile_name>

    related to the profile to verify access permissions.

    yes

    -id

    <node_id>

    node ID of the node you would like to verify seed list participation (if not local to the node)

    no

    ip address

    The ip address of the node in question

    p12 filename

    The name of the p12 file on the local node

    p12 location

    The location of the p12 file on the local node

    node ID

    The p12 public key ( node ID ).

    node ID found on seed list

    This will be a True or False. In the event of a False please contact an administrator on the Constellation Network official Discord server.

    chcheck_seedlist_participation

    -cslp

    >2.7.x

    -p

    <profile_name>

    related to the profile to verify access permissions.

    yes

    -t

    <seconds>

    How long would you like to sniff each of the TCP ports found? default 10 seconds.

    no

    console | mobile

    >v2.15.0

    download_status

    -ds

    >v2.10.0

    -p

    <profile_name>

    monitor the cluster that relates to the requested profile.

    no

    --estimate

    This is a develper_mode option that will attempt to estimate how much time is left before the DownloadInProgress stage may complete.

    no

    execute_starchiver

    >v2.13.0

    -d

    Delete all snapshots before continuing.

    no

    -o

    Override any snapshots as necessary.

    no

    --datetime

    <datetime_stamp>

    If you do not include a parameter after the --datetime option, Starchive-Extractor will automatically attempt to determine what date and time is best to begin the archival downloads. Omitting a <datetime_stamp> is recommended.

    find

    >v1.x.x

    -s

    <source_node>

    Node on the cluster you want to use to lookup other nodes.

    no

    -t

    <target_node>

    Node on the cluster (ip address, hostname, or node ID) you want to look up on the cluster.

    no

    ok

    Falls within normal operating parameters

    low

    Falls outside of normal operating parameters - minimum

    warn

    Falls outside of normal operating parameters - upper threshold

    15M CPU

    Average usage of CPU over 15 minute intervals.

    Disk Usage

    How much hard drive (DISK) space is in use.

    Uptime Days

    How long the operating system has been running since the last boot/reboot.

    Memory

    RAM usage.

    Swap

    SWAP space HD usage.

    Profile Name

    Name of the profile on display as defined by the cn-config.yaml.

    Profile Description

    Node Operator defined description of the profile.

    Public API TCP

    The TCP port configured that is open to the public for API calls.

    P2P API TCP

    The TCP port configured that is used for gossip peer to peer API communications.

    CLI API TCP

    The TCP port configured that is used for internal API calls only.

    Rank

    Ranking 1 Best, > x+1 Worst

    Name

    Token name

    Symbol

    Token symbol

    Price

    Current price at time of execution.

    Market Cap

    Market Capitalization

    Total Supply

    Total supply of tokens

    -p

    <profile_name>

    The profile name to review in order to locate the latest downloaded snapshot.

    yes

    -p

    <profile_name>

    review the cluster that relates to the requested profile.

    yes

    -t

    <target_node>

    Node on the cluster (ip or hostname) that you would like to use as your target (The node to use as reference.) for finding peers.

    no

    --state

    <dip, ob, wfd, wfr, wfo, wfd>

    filter the peers output to only nodes that are in the requested cluster state: dip: DownloadInProgress, ob: Observing, wfr: WaitingForReady, wfo: WaitingForObserving, wfd: WaitingForDownload

    *

    Indicates the ip found was either the edge and source ip as indicated by the -t option or the node that was randomly selected when the command was executed.

    i

    Initial State

    rtj

    ReadyToJoin State

    ss

    StartingSession State

    l

    Leaving State

    s

    SessionStarted State

    $DAG

    Constellation Network

    $LTX

    Lattice Exchange

    $DOR

    Dor Technologies

    $BTC

    Bitcoin

    $ETH

    Ethereum

    $QNT

    check_source_connection

    -rtb

    >v1.x.x

    quick_status

    -qs

    >2.9.x

    -p

    <profile_name>

    supply profile name parameter to show quick_status.

    no

    -w

    <seconds>

    watch command. will continuously check the status of your node until q is pressed. Note: You should not use the ctrl-c to exit as it may cause your keyboard to stop echoing output to your terminal. If this does happen, you can simply exit the terminal session and log back in to correct the display issues.

    no

    Log Errors

    How many ERROR statements were found.

    Access Accepted

    Count of how many logins were requested and accepted.

    Access Denied

    Count of how many Invalid logins were found.

    Max Exceeded

    Count of how many Invalid logins were blocked due to excessive attempts.

    Port Range

    What the minium and maximum port range for the denied attempts were identified.

    Since

    The creation date of the last auth.log that was reviewed.

    show_cpu_memory

    -scm

    >v2.13.x

    CURRENT CPU

    The averaged results of all iterations.

    CURRENT MEMORY

    The averaged results of all iterations.

    CPU

    Is there a PROBLEM with the CPU utilization or is the utilization OK

    MEMORY

    Is there a PROBLEM with the memory utilization or is the utilization OK

    THRESHOLD

    The current percentage that may be utilized on the system before changing the value of the CPU or MEMORY header from OK to PROBLEM.

    Individual Iterations Results

    Static values found before averaging the results

    show_current_rewards

    -scr

    >v2.x.x

    -p

    <profile_name>

    review the cluster related to the profile name in question.

    yes

    -w

    <dag_wallet_address>

    DAG wallet on the cluster. Use this option if you are interested in an alternative node that is not the local node.

    no

    -s

    <snapshot_history_size>

    default: 50, The amount of snapshots to review.

    show_node_proofs

    -snp

    >v2.10.x

    -p

    <profile_name>

    which profile are you attempting to display the current node proofs from.

    required

    -ni | --ni

    none

    By default, the dag command will paginate the output, the -np flag will force no pagination during command output printing.

    no

    show_node_states

    -sns

    >2.x.x

    ApiNotReady

    ar

    shown if nodectl can not reach the node's internal API server.

    ApiNotResponding

    anr

    show if the node running Tessellation is unable to send or receive API requests.

    SessionNotFound

    snf

    shown if nodectl can not read the node's session via the internal API server.

    SessionIgnored

    si

    shown if nodectl is not online and there is not a session to display.

    status

    -s

    >1.x.x

    -p

    <profile_name>

    supply profile name parameter to show status.

    no

    -w

    <seconds>

    watch command. will continuously check the status of your node until q is pressed. Note: You should not use the ctrl-c to exit as it may cause your keyboard to stop echoing output to your terminal. If this does happen, you can simply exit the terminal session and log back in to correct the display issues. Available in version >v2.9.0

    no

    Service

    What is the status of the service that runs this profile.

    Join State

    The state that the node is seen by the cluster when online.

    Profile

    Which profile is being reported on.

    Public API TCP

    The TCP port configured that is open to the public for API calls.

    P2P API TCP

    The TCP port configured that is used for gossip peer to peer API communications.

    CLI API TCP

    The TCP port configured that is used for internal API calls only.

    sync_node_time

    >2.14.x

    -v

    none

    Sync the node's time in verbose mode.

    no

    update_seedlist

    -usl

    v2.x.x

    -p

    <profile_name>

    which profile are you seeking the update seed list.

    yes

    update_version_object

    v2.x.x

    -v

    This option can be used to verify that the contents of the versioning object is valid and contains the proper key pair values..

    optional

    --force

    The version object will not be updated if it has already been updated within the last 2 minutes from when the command was issued. If the --force option is utilized, the version object file will be forced to update regardless of timing.

    optional

    --print

    This option will print the contents of the version object to the console.

    PULBIC KEY

    The publicly available key used to decrypt the signature file that was created by a private key. The private key is owned by Constellation Network and not available or accessible.

    BINARY HASH

    The hash created by using the public key to hash the nodectl binary.

    DIGITAL SIGNATURE

    A copy of the hash value that should be identical to the BINARY HASH if the nodectl binary is valid.

    VERIFICATION RESULT

    This will either be a green success or red failure.

    --port

    <port number>

    Which port number would you like to change your SSH port for use?

    yes

    warm boot

    restart your entire system via software

    cold boot

    physical start and stop of your Server or VPS

    upgrade_vps

    v2.14.x

    --ni

    Issue an upgrade in non-interactive mode. nodectl will not ask any questions and will automatically select the default recommended options. This does not apply to options marked in purple boxes.

    no

    --reboot

    Force nodectl to reboot the node (if required) without interaction from the Node Operator.

    no

    uptime

    v2.14.x

    -p

    <profile_name>

    The profile to review the uptime parameters from.

    no

    Cluster

    How long the cluster the profile(s) are connected to has been up.

    Node

    How long has the node been on the cluster for the given profile(s).

    System

    How long has the VPS been up and running.

    -p

    <profile_name>

    In order to use the -id option, nodectl will need to know which profile to review the node ID from.

    no

    -id

    <full_node_id>

    p12 public key node ID to lookup.

    no

    create_p12

    >v2.12.0

    --file

    <string>

    What would you like to call the new p12 keystore file?

    no

    --location

    <file_path>

    which profile are you seeking the update seed list.

    no

    -p

    <profile_name>

    which profile are you seeking the wallet information from.

    yes

    -w

    <dag_wallet>

    retrieve remote by target wallet address.

    no

    --balance

    Noe

    show balance of DAG wallet only

    IP ADDRESS

    External IP address of the node

    P12 Filename

    Name of the p12 private key file that details were extracted from

    P12 Location

    Directory location of the p12 file that details were extracted from

    DAG Address

    DAG address extracted from the p12 file requested

    $DAG Balance

    Balance of DAG tokens found connected to this wallet

    $USD Value

    $DAG Balance converted to USD

    Timestamp

    The snapshot timestamp

    Ordinals

    The ordinal of the snapshot

    Rewards

    $DAG reward found for this wallet in the snapshot data

    Total Rewards

    Accumulation of the rewards found during this period of time

    -p

    <profile_name>

    which profile are you seeking the private key from.

    yes

    nodeid

    id

    >v2.x.x

    -p

    <profile_name>

    which profile are you seeking the nodeid from.

    yes

    -t

    <ip_address

    retrieve remote by target IP address.

    no

    -l

    Display the node ID in long format.

    None

    <node_id>

    128 byte node ID (public key) to derive DAG wallet from.

    yes

    show_p12_details

    -spd

    >v2.12.x

    -p

    <profile_name>

    which profile are you seeking the private keystore details from.

    yes

    -a

    enable advanced mode.

    no

    -e

    enter directly into edit configuration mode for existing configurations.

    no

    -ep

    enter directly into edit profile configuration mode for existing configurations. >v2.9.0

    --normal

    If this option is supplied, during the interactive installation process, nodectl will skip the request to utilize the --quick-install option and confirm a normal installation only.

    optional

    --quick-install

    If this option is supplied, during the interactive installation process, nodectl will skip the request to utilize the --normal option and confirm a quick-install installation only.

    optional

    --cluster-config

    mainnet, integrationnet, testnet, dor-metagraph-mainnet

    Setup your new node to connect with one of the several pre-defined configurations.

    ipv6

    >v2.15.x

    status

    Show the status of the IPv6 network stack on the VPS.

    yes

    enable

    Enable IPv6 on the VPS.

    yes

    disable

    Disable IPv6 on the VPS.

    -w

    watch mode. This creates an upgrade that is less verbose, and saves time by not forcing the Node Operator to wait for all peer to peer connections to be established, instead once the node reaches a state where it is able to participate on the network, nodectl will skip watching for the remaining peers to connect and simply and safely continue the upgrade process, therefore saving time.

    no

    --pass

    <passphrase>

    If the Node Operator chose to hide their passphrase by excluding it from the configuration file, you will need to supply it at the command line using this option.

    no

    --ni

    Non-Interactive. If you want to use the upgrade command with all the defaults chosen, nodectl will not ask any interactive questions.

    upgrade_nodectl

    N/A

    >v2.7.x

    -v

    <version>

    statically set the version you would like to upgrade or downgrade to.

    no

    upgrade_path

    -up

    >v2.7.x

    validate_config

    -val

    >v2.7.x

    view_config

    -vc

    >v2.7.x

    -np

    By default, the view_config command will paginate the output, the -np flag will force no pagination during command output printing.

    no

    check_versions

    -cv

    >v2.x.x

    Tess installed

    What version of Tessellation was found on the node.

    Tess latest

    What version of Tessellation was found in the current repository.

    Tess version match

    Does the node match up to the repository?

    nodectl installed

    What version of nodectl was found on the node.

    nodectl latest

    What version of nodectl was found in the current repository.

    nodectl version match

    Does the node match up to the repository?

    display_snapshot_chain

    >v2.14.0

    -p

    <profile_name>

    Identify the appropriate layer0 profile to check against. nodectl will offer a list of known profiles if not supplied.

    no

    -y

    automatically confirm the request to check the snapshot chain

    no

    logs

    log

    -p

    <profile_name>

    The name of the profile. This is important because (for example) the app.log shares the same log name for each profile. The Node Operator will need to specify which profile to review.

    yes

    -l

    <log_name>

    Name of the log that you would like to review. see log types

    yes

    -g

    <word>

    filter out (grep) the word <word>. This is case insensitive.

    app

    http

    nodectl

    prepare_file_download

    >v2.14.x

    --type

    <p12_file>

    This option will locate all p12 files associated with your node. If the optional -p parameter is included with the command, only the p12 associated with the profile requested will be moved and setup for access.

    yes

    file <path/tofile>

    This option will locate the file on our node identified by the succeeding path, move the file, and setup access.

    yes

    -p

    <profile_name>

    Used in conjunction with the --type p12 option, this will allow you to retrieve the p12 file associated specifically with the profile requested.

    send_logs

    -sl

    >v2.x.x

    -p

    <profile_name>

    which profile are you attempting to glean logs from.

    no

    show_dip_error

    -sde

    >v2.10.x

    -p

    <profile_name>

    which profile are you attempting to glean logs from.

    required

    show_profile_issues

    None

    >v2.14.x

    -p

    <profile_name>

    Which profile are you attempting review for issues.

    yes

    Profile

    profile used to lookup error(s).

    Error

    What error was found?

    Possible Cause

    What is the most common or likely reason for this error?

    Result

    Possible result of this error message.

    Time

    Timestamp of the error in question.

    show_service_log

    None

    >v2.14.x

    -p

    <profile_name>

    Which profile are you attempting review service issues.

    yes

    show_profile_status

    None

    >v2.14.x

    Owner

    What profile on the node owns the process being displayed.

    PID

    Process ID of the service as assigned by the Debian systemd system manager, used to handle the logging and various utilities for the assigned process.

    Status Code

    The code returned by the systemd manager. These codes can be standard codes or custom codes for a particular process in use.

    Status

    Human friendly translation of the status code.

    0

    What profile on the node owns the process being displayed.

    256

    Process exited with error.

    768

    Process not running.

    active

    running.

    inactive

    not running (dead).

    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    Starchive-Extractor
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​
    ​

    no

    no

    no

    no

    no

    no

    Quant Network

    no

    optional

    no

    no

    no

    optional

    yes

    no

    no

    no

    sudo nodectl <command> <option>
    sudo nodectl status -p dag-l0
    sudo nodectl status -p dag-l0
    sudo nodectl peers -np
    sudo nodectl -option1 parameter1 -option2
    sudo nodectl -option2 -option1 parameter1
    sudo nodectl getting-started  
    sudo nodectl help
    NODECTL INSTALLED: [v2.7.1]
    TESSELLATION INSTALLED: [v2.8.0]
    Code Name: Princess Warrior
    ----------------------
    sudo nodectl status help
    sudo nodectl start -p dag-l0 help  
    sudo nodectl start -p dag-l0
    sudo nodectl stop help 
    sudo nodectl stop -p dag-l0
    sudo nodectl stop -p dag-l0 --leave
    sudo nodectl restart -p dag-l0 help  
    sudo nodectl restart -p all
    sudo nodectl restart -p dag-l0
    sudo nodectl restart --restart-only -p dag-l0
    sudo nodectl leave -p dag-l0 help  
    sudo nodectl leave -p dag-l0
    sudo nodectl join -p dag-l0 help  
    sudo nodectl join -p dag-l0
    sudo nodectl configure -e -cb -d
    sudo nodectl auto_restart help
    sudo nodectl auto_upgrade help
    sudo nodectl auto_restart enable
    sudo nodectl auto_restart enable --auto_upgrade
    sudo nodectl auto_restart disable
    sudo nodectl auto_restart restart
    sudo nodectl auto_restart check_pid
    sudo nodectl auto_restart status
    sudo nodectl clean_files help
    sudo nodectl clean_files -t logs
    sudo nodectl -cf -t logs
    sudo nodectl check_minority_fork help 
    sudo nodectl -cmf help 
    sudo nodectl check_minority_fork -p dag-l0
    sudo nodectl check_connection help 
    sudo nodectl check_connection -p dag-l0
    sudo nodectl check_connection -p dag-l0 -e 10.3.3.3
    sudo nodectl check_connection -p dag-l0 -s 10.3.3.3 -s 10.4.4.4
    sudo nodectl check_consensus help 
    sudo nodectl -con help 
    sudo nodectl check_consensus -p dag-l0
    sudo nodectl check_consensus -p dag-l0 -s 10.10.10.10  
    sudo nodectl check_consensus -p dag-l0 --file /tmp/test.csv  
    sudo nodectl check_consensus -p dag-l0 --brief  
    sudo nodectl check_consensus -p dag-l0 --brief -w 120  
    States: Initial, ReadyToJoin, StartingSession, SessionStarted,                                         
            ReadyToDownload, WaitingForDownload, DownloadInProgress, Observing, 
            WaitingForReady, WaitingForObserving, Ready, Leaving, 
            Offline, ApiNotReady, SessionIgnored, SessionNotFound, 
              
    Source: Server this node is joined to
            Edge: This node
    
    Note: If the SOURCE is on a different network it will show ApiNotReady
    
    FULL CONNECTION              PROFILE                                                                   
    True                         dag-l0                     
    SOURCE -> STATE              EDGE -> STATE              
    True | Ready                 True | Ready               
      
    Node restart service does not need to be restarted because pid
    [4157840] was found already. 
    sudo nodectl check_source_connection help
    sudo nodectl check_source_connection
    sudo nodectl check_seedlist help
    sudo nodectl check_seedlist
    sudo nodectl check_seedlist_participation help
    sudo nodectl check_seedlist_participation -p <profile_name>
    sudo nodectl execute_starchiver help
    sudo nodectl execute_starchiver -p <profile_name> --datetime --restart
    sudo nodectl find help
    sudo nodectl find -p <profile_name>
    sudo nodectl find -p <profile_name> -s <source_ip_host>
    sudo nodectl find -p <profile_name> -s <source_ip_host> -t <target_ip_host>
    sudo nodectl find -p dag-l0 
    sudo nodectl find -p dag-l0 -s 10.2.2.2 -t 10.1.1.1
    sudo nodectl find -p dag-l0 -t <node ID>
    sudo nodectl find -p dag-l0 -s 10.2.2.2
    sudo nodectl find -p dag-l0 -s 10.2.2.2 -t 10.1.1.1
    sudo nodectl find -p dag-l0 -s self -t 10.2.2.2
    sudo nodectl find -p dag-l0 -s 10.2.2.2 -t self
    sudo nodectl find -p dag-l0 -s 10.2.2.2 -t 10.1.1.2
    sudo nodectl health help
    sudo nodectl health
    sudo nodectl list help
    sudo nodectl list
    sudo nodectl node_last_snapshot -p dag-l0 help  
    sudo nodectl node_last_snapshot -p dag-l0
    sudo nodectl peers help
    sudo nodectl peers -p <profile_name>
    sudo nodectl peers -p <profile_name> -t self
    sudo nodectl peers -p <profile_name> -t <ip_address or hostname>
    sudo nodectl peers -p <profile_name> -c
    sudo nodectl peers -p <profile_name> -t <ip_address or hostname> -c
    sudo nodectl peers -p dag-l0
    sudo nodectl peers -p dag-l0 --basic
    sudo nodectl peers -p dag-l0 --extended
    sudo nodectl peers -p <profile_name> --csv
    sudo nodectl peers -p <profile_name> --csv --output test.csv
    sudo nodectl price help
    sudo nodectl price
    sudo nodectl refresh_binaries help
    sudo nodectl refresh_binaries
    sudo nodectl quick_status help  
    sudo nodectl quick_status
    sudo nodectl quick_status -p dag-l0
      LOG ERRORS          ACCESS ACCEPTED     ACCESS DENIED       MAX EXCEEDED        PORT RANGE
      10                  31                  41                  39                  1024-4000
    sudo nodectl sec help
    sudo nodectl sec
    sudo nodectl show_cpu_memory help
    sudo nodectl -scm help
    sudo nodectl show_cpu_memory
    sudo nodectl show_current_rewards help
    sudo nodectl -scr help
    sudo nodectl show_current_rewards
    sudo nodectl show_current_rewards -p <profile_name>
    sudo nodectl show_current_rewards -w <dag_address>
    sudo nodectl show_current_rewards --csv
    sudo nodectl show_current_rewards --csv --output test.csv
    sudo nodectl show_node_proofs help
    sudo nodectl -snp help
    sudo nodectl show_node_proofs -p <profile_name>  
    sudo nodectl -snp -p <profile_name>  
    sudo nodectl show_node_proofs -p <profile_name> --ni 
    sudo nodectl -snp -p <profile_name> --ni 
    sudo nodectl show_node_states help
    sudo nodectl show_node_states
    sudo nodectl -sns
    sudo nodectl status help  
    sudo nodectl status
    sudo nodectl status -p dag-l0
    sudo nodectl sync_node_time help
    sudo nodectl sync_node_time
    sudo nodectl sync_node_time -v
    sudo nodectl update_seedlist help
    sudo nodectl update_seedlist
    sudo nodectl update_version_oject help
    sudo nodectl update_version_object --force  
    sudo nodectl update_version_object -v  
    sudo nodectl update_version_object --print
    sudo nodectl verify_nodectl
    sudo nodectl change_ssh_port help
    sudo nodectl change_ssh_port --port 4242
    sudo nodectl disable_root_ssh
    sudo nodectl enable_root_ssh
    sudo nodectl reboot help
    sudo nodectl reboot
    sudo nodectl upgrade_vps help
    sudo nodectl upgrade_vps
    sudo nodectl upgrade_vps --ni
    sudo nodectl upgrade_vps --reboot
    sudo nodectl uptime help
    sudo nodectl uptime
    sudo nodectl uptime -p dag-l0
    sudo nodectl whoami help
    sudo nodectl whoami
    sudo nodectl whoami -p <profile> -id <node_id>
    sudo nodectl create_p12 help
    sudo nodectl create_p12  
    sudo nodectl create_p12 --file test.p12 --location /tmp/my_new_p12_files/  
    sudo nodectl dag -p dag-l0 help  
    sudo nodectl dag -p dag-l0
    sudo nodectl dag -w DAG0911111111111111111111111111111111111 -p dag-l0
    sudo nodectl dag -p dag-l0 -b
    sudo nodectl dag -p dag-l0 -np 
    sudo nodectl export_private_key help
    sudo nodectl export_private_key -p <profile_name>
    sudo nodectl nodeid help  
    sudo nodectl nodeid
    sudo nodectl nodeid -t 113.113.113.113
    sudo nodectl nodeid2dag help
    sudo nodectl nodeid2dag <node_id>
    sudo nodectl passwd12 help
    sudo nodectl passwd12
    sudo nodectl show_p12_details help
    sudo nodectl show_p12_details -p dag-l0
    sudo nodectl -spd -p dag-l0
    sudo nodectl configure help 
    sudo nodectl configure  
    sudo nodectl configure -n  
    sudo nodectl configure -e  
    sudo nodectl configure -a -e  
    sudo nodectl configure -a -e -cb
    sudo nodectl install  
    sudo nodectl install --normal  
    sudo nodectl install --quick-install
    sudo nodectl install --user bob --password mypassword
    sudo nodectl install --quick-install --user bob --password mypassword
    sudo nodectl install --quick-install --user bob --password mypassword --p12-name myp12name.p12 --p12-passphrase myp12passphrase --p12-alias myp12aliasname
    sudo nodectl install --quick-install --user bob --password mypassword  --p12-passphrase myp12passphrase --p12-alias myp12aliasname --p12-migration-path /home/ubuntu/myp12migrationfile.p12
    sudo nodectl ipv6 help  
    sudo nodectl ipv6 status
    sudo nodectl ipv6 enable
    sudo nodectl ipv6 disable
    sudo nodectl restore_config help  
    sudo nodectl restore_config
    sudo nodectl uninstall help  
    sudo nodectl uninstall
    sudo nodectl upgrade_nodectl help
    sudo nodectl upgrade_nodectl
    sudo nodectl upgrade_path help
    sudo nodectl upgrade_path
    sudo nodectl check_versions help
    sudo nodectl check_versions
    sudo nodectl logs -p <profile_name> <log_name> [-g <grep_value>] [-f]
    sudo nodectl logs -p dag-l0 -l app -g error -f
    sudo nodectl logs -l nodectl
    sudo nodectl prepare_file_download help
    sudo nodectl prepare_file_download --type p12
    sudo nodectl prepare_file_download --type p12 -p dag-l0
    sudo nodectl prepare_file_download --type file /var/tessellation/uploads/mylogs.tar.gz
    sudo nodectl prepare_file_download --type p12 --cleanup
    sudo nodectl prepare_file_download --type file mylogs.tar.gz --cleanup
    sudo nodectl send_logs help
    sudo nodectl -sl help
    sudo nodectl send_logs -p <profile_name>  
    sudo nodectl -sl -p <profile_name>  
    sudo nodectl show_dip_error help
    sudo nodectl -sde help
    sudo nodectl show_dip_error -p <profile_name>  
    sudo nodectl -sde -p <profile_name>  
    sudo nodectl show_profile_issues help
    sudo nodectl show_profile_issues -p <profile_name>  
    sudo nodectl show_service_log help
    sudo nodectl show_service_log -p dag-l0
    sudo nodectl show_service_status help
    sudo nodectl show_service_status
    sudo nodectl upgrade_nodectl -v v2.15.2