This guide is focused on those that have a desire to setup an IOTA full node and support the IOTA project. It was created to consolidate the many guides and information floating around on how to setup a full node.
You must have access to:
- A computer or VPS running Linux (specifically Mint or Ubuntu).
- A computer with the minimum or recommended hardware
Minimum: CPU = Single core, Memory = 2GB RAM
Recommended: CPU = duo-core, Memory = 4GB RAM
- An internet connection with a high amount of bandwidth and at least 1 MBPS upload speed. To give you an idea on how much bandwidth you might need, I used around 50GB a day when syncing to the full node.
- You can setup a static IP address through your router.
Install Linux on your machine or setup your VPS
Install all required updates if it’s a fresh install
sudo apt-get update
sudo apt-get install openjdk-8-jre
Now it’s time to setup the static IP address. There’s a lot of good documentation out there on how to do it. Go to https://www.noip.com. Click “Sign Up” and create your free account. You’ll be taken to your dashboard. In the top-left corner, click on “Dynamic DNS”. Then “Add Hostname”. Type in whatever you want as your hostname and the domain you desire. Under IPv4 Address, paste in your IP address. You can find it by typing “whats my ip address” into google.
Next is to download noip’s DUC client. This client must be run in the background. Its purpose is to continuously point the static IP address to your dynamic IP whenever it changes. To install it, follow the guide on noip’s support page below.
If you are running Linux on a home or office server, you now need to login to your router. Every router is different. You should be looking for DDNS settings, which are usually under WAN. Enable DDNS, select your server and enter your hostname.
Make your IOTA directory
mkdir –p /opt/iota && cd /opt/iota
Install IOTA’s latest IRI release from https://github.com/iotaledger/iri/releases. For the average user, I would suggest you download the already compiled file. Change the ending of the .jar file with whatever the latest version is.
sudo wget –O IRI.jar https://github.com/iotaledger/iri/releases/download/v18.104.22.168/iri-22.214.171.124.jar
You can download and compile it yourself with maven if you wish, but if you’re doing that I’ll assume you know what you are doing.
The next and final step involves some personal choice. If you just want to get the full node up and running ASAP, follow option A. For a cleaner and easier to manage setup, follow option B. I would suggest using option B.
Note: In the section below, you will need to replace the neighbor IP address with those of people who are interested in becoming your neighbor. To find neighbors, look at the IOTA slack https://iotatangle.slack.com and join the channel #nodesharing. Please do not post your IP address in the channel’s chat. Only direct message it when sharing IP addresses with a potential neighbor.
Option A: You can immediately start running the IOTA node by using (add your neighbors IP addresses)
java –jar IRI.jar –p 14265 –u 14600 –t 15600 –n “udp://neighbor01:14600 udp://neighbor02:14600”
Option B: Run the IOTA service using systemd. To do this, install the iota.service file.
sudo wget –O iota.service https://gist.github.com/lolzwalls/12afa8942db64acc6b00e51cbbd96751
Next you want to setup the IOTA config file (.ini file). Download the iota.ini file I have already setup for you. After you can
sudo nano iota.ini in and add whatever neighbors you have or change the ports you are using.
sudo wget –O iota.ini https://gist.github.com/lolzwalls/6804d1e29d6f5c457569085dc70c89c6
** Rememeber to add/edit your neighbors to this file **
It is time to start the IOTA full node and get syncing. Rebuild the process tree using
sudo systemctl start iota will start the node using the information provided in the iota.servce and iota.ini file. If you wish to see if the node is active, you can type
sudo systemctl status iota. Use
sudo systemctl restart iota and
sudo systemctl stop iota at any time to restart or stop the service, respectively.
To see what’s going on in your IOTA node (to view the log), type
sudo journalctl –u iota –f
If for whatever reason your syncing process stops at a particular spot or syncing just doesn’t seem to be working, check to make sure you’re receiving from your neighbors. If you are, try opening the iota.ini file again and activating the bottom two lines REVALIDATE and RESCAN_DB by removing the #’s in front of them. Save the iota.ini file and restart the iota service with sudo systemctl restart iota.
Congratulations! Your full node is up and running. It will take a number of hours to sync so please be patient.
Setting up an IOTA node on Digital Ocean