Run a validator node

This guide will walk you through the process of setting up a new validator on the Atleta Network. Becoming a validator is a significant responsibility, so please follow all steps carefully.

Introduction

Validators are responsible for securing the Atleta Network by creating blocks, validating proofs from collators, and guaranteeing the finality of the chain. In return for their service, they receive staking rewards.

Warnings:

  • DO NOT expose your validator's RPC ports (e.g., 9933, 9944) to the public internet. This can create a significant security vulnerability. Use a firewall to restrict access.

  • DO NOT use your Stash or Controller account keys on a cloud-hosted virtual machine unless you are confident in its security. It is highly recommended to keep these keys in a secure, offline location.

Minimum Requirements for Validator node

To ensure stable and performant operation, your validator node must meet the following minimum specifications:

Component

CPU

x86-64/amd64; 4 physical cores @ 3.4 GHz+; SMT (Hyper-Threading) disabled.

Storage

A high-speed NVMe SSD with at least 240 GB of free space.

Memory

16 GB DDR4 ECC RAM.

Network

A stable, symmetric connection of at least 70 Mbit/s.

Step 1: System Prerequisites

Before running the node, you need to install a few essential tools.

macOS

Install curl and jq using Homebrew:

Linux (Ubuntu/Debian)

  1. Synchronize System Clock with NTP

It is critical that your validator's clock is accurately synchronized.

First, check if an NTP client is already running:

If you see System clock synchronized: yes, you are all set. If not, install the ntp package:

NTP service will start automatically. You can verify its status with:

  1. Install Utilities

Install curl and jq:

Step 2: Run the Node and Sync the Chain

You can run your node using Docker (recommended for ease of use) or by building from source.

You need to download the appropriate chain specification file for the network you want to join (e.g., testnet or mainnet).

Example for Mainnet:

Note: Please verify the URL points to the correct and latest chain specification file from the official Atleta Network repository. Avoid using URLs from temporary feature branches.

Understanding the Flags:

  • -v "/path/to/your/chain-data":"/chain-data": Mounts a local directory on your machine to store the blockchain data. Replace /path/to/your/chain-data with an actual path on your system.

  • -v "./chain-spec.testnet.json":"/chainspec.json": Mounts the downloaded chain spec into the container.

  • --base-path: Specifies the directory inside the container for storing chain data.

  • --validator: Puts the node into validator mode.

Syncing process

  • Monitor logs of your node.

  • While syncing, you will see Syncing messages.

  • This process will take a few seconds for every day the blockchain has been running.

Option 2: Buildinf from Source

(This section can be filled in with instructions on how to clone the repository and build the binary using cargo).

Monitor Syncing Process

Your node will now start syncing with the network. You can monitor its progress by observing the logs. You will see messages like Syncing #1,234,567 .... This process can take several hours depending on the chain's history and your network speed.

The node is fully synced when you see blocks being finalized at a steady pace without Syncing messages.

Step 3: Bond Funds and Set Session Keys

Once your node is fully synced, you need to bond your ATLA tokens and associate your node with your accounts.

1. Bond ATLA Tokens

To become a validator, you must bond a minimum amount of tokens. Let's assume the minimum bond is 75,000 ATLA.

  1. Navigate to the Polkadot-JS Apps interface connected to the Atleta Networkarrow-up-right.

  2. Go to the Network > Staking > Account Actions section.

  3. Click the "+ Stash" button.

  4. Stash Account: Choose your stash account (the primary account holding your funds).

  5. Controller Account: Choose your controller account (an account with a small amount of ATLA to pay for transaction fees).

  6. Value Bonded: Enter the amount of ATLA you wish to bond. Do not bond your entire balance, as you need to leave some funds free to pay for transaction fees.

  7. Click "Bond" and sign the transaction with your Stash account.

After the transaction succeeds, you will see your new stash listed under "Account Actions".

2. Generate and Set Session Keys

Session keys are short-lived keys that your node uses for consensus. You must generate them on your validator machine and submit them to the chain.

A. Generate the Keys

For this step, you must temporarily allow unsafe RPC calls. This is a sensitive operation. Ensure your node is not exposed to the public internet.

  1. If your node is running, stop it.

  2. Restart your node, but add the --rpc-methods=Unsafe flag to the command.

  3. From a terminal on the same machine as your node, run the following curl command:

The output will be a JSON object with a long hex string in the "result" field. Copy this hex string. This is your session key bundle.

B. Stop the Node and Secure It

This is a critical security step.

  1. Stop your node immediately.

  2. Restart it using your original command, ensuring the --rpc-methods=Unsafe flag is removed and replaced with --rpc-methods=Safe.

C. Submit the setKeys Transaction

  1. Go back to the Polkadot-JS Apps > Network > Staking > Account Actions.

  2. Find your stash and click the "Set Session Key" button.

  3. Paste the hex string you copied from the author_rotateKeys output into the field.

  4. Click "Set Session Key" and sign the transaction with your Controller account.

After the transaction is confirmed, your validator node is now linked to your stash.

Step 4: Signal Your Intention to Validate

The final step is to declare your candidacy for becoming a validator in the active set.

  1. In the Polkadot-JS Apps > Account Actions section, click the "Validate" button on your stash.

  2. In the pop-up window, you will need to set your Reward Commission Percentage. This is the percentage of staking rewards you will take as a fee before the rest is distributed to your nominators.

  3. Click "Validate" and sign the transaction with your Controller account.

Congratulations! You are now in the pool of waiting validators. You will be promoted to the active validator set in a future era if you have enough total stake (your bond + nominations from others) to be in the top-ranked group. You can monitor your status on the "Staking" page.

How to become a validator for Atleta Network

Last updated