Step 1: VPS Server

Get yourself a VPS (Virtual Private Server) with a minimal of 4GB RAM or recommended 8GB. (For example: https://contabo.com/?show=configurator&vserver_id=221)

  • Choose your OS  (I did choose for Ubuntu 18.04)
  • Pay the first month and the VPS will be prepared for you
  • After a while you will receive an email with your login information

Step 2: Login on your VPS

  • Click on open
  • Now you get a message to login. Login with the credentials that you get in the email.
    Mostly something like (root) (password)
  • After logging in you are in your machine.

Step 3: Update & Secure

Step 3.1: Update OS

Before we can go further, you should update your OS to the latest version.
Commands:
apt-get update
apt-get upgrade

We also need an additional software to edit files in step 3.2
apt install -y nano

Step 3.2: change default SSH listing port:

  • Modify the service configuration file:
    nano /etc/ssh/sshd_config
  • Search for the “Port” and remove the “#” in front of the Port.
    Also changed the number to something else.
  • restart the service:
    /etc/init.d/ssh restart
  • Don’t forget to change the port at STEP 2. When you try to login again!

Step 3.3: Creating another user.

For security purposes you should disable direct SSH access with the root user. For this we will create another user what we will use to login into your VPS. If you are in, you can change to the root user.

  • Create the new user (change NEWUSERNAME into the name from the new account)
    adduser NEWUSERNAME
  • Now fill in all the requested information and fill in a STRONG password! Save it somewhere so you won’t lose it!

Step 3.4: Change Root password

When a distribution or operating system is installed, a password is automatically created for root access. It is strongly recommended that you customize it by modifying it. To do this, once you are logged in, simply enter the following command:
passwd root

Step 3.5: Disable server access via the root user

The root user is created by default on UNIX systems, and is the user with the most rights on your system. It is not advisable and even dangerous to leave your VPS accessible only through this user, as this account can perform irreversible operations on your server.
We recommend that you disable direct root-user access via the SSH protocol.
To perform this operation, you need to modify the SSH configuration file in the same way you did previously when you modified the access port to your VPS:

  • Navigate to:
    nano /etc/ssh/sshd_config
  • Locate to the following section:
  • Change yes to no
  • Save the file and exit
  • Restart the service
    /etc/init.d/ssh restart

Step 3.6: Install Fail2ban software

Fail2ban is an intrusion prevention software framework designed to block unknown IP addresses that are trying to penetrate your system. This software package is recommended, even essential, to guard against any brute force attacks on your services.

  • Install the package:
    apt-get install fail2ban

Step 3.7: Login after steps above

  • Open Putty and specify you IP Address + port (that you have configured in STEP 3.2)
  • Click on open
  • Now you get a message to login. Login with the new username that you have created + password (STEP 3.3).
  • After that, you are successfully logged in into your machine.
  • Change from new user to root account by the following command:
    su -l
  • Now provide the password of the Root user (that you have changed at STEP 3.4)

Step 4: Additional software

We need to install some additional software on the machine.
Commands:
apt install -y software-properties-common
apt install -y build-essential

apt install python-pip
pip install base58

Step 5: Installing Java Development Kit

Java development is an requirement to have otherwise Waves will not work properly. It only works with Java 1.8 so DO NOT install the latest Java version!

  • Commands:
    add-apt-repository -y ppa:webupd8team/java
    apt update
    apt install openjdk-8-jdk
  • Check if you have the right version.
    Command:
    java -version

Step 6: Waves Repository

Now we will download the latest repository of the full node.

Step 7: Install Waves

When you have completed step 6 you will have a new file in your home directory named waves_(version)_all.deb. This is the file we will install right now!

Put in the command:
dpkg -i waves_(version)_all.deb

Example
dpkg -i waves_1.1.3_all.deb

Step 8: Download the blockchain

It is much faster to download the blockchain before you turn on the node. With the following steps you download and import the blockchain.

  • Download:
    wget http://blockchain.wavesnodes.com/blockchain_last.tar
  • Remove the current folder (if there is one)
    rm -rdf /var/lib/waves/data
  • Unpack the downloaded folder to the right folder
    tar -xvf blockchain_last.tar -C /var/lib/waves/

Step 9: Create waves wallet

It is recommended to create a separate wallet for your node!

Step 10: Encode your seed

Your seed should be encode with base58 so the system will understand your seed. In this step we explain you how to do so.

  • Create a new file named “base58script.py”:
    nano base58script.py
  • Copy the following information in the file:
    import base58
    seed = “YOURSEEDHERE”
    encoded_seed = base58.b58encode(seed)
    print(encoded_seed)
  • Retype the + fill in your seed!
    Be aware! If you copy and paste the above rows the won’t work because the layout is different. Retype the so the seed will be marked in green. See example below:
  • Saved and close the file (CTRL S + CTRL X)
  • Activate your new script by the following command:
    chmod u+x base58script.py
  • Run the following command to get your seed:
    python base58script.py
  • Keep that Base58 string (we need it in Step 10)

Step 11: Configuring Waves

  • Open the configuration file by the following command:
    nano /usr/share/waves/conf/waves.conf
  • Go to “node-name” and remove the “#” following with defining your own node name.

Before:

After:

Don’t forget the “” !!!

  • Changed the “declared-address” to your public IP address of your node (same as step 2)

Before:

After:  

(Don’t remove or change the “:6868”)

Don’t forget the “” !!!

  • Change the password in the file (between the “”)

Don’t forget the “” !!!

  • Add your base58 (what we get on step 9) in the Seed section. (don’t forget to remove the “#” here as well)

Before:

After:

(This is just an example – NEVER Share this information with someone else!)

  • Change your “REST API” from NO to YES
    You can also leave this one on NO if you won’t use it!

Before:

After:

  • Change the bind-address to your public IP Address

Before:

After:

  • Save the file and exit.

Step 12: Start Waves Node

  • You can start the Waves Node by the following command:
    service waves start
  • Check if you don’t receive an error by running the following command:
    journalctl -u waves.service -f

If you see the following, than everything went well and your node is verifying transactions/blocks!

  • Close the screen by using the following key combination : “ctrl C”

Step 13: API-key-HASH

You can skip this step if you didn’t turned on the API option!
You can find your API key hash by the following steps:

  • Open your browser and fill in your Public IP address (without “www” or “http”)
  • Now “Swagger” will open
  • Choose for “Utils”
  • Choose for “/utils/hash/secure”
  • Put in the message field your “password”
  • And Click on “Try it Out!”
  • Now you see your hash in the “Response Body” section
  • Copy your hash
  • Go back to the waves config file
    Command:
    nano /usr/share/waves/conf/waves.conf
  • Add the api-key-hash to the file as shown below.
  • Save the file and exit
  • Restart the waves service
    Command:
    service waves restart
  • Check if the node is running normally (same as step 11)
    Command:
    journalctl -u waves.service -f

Step 14: Installation is Completed!

The node is syncing right now to the latest block height that you can found on www.wavesexplorer.com.

When the node is at the same height as the latest block, your node will join mining new blocks (if there are at least 1000 waves leased to this wallet)!

After a few minutes you will see your node in the list at pywaves. (http://dev.pywaves.org/nodes/) This means he is working well and you will also see the latest status of your node over there. 

Questions or need help ?

I hope this manual was clear and easy to understand and of course we hope you complete the installation without any problems!
If you have any questions or need any help, contact us and we will help you out!

Comment (1)

  1. porno

    says December 17, 2020 at 21:09

    Way cool! Some very valid points! I appreciate you penning this article and also the rest of the site is very good. Janella Burk Bettzel

Add your Comment