Docs

Docs

  • Develop
  • Validate
  • Integrate
  • Learn

›Install a Testnet/Devnet Node

Welcome to Elrond

  • Welcome to Elrond

Technology

  • Architecture Overview
  • Glossary
  • Entities
  • Chronology
  • Secure Proof of Stake
  • Adaptive State Sharding
  • The Elrond WASM VM
  • Cross Shard Transactions

Wallet

  • Wallets - Overview
  • Web Wallet
  • Maiar Web Wallet Extension
  • Webhooks
  • Ledger

Tokens

  • Native Tokens
  • ESDT tokens
  • NFT tokens

Validators

  • Validators - Overview
  • System Requirements
  • Install a Mainnet Node

    • Scripts & User config
    • Installing a Validator Node
    • Optional Configurations
    • How to use the Docker Image

    Install a Testnet/Devnet Node

    • Scripts & User config
    • Installing a Validator Node
    • Manage a validator node
    • How to use the Docker Image

    Manage your keys

    • Validator Keys
    • Wallet Keys
    • Protecting your keys

    Staking, Unstaking, Unjailing

    • Staking, unstaking and unjailing
    • Staking
    • Unjailing
    • The Staking Smart Contract
  • The Delegation Manager
  • Convert An Existing Validator Into A Staking Pool
  • Merging A Validator Into An Existing Delegation Smart Contract
  • Rating
  • Elrond Node upgrades
  • Node redundancy
  • Import DB
  • Node CLI
  • Node Databases
  • Useful Links & Tools
  • FAQs

Developers

  • Developers - Overview
  • Tutorials

    • Build a dApp in 15 minutes
    • Build a Microservice for your dApp
    • The Crowdfunding Smart Contract (part 1)
    • The Crowdfunding Smart Contract (part 2)
    • The Counter Smart Contract
    • Custom Wallet Connect

    Signing Transactions

    • Signing Transactions
    • Tools for signing
    • Signing programmatically

    Gas and Fees

    • Overview
    • EGLD transfers (move balance transactions)
    • System Smart Contracts
    • User-defined Smart Contracts

    Developer reference

    • The Elrond Serialization Format
    • Smart contract annotations
    • Smart contract modules
    • Smart contract to smart contract calls
    • Smart Contract Developer Best Practices
    • Code Metadata
    • Smart Contract API Functions
    • Storage Mappers
    • Rust Testing Framework
    • Rust Testing Framework Functions Reference
    • Rust Smart Contract Debugging
    • Random Numbers in Smart Contracts

    Developers Best Practices

    • Basics
    • BigUint Operations
    • The dynamic allocation problem
    • Multi-values

    Mandos tests reference

    • Mandos Overview
    • Mandos Structure
    • Mandos Simple Values
    • Mandos Complex Values
    • Embedding Mandos code in Go
  • Constants
  • Built-In Functions
  • Account storage
  • Setup a Local Testnet
  • Set up a Local Testnet (advanced)
  • Creating Wallets

SDK and Tools

  • SDKs and Tools - Overview
  • REST API

    • REST API overview
    • api.elrond.com
    • Gateway overview
    • Addresses
    • Transactions
    • Network
    • Nodes
    • Blocks
    • Virtual Machine
    • Versions and Changelog
  • Proxy
  • Elasticsearch
  • erdpy

    • erdpy
    • Installing erdpy
    • Configuring erdpy
    • erdpy CLI
    • Deriving the Wallet PEM file
    • Sending bulk transactions
    • Writing and running erdpy scripts
    • Smart contract interactions

    erdjs

    • erdjs
    • Cookbook
    • Extending erdjs
    • Writing and testing interactions
    • Migration guides
    • Signing Providers for dApps
  • erdgo
  • erdcpp
  • erdjava
  • erdkotlin
  • erdwalletjs-cli

Integrators

  • Integrators - Overview
  • EGLD integration guide
  • ESDT tokens integration guide
  • Observing Squad
  • Accounts Management
  • Creating Transactions
  • Querying the Blockchain

Installing a Validator Node

Install your node(s)

After preparing the user permissions, the script configurations, and the keys, the actual node installation can begin. The Validator script is a multi-purpose tool for managing your node, it is accessible to Devnet and Testnet Network.

  • Note: This process installs a validator node for all Elrond networks (mainnet, devnet, and testnet).

Following these few steps, we will work on installing the Elrond Network validator node to get it up and running on your local machine.

For installation use 1 - install

 ~/elrond-go-scripts/script.sh
 1) install
 2) observing_squad
 3) upgrade
 4) upgrade_squad
 5) upgrade_proxy
 6) remove_db
 7) start
 8) stop
 9) cleanup
 10) github_pull
 11) add_nodes
 12) get_logs
 13) benchmark
 14) quit
 Please select an action:1
  • When asked, indicate the number of nodes you want to run, i.e. 1
  • When asked, indicate the name of your validator, i.e. Valar
  • Quit the menu without starting (we need keys first) by using 14 - quit

Prepare your keys

Create a new folder "VALIDATOR_KEYS" to serve as a local backup when updating:

cd ~
mkdir -p ~/VALIDATOR_KEYS
    

Generate a certificate file containing your Validator key by running the keygenerator :

./elrond-utils/keygenerator
   

Copy the generated validatorKey.pem file to the config folder of your node(s), and repeat for each node.

    cp validatorKey.pem ~/elrond-nodes/node-0/config/
    
tip

Each node needs its unique validatorKey.pem file

Then copy the validatorKey.pem file - in ZIP form - to the $HOME/VALIDATOR_KEYS/ folder . This is important for your node to be able to restart correctly after an upgrade.

zip node-0.zip validatorKey.pem
mv node-0.zip $HOME/VALIDATOR_KEYS/
    

Repeat the above process for all your “n” nodes. When complete, please refer to our Key management section for instructions about how to properly backup and protect your keys.

Start the node(s)

~/elrond-go-scripts/script.sh start

Start the node visual interface

Once the node has started, you can check its progress, using the TermUI interface. Navigate to your $HOME/elrond-utils directory and start the TermUI, one for each of your nodes:

cd $HOME/elrond-utils
./termui -address localhost:8080
tip

Your first node is called node-0 and it is a REST API that will run on port 8080 by default. The next node is node-1on port 8081, and so on.

Update your node(s)

Upgrade your node by running the script and selecting either of these options:

  • 10 - github_pull downloads the latest version of the scripts
  • 3 - upgrade
  • 7 - start
  • 14 - quit
~/elrond-go-scripts/script.sh

These are the basic steps. Please carefully read the on-screen instructions, refer to the scripts readme file. You can also ask any questions in the Elrond Validators chat

Mandatory: Backup your keys

Your private keys are needed to run your node. Losing them means losing control of your node. A 3rd party gaining access to them could result in loss of funds.

Find them in $HOME/elrond-nodes/node-0/config [be mindful of your “n” nodes]

important

Create a safe backup for them on storage outside of the server running your node(s).

Migration from old scripts

Before the release of elrond-go-scripts, there were elrond-go-scripts-testnet and elrond-go-scripts-devnet for setting up nodes on testnet of devnet. If one wants to migrate from the old scripts to the new ones, these are the steps to be followed:

  • the migration is possible while preventing the keys, DB, logs and the current node installation, in general
  • just clone the elrond-go-scripts repo near the old one (elrond-go-scripts-testnet/elrond-go-scripts-testnet), configure it as stated and call the migrate operation on the scripts:
cd ~/elrond-go-scripts
./script.sh migrate

this will tell the scripts the current environment on which the previous installation was done. Be careful as to not mix the previous installation network with the new one. This might lead to unpredictable results

Choosing a custom configuration tag or branch

warning

This option should be only used when debugging or testing in advance of a pre-release tag.

Use this on your own risk!

The power of the scripts set has been leveraged with a new addition: the possibility to tell the scripts a specified tag or branch (not recommended using a branch due to the fact that an unsigned commit might bring malicious code or configs)

To accomplish this, edit the variables.cfg file

cd ~/elrond-go-scripts/config
nano variables.cfg

locate the OVERRIDE_CONFIGVER option and input a value there, something like tags/T1.3.14.0. The tags/ prefix will tell the scripts to use the tag and not search a branch called T1.3.14.0. Call the upgrade command on the scripts to install the desired configuration version.

Resetting the value to "" will make the scripts to use the released version.

warning

The OVERRIDE_CONFIGVER is not backed up when calling github_pull operation.

← Scripts & User configManage a validator node →
  • Install your node(s)
    • Prepare your keys
    • Start the node(s)
    • Start the node visual interface
  • Update your node(s)
  • Mandatory: Backup your keys
  • Migration from old scripts
  • Choosing a custom configuration tag or branch
Made withby the Elrond team.
GithubChat
Main siteWalletExplorerBridgeDocsGrowthMaiarMaiar Exchange