Sever Moldovean | Elrond
4 min readDec 2, 2019

--

Installing and maintaining an Elrond node is not a trivial task and it can’t be — blockchain is hard. But automation is lovely. The 2nd version of the Elrond scripts are full of cool features which I urge you all to explore by reading the README.md part of https://github.com/ElrondNetwork/elrond-go-scripts-v2

For those of you looking to get a quick start, here are a few basic steps:

1. Backup your keys. Always.

Never lose your .pem files! Make sure they safely copied to a remote storage somewhere.

2. Start with a clean VPS or server.

For the scripts to work without issues, it’s ideal to run them on a fresh install. If you can’t (be asked), there’s a script command for that at step 4.

3. (skip this if installing for the first time) Clear old nodes with one command, then do a fresh pull

cd ~/elrond-go-scripts-v2

./script.sh cleanup

git pull

4. New server? If yes, do a clone, if no, skip to 5

cd ~

git clone https://github.com/ElrondNetwork/elrond-go-scripts-v2

5. Edit variables.cfg and change the values for CUSTOM_HOME and CUSTOM_USER.

CUSTOM_HOME refers to the home folder of the remote machines in which you will install nodes

CUSTOM_USER is the user on the remote machines under which you will run the install, upgrade and other processes

Examples:

CUSTOM_HOME=”/home/user” <- (just “/root” for root, so CUSTOM_HOME=”/root”)

CUSTOM_USER=”user”

How to find out your current user:

whoami

And you will get your username like “username”, without quotations

Now edit the config file and add the relevant user information:

cd ~/elrond-go-scripts-v2/config

nano variables.cfg

<after modifying values press CTRL-X and then choose Y)

If you want to use “root” because YOLO, make sure you put “/root” where appropriate, i.e.

CUSTOM_HOME=”/root”

CUSTOM_USER=”root”.

This is bad practice, avoid using root for running stuff!

6. Make sure your user has the proper rights

How to make sure your user is sudo capable, without asking for a password every time it executes something:

sudo visudo -f /etc/sudoers.d/myOverrides

Navigate to the end of the file and add this line, where “username” is what you got from running the “whoami” command

username ALL=(ALL) NOPASSWD:ALL

Save the file and exit:

if you’re editing with nano: Ctrl+x, y, Enter

if you’re editing with vim: hold down Shift and :, type “wq”, press Enter

7. Create a new folder for your private keys:

cd ~

mkdir -p ~/VALIDATOR_KEYS

8. (skip this if installing for the first time) ZIP your keys and copy the zips to the folder created in step 7. The scripts refer to nodes as node-0, node-1, … regardless of their name. With this in mind:

cd $HOME/elrond-nodes/node-0/config <-this is the default path, make sure to use your own

zip node-0.zip *.pem

mv node-0.zip $HOME/VALIDATOR_KEYS/

Repeat for all the other nodes

9. Install the node(s) as a service:

cd ~/elrond-go-scripts-v2

./script.sh install

Make sure to select Y when prompted to enable auto-updater!

10. Start the node(s):

cd ~/elrond-go-scripts-v2

./script.sh start

Those are the basic steps. Please carefully read the on-screen instructions, refer to the readme file https://github.com/ElrondNetwork/elrond-go-scripts-v2 and make sure to ask any questions in the Elrond Validators chat!

11. Start the node visual interface

Navigate to your $HOME/elrond-utils folder and start the termui

cd $HOME/elrond-utils

./elrond-utils/termui -address localhost:8080 for node 0

./elrond-utils/termui -address localhost:8081 for node 1

./elrond-utils/termui -address localhost:808n for node n

12. How to check if the autoupdater job was added succesfully

Run the following command and check its output:

crontab -l

The default output would be:

*/10 * * * * /bin/bash -c /home/ubuntu/elrond-go-scripts-v2/auto-updater.sh

Try running the autoupdater yourself, to make sure all is fine. Make sure to replace (user) with your username:

cd ~

/bin/bash -c /home/(user)/elrond-go-scripts-v2/auto-updater.sh

Now check for the output by opening this file:

cd ~

cat autoupdate.status

A successful output would look like:

Wed Dec 4 13:21:23 UTC 2019
Your current version is: v1.0.48–0-gae5a3d74/go1.13.4/linux-amd64
Latest tag from github: v1.0.48
Nothing to do here… you are on the latest tag !

Well done! You’ve just entered the top 1% elite of the world, who use dark windows with boring text to hack a better future for mankind. Or for attacking their friends in Phase 3.

See you on the battle #fiedl !

--

--