Installing Etho Protocol Nodes

This page explains how to use Debian/Ubuntu/Mint Linux or Redhat/CentOS/Fedora to run the Etho Protocol Masternode and Service Node software

Please note! Setting up a node, requires you to have your ETHO on MAINNET.

Wrapped ETHO(ERC20) is not yet supported.

Section 1 — Node Types (An overview of the different nodes on the network and their server / collateral requirements.)

The Etho Protocol project features three types of nodes: Gateway Nodes, Master Nodes, and Service Nodes. The purpose of these nodes is to provide storage and computational resources to the ethoFS network, to provide capacity and redundancy for content hosted decentrally (on many nodes!) on the network. This guide focuses on the setting up for Masternodes and Service Nodes.

Section 2 — Server Options (A brief summary of the options when it comes to running an Etho Protocol node.)

It is possible to host an Etho Protocol Node on any server which meets the minimum requirements detailed below. Either on a dedicated server or through an online VPS provider, such as Vultr, Digital Ocean, OVH and many others. Most people opt for the VPS option, as it is typically much easier to configure and does not have the same cost as a local server does. It is important to spread nodes across a range of providers and data centers within each provider, in the case of network outage of a particular data center or provider. The more distributed geographically the more resilient the network will be.

The collateral required to host a gatewaynode is 30 thousand, a masternode is 15 thousand ETHO and a service node only requires 5 thousand ETHO.

Servers running Etho Protocol nodes must adhere to the following hardware and networking requirements:

  • Have a static public IPv4 address

  • Gateway Nodes require 4GB of RAM, Masternodes require 2GB of RAM and Service Nodes 1GB of RAM

  • Must allow firewall access through TCP ports 80, 4001, 5001 and 30305. (For node traffic)

  • An uptime of 95% is required for Service Nodes and Masternodes

  • An uptime of 98% is required for Gateway Nodes

Etho Protocol node operators are highly encouraged to only use servers that meet all hardware requirements. Node software will include hardware configuration checks to ensure the integrity of the network.

Section 3 — Example VPS Setup (A step by step guide on how to configure a VPS through Vultr.)

This section of the guide will focus on setting up a VPS server through Vultr. As previously mentioned, it is possible to use a range of different providers or your own server-grade hardware. Just DuckDuckGo for VPS providers and choose the right one for you.

In order to get started with Vultr, setup and account and deposit some funds.

  1. After setting up an account on Vultr, and having deposited funds to your account through the billing section, it is now possible to begin setting up a VPS.

  2. On the menu, select the servers page. From there, click on the plus icon to add a new server.

  3. Now you will be presented with a page titled Deploy New Instance. This page is where all of the settings for the VPS are selected. The following steps detail what options you need to select during the server setup process

    1. Server Location: The location of the server is not particularity important, I’d suggest picking the server location nearest to your location for the lowest latency when connecting to the VPS. (Although in reality location is not likely to have a significant impact on connection speed.)

    2. Server Type: This is where you select the operating system for the VPS. It is possible to run Etho Protocol nodes on a range of Linux based operating systems, such as Ubuntu, Debian, and Fedora. For the purposes of this guide, we will be using an Ubuntu-based VPS. (Ubuntu version 16.04)

    3. Server-Size: For the service node, the $5 / month package is sufficient, while for the Master Node the $10 / month package is sufficient. The gateway node will require the $20 / month package.

    4. There is no need to select any options under the Additional Features, Startup Script or SSH Keys options. These can all be left blank.

    5. Server Hostname & Label: Name the server something appropriate, such as Etho Protocol Master Node 01. So you can keep track of it if you have multiple instances.

    6. Press the Deploy Now Button. It will take a couple minutes for the VPS to be set up.

Section 4: SSH (Explanation on how to connect to the server through SSH.)

If you don't like using SSH, in most cases, you don't have to! The vast majority of VPS providers will provide you with easy console access using your browser. If you have console access, you do not need to open TCP port 22 for SSH. You can move on to the next step if you prefer using the console.

SSH is the secure method which we use to connect to the server in order to configure the operating system and node. This requires TCP port 22 to be open, as this is the port which the SSH protocol uses by default to communicate with the server.

SSH Using Windows

On Windows, an SSH client must be downloaded, such as Putty.

To connect to the server through SSH you will need the IP address of the server, along with the root username and password. This can be found on the VPS provider's website or in your email inbox.

Using Putty, input your IP address from your server /VPS in order to start an SSH connection.

When connecting using Putty, you can paste in your password by copying it from the source and then right-clicking within the putty window. The right click acts as paste, then you hit enter to submit it.

You will receive the warning screen below when you connect to your VPS for the first time. Simply select Yes and this will save the server's fingerprint on your home computer.

If you ever get the same warning again on the same machine, beware, you may be connecting to a rogue server.

SSH Using macOS or Linux

SSH is built into macOS and Linux operating systems within the terminal, so no additional programs are needed; you simply type ssh <username>@<ip_address_of_server> (provided by VPS company)as seen below:

When first SSH-ing into the VPS, use root@<ip_address_of_server>, then switch over to ether1node@<ip_address_of_server> when the guide says to do it below

Just like with Windows, macOS and Linux machines will warn you to save the SSH fingerprint of the server upon first connecting to it.

Section 5: Checking Required VPS Ports (Make sure that the ports required by the node software are not in use.)

Not all VPS configurations are the same. Sometimes you will have software installed that is using the service port numbers required for the operation of Etho Protocol Gateway Nodes: TCP ports 80,4001, 5001 and 30305.

There is an easy way to make sure all necessary ports are unused. Simply run the commands below and make sure there is no output returned for any of them. If you see any output, that means you need to disable something in order to run your Etho Protocol Gateway Node.

sudo lsof -i tcp:80 -s tcp:listen
sudo lsof -i tcp:4001 -s tcp:listen
sudo lsof -i tcp:5001 -s tcp:listen
sudo lsof -i tcp:30305 -s tcp:listen

Here's what a good configuration looks like:

You may see output when you run the command above. If you do, observe the name of the process and disable it. The name of the process is displayed on the left side.

Simply run the 2 commands below to disable the service blocking your port. Then run the first command over again to ensure the port has been released. Replace the name of the service with what you see shown on the left side (in red)

sudo systemctl stop apache2
sudo systemctl disable apache2
sudo lsof -i tcp:80 -s tcp:listen

Section 6: Debian / Ubuntu Server Configuration (A guide on how to configure an Ubuntu / Debian based server.)

This section of the guide is designed for Debian / Ubuntu based servers. Please see the next section of the guide if your server is running on CentOS, Fedora or Redhat. After logging into the server as root, it is best to do some general updates. Copy and paste the following commands, one by one, into the SSH window, to make sure the operating system is updated. We will also set up a user to run the node software under, as it is not advisable to run the node under the root user.

apt-get update
apt-get dist-upgrade -y
mkdir /var/run/fail2ban
apt-get install sudo ufw fail2ban nano -y
adduser ether1node
usermod -aG sudo ether1node
adduser ether1node systemd-journal

While still logged in as root, make sure your firewall is configured by allowing TCP ports 22 and 30305 for server administration and Etho Protocol node communications.

ufw reset
ufw allow 22/tcp
ufw allow 4001/tcp
ufw allow 5001/tcp
ufw allow 30305/tcp
ufw allow 30305/udp
ufw enable

One last task to be executed as root is configuring fail2ban, which will blacklist IP addresses that try to guess your root or ether1node password.

cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
systemctl restart fail2ban
fail2ban-client status

The last command makes sure that fail2ban is operating properly. Ensure you have 1 jail active as seen below

After running the above commands & creating the ether1node user, disconnect from the server by closing down the Putty window or by type exit into the same window. Then reconnect to the server using the same IP address as before, but using the ‘ether1node’ user which you just set up. You will be presented with the following terminal window if you logged in to the new user account properly. It is very important to ensure that you are connected as ether1node and not as the root user.

Now you are connected to the server as the correct user we are going to install the node. Then reconnect to the server using the same IP address as before, but using the ether1node user which you just set up. It's very important to use the ether1node user to run the commands below.

Log in to the node dashboard https://nodes.ethoprotocol.com/ and press on "Install a Node"

Paste Your wallet address (it needs to be an address on the ETHO network) containing the staked ETHO. Next, choose the node which You want to deploy. Remember:

  • Gateway nodes, requiring staking of 30k ETHO

  • Master nodes, requiring staking of 15k ETHO

  • Service nodes, requiring staking of 5k ETHO

Then You have below the tailored installation scripts for Debian or Ubuntu. Also, scripts for CentOS/Redhat or Fedora are available. These scripts are pasted into a VPS prepared to host your IPFS node.

Now the node script is running on the Server! In order to double check that the node is running you can use one of these commands:

sudo systemctl status ether1node
sudo journalctl -f -u ether1node

Dashboard - Master Nodes online

Once Your node contacts the dashboard, You will see it listed here. For nodes to be able to receive payments, the node needs to be online for 24hrs. Node details will be showing information on the payments.

You will be asked to input the password for ether1node during the installation

You should see the following terminal output after running the first command if everything is working properly. (Pay attention to the active status in the terminal output)

Section 7: CentOS / Fedora / Redhat Server Configuration (A guide on how to configure a CentOS /Fedora / Redhat based server.)

This section of the guide is designed for CentOS, Fedora and Redhat based servers. Please see the previous section of the guide if your server is running a Debian or Ubuntu based operating system. After logging into the server as root, it is best to do some general updates. Copy and paste the following commands into the SSH window, to make sure the operating system is updated. We will also set up a user to run the node software under, as it is not advisable to run the node under the root user.

yum update -y
yum install wget nano systemd firewalld epel-release -y
yum install fail2ban -y
adduser ether1node && passwd ether1node
usermod -aG wheel ether1node

While still logged in as root, make sure your firewall is configured by allowing TCP ports 22 and 30305 for server administration and Etho Protocol node communications.

firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=4001/tcp --permanent
firewall-cmd --zone=public --add-port=5001/tcp --permanent
firewall-cmd --zone=public --add-port=30305/tcp --permanent
firewall-cmd --zone=public --add-port=30305/udp --permanent
firewall-cmd --reload
systemctl start firewalld
systemctl enable firewalld

One last task to be executed as root is configuring fail2ban, which will blacklist IP addresses that try to guess your root or ether1node password.

cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

On RPM based systems, fail2ban is not enabled by default. You have to edit the jail.local file to enable it

nano /etc/fail2ban/jail.local

Simply remote the hashtags and save the file by pressing Ctrl+X then Y to confirm. Now start the fail2ban service and ensure you have 1 jail active

systemctl start fail2ban
systemctl enable fail2ban
fail2ban-client status

After running the above commands, disconnect from the server by closing down the Putty window. Then reconnect to the server using the same IP address as before, but using the ether1node user which you just set up. It's very important to use the ether1node user to run the commands below.

Now you are connected to the server as the correct user we are going to install the node. Then reconnect to the server using the same IP address as before, but using the ether1node user which you just set up. It's very important to use the ether1node user to run the commands below.

Log in to the node dashboard https://nodes.ethoprotocol.com/ and press on "Install a Node"

Paste Your wallet address (it needs to be an address on the ETHO network) containing the staked ETHO. Next, choose the node which You want to deploy. Remember:

  • Gateway nodes, requiring staking of 30k ETHO

  • Master nodes, requiring staking of 15k ETHO

  • Service nodes, requiring staking of 5k ETHO

Then You have below the tailored installation scripts for Debian or Ubuntu. Also, scripts for CentOS/Redhat or Fedora are available. These scripts are pasted into a VPS prepared to host your IPFS node.

Now the node script is running on the Server! In order to double check that the node is running you can use one of these commands:

sudo systemctl status ether1node
sudo journalctl -f -u ether1node

Dashboard - Master Nodes online

Once Your node contacts the dashboard, You will see it listed here. For nodes to be able to receive payments, the node needs to be online for 24hrs. Node details will be showing information on the payments.

You will be asked to input the password for ether1node during the installation

You should see the following terminal output after running the first command if everything is working properly. (Pay attention to the active status in the terminal output)

Last updated