
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
- Download & install putty (https://www.putty.org/).
- Open Putty and specify you IP Address + port 22 (SSH)

- 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.
- First go to: https://github.com/wavesplatform/Waves/releases/
- Click on the latest version (1.1.3 right now)
- Scroll a little down till you found the file waves_………_all.deb

- Right click on it to and choose for “copy link location”.
- Go back to your server and put in the following command:
wget (followed by the link you copied)
example:
wget https://github.com/wavesplatform/Waves/releases/download/v1.1.3/waves_1.1.3_all.deb
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!
- Go to https://client.wavesplatform.com/ (or use the waves client)
- Follow the steps for creating a new wallet
- Save you Seed
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)
porno
says December 17, 2020 at 21:09Way cool! Some very valid points! I appreciate you penning this article and also the rest of the site is very good. Janella Burk Bettzel