Installing a Validator Node
In this tutorial, we will walk through the process of installing a validator node on the MultiversX network. As a validator node, you will play an important role in maintaining the security and reliability of the network by participating in consensus and validating transactions. By running a validator node, you will also have the opportunity to earn rewards for your contribution to the network. In this tutorial, we will guide you through the process of setting up a validator node, including the installation of the necessary software, configuration, and connection to the network. By the end of this tutorial, you will have a working validator node and be well on your way to becoming a part of the MultiversX network.
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 Mainnet, Devnet or Testnet.
Following these few steps, we will work on installing the MultiversX Network validator node to get it up and running on your local machine.
For installation, one must start the scripts by:
cd ~/mx-chain-scripts ./script.sh
After that, a menu will appear with the following options. Select the option
1 to install the node.
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
NOTE : As an alternative, the installation can be triggered by executing the following command
When asked, indicate the number of nodes you want to run, i.e.
When asked, indicate the name of your validator, i.e.
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
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/
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)
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
8081, and so on.
Update your node(s)
Upgrade your node by running the script and selecting either of these options:
10 - github_pulldownloads the latest version of the scripts
3 - upgrade
7 - start
14 - quit
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 a loss of funds.
Find them in
$HOME/elrond-nodes/node-0/config [be mindful of your “
Migration from old scripts
Before the release of the current
mx-chain-scripts, there were the
elrond-go-scripts-mainnet for setting up nodes on the testnet, devnet and mainnet respectively. Those three repositories have been deprecated because
elrond-go-scripts can be used to manage nodes regardless of their target network (
If one wants to migrate from the old scripts to the new ones, it is generally possible to do so while preserving the validator keys, current node installation, DB and logs. These are the steps to be followed:
mx-chain-scriptsrepo near the old one (
elrond-go-scripts-mainnet); assuming the old scripts were located in the home directory, run the following:
cd ~ git clone https://github.com/multiversx/mx-chain-scripts
configure the new scripts as described in the sections above;
make sure you set the new
ENVIRONMENTvariable declared within
~/mx-chain-scripts/config/variables.cfg; it must contain one of
migrate operation on the scripts:
cd ~/mx-chain-scripts ./script.sh migrate
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
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 ~/mx-chain-scripts/config nano variables.cfg
OVERRIDE_CONFIGVER option and input a value there, something like
tags/ prefix will tell the scripts to use the tag and not search a branch called
T22.214.171.124. Call the
upgrade command on the scripts to install the desired configuration version.
Resetting the value to
"" will make the scripts use the released version.
CAUTION : The
OVERRIDE_CONFIGVER is not backed up when calling