Run a validator node

This guide will walk you through the process of setting up a new validator on Atleta Network.

Introduction

This guide will walk you through the process of setting up a new validator on Atleta Chain.

Warnings:

  • DO NOT expose your validator RPC ports (9933/9944 by default) publicly on the internet.

Minimum Requirements for Validator node

  • CPU

    • x86-64, amd64 compatible;

    • 4 physical cores, 3.4 GHz;

    • Simultaneous multithreading disabled (Hyper-Threading on Intel, SMT on AMD);

  • Storage

    • ~240 GB of free disk space

  • Memory

    • 16 GB DDR4 ECC.

  • Network

    • The minimum symmetric networking speed is set to 70 Mbit/s.

Run a validator flow

Install and Configure

MacOS

Before running the node, you need to install curl and jq by executing:

brew install curl jq
curl --version
jq --version

Linux

NTP is a networking protocol designed to synchronize the clocks of computers over a network. NTP allows you to synchronize the clocks of all the systems within the network. Currently it is required that validators' local clocks stay reasonably in sync, so you should be running NTP or a similar service. You can check whether you have the NTP client by running:

timedatectl

If NTP is installed and running, you should see System clock synchronized: yes (or a similar message). If you do not see it, you can install it by executing:

sudo apt-get install ntp

ntpd will be started automatically after install. You can query ntpd for status information to verify that everything is working:

sudo ntpq -p

You can install curl and jq by executing:

sudo apt update && sudo apt upgrade
sudo apt install curl
curl --version
sudo apt-get install jq
jq --version

Installation | Synchronize chain data

Option 1: Using Docker

  1. Depending on the environment you're using, you'll need to replace values for ENVIRONMENT

  2. Firstly you need to download chain spec for choosing ENVIRONMENT

curl \
    -o chain-spec.testnet.json \
    https://raw.githubusercontent.com/Atleta-network/atleta/feature/180-update-chainspecs/chainspecs/chain-spec.testnet.json
docker run -it --rm \
  -v "/chain-data":"/chain-data" \
  -v "./chain-spec.testnet.json":"/chainspec.json" \
  atletanetwork/atleta-node:testnet-latest \
  --base-path /chain-data \
  --rpc-cors all \
  --unsafe-rpc-external \
  --rpc-methods=safe \
  --chain /chainspec.json \
  --allow-private-ipv4 \
  --unsafe-force-node-key-generation \
  --validator 

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.

Bond ATLA

To start a validator, you need a minimum bond [75.000 ATLA]. To join the active validator set and earn rewards, your validator must be nominated with a minimum amount of ATLA tokens.

If you're a validator looking for community nominations, you’ll need to stake some of your own ATLA to show commitment. Just be sure not to bond your entire ATLA balance, as you won’t be able to pay transaction fees from bonded funds.

First, go to the Staking section. Click on "Account Actions", and then the "+ Stash" button.

Once everything is filled in properly, click Bond and sign the transaction with your Stash account.

After a few seconds, you should see an ExtrinsicSuccess message.

Your bonded account will appear under Stashes. You should see a new card with all your accounts (you may need to refresh the screen). The bonded amount on the right shows the funds bonded by the Stash account.

Set session keys

Session keys are consennsus critical

If you're unsure whether your node has the current session keys from the setKeys transaction, you can use one of two available RPC methods to check: hasKey to verify a specific key or hasSessionKeys to check the full session key public key string.

CLI:

You need firstly restart node with flag --rpc-methods=unsafe. If you are on a remote server, it is easier to run this command on the same machine (while the node is running with the default WS RPC port configured):

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9944

The output will have a hex-encoded "result" field. The result is the concatenation of the four public keys. Save this result for a later step.

You can restart your node at this point and set --rpc-methods=safe flag.

Submitting the setkeys transaction

You need to tell the chain your Session keys by signing and submitting an extrinsic. This is what associates your validator with your staking proxy.

Go to Staking > Account Actions, and click "Set Session Key" on the bonding account you generated earlier. Enter the output from author_rotateKeys in the field and click "Set Session Key".

Submit this extrinsic and you are now ready to start validating.

Add validator

Last updated