Hello IOTA Forum

Setting up a VPS IOTA Full Node from scratch!

https://forum.helloiota.com/Topic2424.aspx

By Carpincho - 4 Dec 2017

Introduction

In this tutorial I will guide you step by step to install and run a headless Full Node for the IOTA network using the latest stable IRI release and a Virtual Private Server (VPS). We will also install iota-pm, in order to have a dashboard to control our neighbors perfomance. I will be using Debian 9 in my local machine and in the VPS. If you use other OS such as Windows, you can download a ssh tool such as putty to connect to your remote server and run the commands we will cover. It should be just the same.

On this guide

This might not be the most complete/extensive guide but it works and is fast. You can get a IOTA Full Node running in a matter of minutes. For a more complex guide visit IOTA Partners
Last update: 19 Mar 2018

Getting a VPS

A Virtual Private Server is a virtual machine based server that allows you to connect and work on a given operating system as if it were a dedicated computer. You will be accesing the server and installing stuff from the scratch on a Debian 9 Linux distribution. Ubuntu and other Debian derivated should be pretty similar -if not the same.

For this tutorial we will be using a Contabo VPS with 4 CPU cores, 12 GB RAM and 300 GB of SSD storage. As I write this, that plan costs 8.99 Euros.

Once we finished paying for the VPS, we will receive our public IP and the root password to login to the box via ssh. So, lets start there. We will access create a directory for our node and install some packages that will be needed such as Git, Maven, and others.

Starting the setup

We will be assumming that my public IP Address is 173.212.193.00. Last numbers are not shown because this is actually a Full Node I will be running.



To start let’s go to the /opt directory. Once we are there, we will install Git, Maven and Java 8. For get this done, we will use the following commands. Note that everytime you run apt install command you will be prompted to chose if you wanna install the pck or not. Just enter Y and hit enter.

root@vmi152766:/# cd /opt
root@vmi152766:/opt# apt install git
root@vmi152766:/opt# apt install maven
root@vmi152766:/opt# apt install default-jre
root@vmi152766:/opt# apt install default-jdk


If everything went fine, you should be able to see what java version you have installed by typing the following command.

To compile or not to compile, thats the Q

Since the IRI Github has the source code but also contains an already compiled version of the IRI, you can choose which way you wanna go. Some people would prefer to compile from code (harder road), others will just download the iri.jar and run it. We will cover both. If you dont know what compiling from source is or you dont want to loose time compiling just jump to the method B to downlod de already compiled IRI.

Method A: compile from Source Code


We are now ready to start working with the IOTA IRI. Let’s clone the iotaledger Github IRI in our ot folder to get the latest version. Once we clone the repo a new iri folder will be created in /opt. We will compile the IRI and build the package with the following commands.

root@vmi152766:/opt# git clone https://github.com/iotaledger/iri
root@vmi152766:/opt# cd iri
root@vmi152766:/opt/iri# mvn clean compile
root@vmi152766:/opt/iri# mvn package


After executing this commands a new folder called target will be created. Inside that folder we are going to find our executable IRI with this name iri-1.4.2.1.jar




Method B: download already compiled IRI

In order to keep the same directory structure along the tutorial we will create the folders that the compilation process would create. By doing this, we will have our Node executable in the same place (/opt/iri/target) whether we compile or download the already compiled IRI version.

root@vmi152766:/opt# git clone https://github.com/iotaledger/iri
root@vmi152766:/opt# cd iri
root@vmi152766:/opt/iri# mkdir target
root@vmi152766:/opt/iri# cd target
root@vmi152766:/opt/iri/target# wget https://github.com/iotaledger/iri/releases/download/v1.4.2.1/iri-1.4.2.1.jar


If everything went fine, we should be able to run our node to test it. We still have no neighbors so we will just try starting it up to see if we are fine and then we will stop it with ctrl + c.

root@vmi152766:/opt/iri# cd target
root@vmi152766:/opt/iri/target# java -jar iri-1.4.2.1.jar -p 14265




Because we will need to pass some arguments to the IRI (such as the port in the example), we will create a configuration file and place all the parameters in there. Once we have our config, we will be able to run the node only passing that config file as argument. Let’s create a config file called iri.ini inside the target folder and place in there the values we will need to have. We will be using nano, a command line based text editor. All you need to know is that you can create a new file by typing nano newfile.txt. To save the file contents you do ctrl + o. To exit the file and get back to the terminal you hit ctrl + x.

root@vmi152766:/opt/iri/target# nano iri.ini


Lets see a little what we are going to include in this file.

[IRI]
PORT = 14265
UDP_RECEIVER_PORT = 14600
TCP_RECEIVER_PORT = 15600
NEIGHBORS = udp://neighbor-1:14600 udp://neighbor-2:14600
IXI_DIR = ixi
HEADLESS = true
DEBUG = true
DB_PATH = mainnetdb
API_HOST = 173.212.193.00


Note that in here you must list your neighbors. In order to have a fully working node you need to exchange your full node address with other users (called neighbors). Only once you add a neighboar to the list and that neighbor do the same with your node, you have a valid pair. It’s very important to have stable dedicated neighbors if you want your Full Node to sync and work properly. So it’s a two way process. You can look for neighbors in the #nodesharing Slack channel.

Neighbors

According to Come From Beyond, it’s better to have 3 or 4 neighbors working fine that a lot that wont run their nodes 24/7. The maximum number of neighbors should be 7. So go to the #nodesharing slack channel and start seeking for neighbors. They will give you their address (udp://143.22.33.43:14600, for instance) and you will have to give them yours (which is udp://173.212.193.00:14600)

Everytime you need to add a new neighbor you must stop your Full Node, edit the iri.ini, add the address leaving a space between addresses, save the file (ctrl + o) and exit (ctrl + x). Finally you restart your node .

Once you have your config file ready, you just start the Full Node again with the command used before and the -c iri.ini as only argument. This will run your node using all the settings described in that config file. If your neighbors are working fine you will eventually start getting some data.

root@vmi152766:/opt/iri/target# java -jar iri-1.4.2.1.jar -c iri.ini




Checking your node’s API endpoint

Before you proceed installing some Graphic tool to monitor your and yours neighbors nodes, you should permorm a test to see if your running node has a reachable API. This can be done by using curl as described in the IRI API Reference Guide. My node IP is 173.212.193.00 so, its API should be reachable at http://173.212.193.00:14265. In order to check this we will run this Curl command in the terminal.

curl http://173.212.193.00:14265 \
-X POST \
-H 'Content-Type: application/json' \
-H 'X-IOTA-API-Version: 1' \
-d '{"command": "getNodeInfo"}'


If everything went fine we should get a response of this type.




Setting up a Graphic Interface to control your Full Node

So far we have our node running and we can see the data as it goes down in the terminal. This is not very practical, specially if you wanna have an overview of how your neighbors nodes are working and how is your sync doing. In order to have a tool that makes all this easy we will install iota-pm. This node.js tool will give us a public point to access our Full Node via our browser.

Lets install Curl, node.js and nmp in order to get this wonderfull tool working.

root@vmi152766:/opt# apt install curl
root@vmi152766:/opt# curl -sL https://deb.nodesource.com/setup_6.x | sudo bash -
root@vmi152766:/opt# apt install nodejs
root@vmi152766:/opt# npm i -g iota-pm


And that’s all! Now, we have our Peer Manager installed. In order to start it and be able to see our dashboard from the browser we must use the following command.

root@vmi152766:/opt# iota-pm -i http://173.212.193.00:14265 -p 127.0.0.1:12000


Once the command is running you can just to your browser and point to http://127.0.0.1:12000 to see a nicely designed dashboard. Notice that we are using the port 12000 but you could use a different one as long as it's free.



Get your node synced fast!

If you start your Full Node and your IOTA Peer Manager you will see that the values Latest Milestone Index and Latest Solid Milestone Index are not the same. This means that your node is not yet synced and, therefore, is not good to use (with your wallet, for instance) yet. If you just let the node running this two values will eventually catchup. Because you might have to wait for a long time to get this done, there is a quick solution: you can download a 30 minutes old image of the Tangle database and start the sync from there. That should allow you to get a synced node in some hours at most. 

To do this you will have to delete exsting database, download a 30 minutes old image and place it in your node database folder. Long story short:

root@vmi152766:/opt/iri/target# rm -rf mainnetdb/* 
root@vmi152766:/opt/iri/target# wget -P /tmp/ http://db.iota.partners/IOTA.partners-mainnetdb.tar.gz
root@vmi152766:/op/iri/targett# tar xfvz /tmp/IOTA.partners-mainnetdb.tar.gz -C /opt/iri/target/mainnetdb


Because you already started your node but now you have deleted its database to change it with a newer version, you will need to stop and restart to node. But before doing that, there is 
an aditional configuration value we must add to our iri.ini file called DB_RESCAN = true. This param will force our node to clear all database data and rescan from the beginning (which we want since we have a new database image only behind in sync by 30 minutes). So let's edit our iri.ini to add this last param.

[IRI]
PORT = 14265
UDP_RECEIVER_PORT = 14600
TCP_RECEIVER_PORT = 15600
NEIGHBORS = udp://tu-neighbor-1:14600 udp://tu-neighbor-2:14600
IXI_DIR = ixi
HEADLESS = true
DEBUG = true
DB_PATH = mainnetdb
API_HOST= 173.212.193.00
DB_RESCAN = true


And now let's restart the IRI with the usual command. Note that at this stage we dont have a method to start and stop the IRI as a service so we need to find out our node PID (see the las image of this tutorial regarding ps ax) and send a kill signal. Lets assume we do a ps ax and our PID is 10123, so we should do the following to stop the IRI (kill -9).

root@vmi152766:/opt/iri/target# kill -9 10123
root@vmi152766:/opt/iri/target# java -jar iri-1.4.2.1.jar -p 14265


Note: I know this is not the way. We will add some code to manage this with systemctl soon (there is even some code in the comments if you wanna try).

Final considerations

Full Nodes are useful for helping IOTA network to get stronger only if they are running 24/7, in good shape and with neighbors performing reasonable fine. Add some neighbors to see how good they are doing and clean your neighbors list to only keep the ones that are almost up and have good permormance.

When you start running your node, you will have to go though the get in sync process. This can take hours or days depending on your node performance and your neighbors health as well. If you are deleting addresses from your neighbor config section, let them know so they can also remove you.

Sometimes is best to run the Node and iota-pm commands as background tasks, so you can close your terminal without interrupting them. This can be achieved by using nohup and the ampersand at the end. For example:

root@vmi152766:/opt/iri/target# nohup java -jar iri-1.4.2.1.jar -c iri.ini &
root@vmi152766:/opt# nohup iota-pm -i http://173.212.193.00:14265 -p 127.0.0.1:12000 &


Finally, you can easily check if your iri and iota-pm are running by using the ps ax command, which lists all the processes running at the time in the machine.



Source: http://www.iotahispano.com/setting-up-a-vps-iota-full-node-from-scratch/iota-pm







By Winston - 4 Dec 2017

@Carpincho Beautiful. Pinned to the top of this forum.

:IOTA:
By Carpincho - 4 Dec 2017

Winston - 4 Dec 2017
@Carpincho Beautiful. Pinned to the top of this forum.

:IOTA:

Thanks! Everyone can setup a Full Node just be following those steps. I hope it helps!
By Carpincho - 5 Dec 2017

Spotted some errors but I cant edit the post. The command to run the processes in the background is nohup instead of nohub. So it should be:
root@vmi152766:/opt/iri/target# nohup java -jar iri-1.4.1.2.jar -c iri.ini &
root@vmi152766:/opt# nohup iota-pm -i http://173.212.193.00:14265 -p 173.212.193.00:8888 &
By Winston - 5 Dec 2017

@Carpincho Thanks, I edited it for you. We have the forum set to prevent edits after some fixed time period.
By Carpincho - 5 Dec 2017

Thanks! There a lot of typos that I fixed in the Source but commands are fine so the guide should serve its purpose!
By Winston - 5 Dec 2017

Carpincho - 5 Dec 2017
Thanks! There a lot of typos that I fixed in the Source but commands are fine so the guide should serve its purpose!

@Carpincho Please DM me (either here or on slack) with those updates, and I'll edit them in. This guide is amazing, so I definitely want to prioritize the curation of your great work here.
By inhisservice4 - 5 Dec 2017

Thanks guys, I built this. here is mine. http://198.187.30.126:8888/.
Any idea how to get this to work with a DNS hostname. I want it to resolve with my hostname miotanode.com.

Thanks!
By buy-IOTA - 5 Dec 2017

Cool. I am going to do that today!
By happydrummer - 8 Dec 2017

This is awesome - thanks so much for the simple guide. the GUI is great too
By AIdj - 8 Dec 2017

Thx for useful tutorial 
Im newbie I would like to keep this post but i dont know how to do
By ionta - 8 Dec 2017

Hi, I get the following error when I try to run the visual interface. I installed the node following these instructions first: http://iota.partners/ -
Then I found your post and tried running the visual interface

Serving IOTA peer dashboard at http://94.130.229.186:8888
events.js:160
  throw er; // Unhandled 'error' event
  ^

Error: listen EADDRNOTAVAIL 94.130.229.186:8888
  at Object.exports._errnoException (util.js:1020:11)
  at exports._exceptionWithHostPort (util.js:1043:20)
  at Server._listen2 (net.js:1249:19)
  at listen (net.js:1298:10)
  at net.js:1408:9
  at _combinedTickCallback (internal/process/next_tick.js:83:11)
  at process._tickCallback (internal/process/next_tick.js:104:9)
  at Module.runMain (module.js:606:11)
  at run (bootstrap_node.js:383:7)
  at startup (bootstrap_node.js:149:9)
By jayjay - 8 Dec 2017

it's better to use Oracle Java and not the OpenJDK, as there can some errors occur with OpenJDK.

You can install it like this:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

it's better to uninstall the OpenJDK first
By lindbergio - 10 Dec 2017

adamglatt - 9 Dec 2017
I'm getting the following error.  I've asked in the #help room on slack, but only found others with the same issue (following this guide), so hoping maybe it's as simple as an omitted step?


ERROR com.iota.iri.IRI - Exception during IOTA node initialisation:
java.lang.RuntimeException: java.net.BindException: Cannot assign requested address
  at io.undertow.Undertow.start(Undertow.java:203) ~[iri-1.4.1.2.jar:na]
  at com.iota.iri.service.API.init(API.java:156) ~[iri-1.4.1.2.jar:na]
  at com.iota.iri.IRI.main(IRI.java:87) ~[iri-1.4.1.2.jar:na]
Caused by: java.net.BindException: Cannot assign requested address
  at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_151]
  at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_151]
  at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_151]
  at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_151]
  at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_151]
  at org.xnio.nio.NioXnioWorker.createTcpConnectionServer(NioXnioWorker.java:190) ~[iri-1.4.1.2.jar:na]
  at org.xnio.XnioWorker.createStreamConnectionServer(XnioWorker.java:243) ~[iri-1.4.1.2.jar:na]
  at io.undertow.Undertow.start(Undertow.java:163) ~[iri-1.4.1.2.jar:na]
  ... 2 common frames omitted


Change the API_HOST variable to reflect your servers address in the iri.ini file.
By lindbergio - 10 Dec 2017

I would suggest running the applications using systemd service files instead of nohup. This will make it possible to start the applications on boot and makes for a better handling of the applications.

Here is the systemd service file I use for iri:
[Unit]
Description=Iri
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/iri/target
ExecStart=/usr/bin/java -jar iri-1.4.1.2.jar -c iri.ini
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Here is the systemd service file I use for iota-pm (collected from https://github.com/akashgoswami/ipm/blob/master/systemd/iota-pm.service):
[Unit]
Description=IOTA Peer Manager
After=network.target

[Service]
#User=iota
#Group=iota
Type=simple
ExecStart=/usr/bin/iota-pm -i http://127.0.0.1:14265 -p 127.0.0.1:8888
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Please come with suggestions to improve the systemd service files as I'm no expert.

Change the API endpoint and the local server ip and port to reflect your setup.
By lindbergio - 10 Dec 2017

jayjay - 8 Dec 2017
it's better to use Oracle Java and not the OpenJDK, as there can some errors occur with OpenJDK.

You can install it like this:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

it's better to uninstall the OpenJDK first

No, no! Please don't mix in more external repositories and especially not ppa's. Iri is working fine with openJDK/openJRE.

Don't Break Debian
By lindbergio - 10 Dec 2017

Carpincho - 4 Dec 2017
root@vmi152766:/opt# apt install default-jre
root@vmi152766:/opt# apt install default-jdk[/code]

Please change these to the headless versions of the packages (to avoid mixing in X11):
# apt install default-jre-headless
# apt install default-jdk-headless


By jayjay - 10 Dec 2017

lindbergio - 10 Dec 2017
jayjay - 8 Dec 2017
it's better to use Oracle Java and not the OpenJDK, as there can some errors occur with OpenJDK.

You can install it like this:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

it's better to uninstall the OpenJDK first

No, no! Please don't mix in more external repositories and especially not ppa's. Iri is working fine with openJDK/openJRE.

Don't Break Debian

Ask the devs, they also recommend to use Oracle Java
By Carpincho - 11 Dec 2017

lindbergio - 10 Dec 2017
Carpincho - 4 Dec 2017
root@vmi152766:/opt# apt install default-jre
root@vmi152766:/opt# apt install default-jdk[/code]

Please change these to the headless versions of the packages (to avoid mixing in X11):
# apt install default-jre-headless
# apt install default-jdk-headless


Lindbergio, unfortunately some minutes after creating this Post I was no longer able to Edit it so it has lot's of errors and missing last steps such as the download of a 30 minutes old mainnetdb which allows to sync via rescan in some minutes. I will add all this stuff to the source and then maybe create a new Post. Regarding your corrections, I should try them. This steps are working with a Fresh Debian 9 VPS. I did this routine enough so as to be sure that following this steps you get a running FN with IOTA-PM. Let me try those packages instead of the ones I used and if they go smooth I will consider the change. 

Thanks!
By Carpincho - 11 Dec 2017

lindbergio - 10 Dec 2017
I would suggest running the applications using systemd service files instead of nohup. This will make it possible to start the applications on boot and makes for a better handling of the applications.

Here is the systemd service file I use for iri:
[Unit]
Description=Iri
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/iri/target
ExecStart=/usr/bin/java -jar iri-1.4.1.2.jar -c iri.ini
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Here is the systemd service file I use for iota-pm (collected from https://github.com/akashgoswami/ipm/blob/master/systemd/iota-pm.service):
[Unit]
Description=IOTA Peer Manager
After=network.target

[Service]
#User=iota
#Group=iota
Type=simple
ExecStart=/usr/bin/iota-pm -i http://127.0.0.1:14265 -p 127.0.0.1:8888
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Please come with suggestions to improve the systemd service files as I'm no expert.

Change the API endpoint and the local server ip and port to reflect your setup.

This is definitely a missing part together with the download of the 30 minutes old mainnetdb. Will add in next post
By Carpincho - 11 Dec 2017

ionta - 8 Dec 2017
Hi, I get the following error when I try to run the visual interface. I installed the node following these instructions first: http://iota.partners/ -
Then I found your post and tried running the visual interface

Serving IOTA peer dashboard at http://94.130.229.186:8888
events.js:160
  throw er; // Unhandled 'error' event
  ^

Error: listen EADDRNOTAVAIL 94.130.229.186:8888
  at Object.exports._errnoException (util.js:1020:11)
  at exports._exceptionWithHostPort (util.js:1043:20)
  at Server._listen2 (net.js:1249:19)
  at listen (net.js:1298:10)
  at net.js:1408:9
  at _combinedTickCallback (internal/process/next_tick.js:83:11)
  at process._tickCallback (internal/process/next_tick.js:104:9)
  at Module.runMain (module.js:606:11)
  at run (bootstrap_node.js:383:7)
  at startup (bootstrap_node.js:149:9)

Ionta, be sure to have a reachable API endpoint at  94.130.229.186:14265. 
If you are in Linux, try doing this from your computer using your internet (not boxed in your VPS) 
curl http://localhost:14265 \
-X POST \
-H 'Content-Type: application/json' \
-H 'X-IOTA-API-Version: 1' \
-d '{"command": "getNodeInfo"}
'

This should return data from your node. Let me know the outcome.
By Scott J - 11 Dec 2017

Great guide, Carpincho. 

Thank you for including the Peer Manager part - that is a life saver! 
By ManniTiger - 11 Dec 2017

Hello,

i am absolut linux noob. Sad

at the end with nohub.....

when i close the session with putty, server stops means http://173.212.193.00:8888 stop connect / not available.

And what happens when the server restart?

Thx fpr your help

By Rachdingue - 13 Dec 2017

Muchas gracias Carpincho!

Will you keep updating this guide with some new features? I've seen improvements to peer managers and all that.

Thanks
By Carpincho - 13 Dec 2017

Scott J - 11 Dec 2017
Great guide, Carpincho. 

Thank you for including the Peer Manager part - that is a life saver! 

One thing I should add (and I will as soon as I can dedicate some time to redo the complete guide and repost it because I cannot edit it anymore) is that you can install the iota-pm on your local machine as well. In fact it's better because you wont end up with a public access point that anybody can use.
So you install iota-pm in the VPS and in your local computer and then you run it from home by using

nohup iota-pm -i http://173.212.193.00:14265 -p 127.0.0.1:12000 


That would give you access on your local browser at http://127.0.0.1:12000
By Carpincho - 13 Dec 2017

Rachdingue - 13 Dec 2017
Muchas gracias Carpincho!

Will you keep updating this guide with some new features? I've seen improvements to peer managers and all that.

Thanks

I can no longer edit this Post which is a pitty because this kind of guides need constant upgrades.
Will continue upgrading in some other place.
By captainbronzebeard - 14 Dec 2017

Mega noob question here, I have a full node running and is syncing. I still see that transactions and tips are going through but what I dont understand is what are tips? How do they work and how are they claimed? (if thats how it works?) 

Thank you

CBB
By Rachdingue - 15 Dec 2017

After a while my node seems to freeze or stops working. Although in the peer manager seems to be alright, the milestone doesn't refresh. I have to restart the node and then the milestone starts to refresh to the coordinator milestone

Why is that?
By NickM - 18 Dec 2017

HI need help getting this error :
iota@iota-PowerEdge-1950:/opt/iri/target$ java -jar iri-1.4.1.2.jar -c iri.ini12/18 17:47:13.379 [main] ERROR com.iota.iri.IRI - Invalid arguments list. Provide at least the PORT in iota.ini or with -p option
12/18 17:47:13.381 [main] INFO com.iota.iri.IRI - Usage: java -jar IRI-1.4.1.2.jar [{-n,--neighbors} '<list of neighbors>'] [{-p,--port} 14600] [{-c,--config} 'config-file-name'] [{-u,--udp-receiver-port} 14600] [{-t,--tcp-receiver-port} 15600] [{-d,--debug} false] [{--testnet} false][{--remote} false][{--remote-auth} string][{--remote-limit-api} string]
iota@iota-PowerEdge-1950:/opt/iri/targe
iri file
[IRI]
port = 14265
udp_receiver_port = 14600
tcp_receiver_port = 15600
neighbors = udp://neighbor-1:14600 udp://neighbor-2:14600
ixi_dir = ixi
Headless = false
Debug = true
db_path = mainnetdb
api_host = 192.168.1.125
By Carpincho - 18 Dec 2017

NickM - 18 Dec 2017
HI need help getting this error :
iota@iota-PowerEdge-1950:/opt/iri/target$ java -jar iri-1.4.1.2.jar -c iri.ini12/18 17:47:13.379 [main] ERROR com.iota.iri.IRI - Invalid arguments list. Provide at least the PORT in iota.ini or with -p option
12/18 17:47:13.381 [main] INFO com.iota.iri.IRI - Usage: java -jar IRI-1.4.1.2.jar [{-n,--neighbors} '<list of neighbors>'] [{-p,--port} 14600] [{-c,--config} 'config-file-name'] [{-u,--udp-receiver-port} 14600] [{-t,--tcp-receiver-port} 15600] [{-d,--debug} false] [{--testnet} false][{--remote} false][{--remote-auth} string][{--remote-limit-api} string]
iota@iota-PowerEdge-1950:/opt/iri/targe
iri file
[IRI]
port = 14265
udp_receiver_port = 14600
tcp_receiver_port = 15600
neighbors = udp://neighbor-1:14600 udp://neighbor-2:14600
ixi_dir = ixi
Headless = false
Debug = true
db_path = mainnetdb
api_host = 192.168.1.125

Hi NIckM
Are you using a config file with the name iri.ini12/18?
Maybe the problem is with the "/" and that's why your are getting that error.
Try renaming the file to something like iri.ini-12-18 and try with (mv iri.ini12/18 iri.ini-12-18) and then:
java -jar iri-1.4.1.2.jar -c iri.ini-12-18
By NickM - 19 Dec 2017

Carpincho - 18 Dec 2017
NickM - 18 Dec 2017
HI need help getting this error :
iota@iota-PowerEdge-1950:/opt/iri/target$ java -jar iri-1.4.1.2.jar -c iri.ini12/18 17:47:13.379 [main] ERROR com.iota.iri.IRI - Invalid arguments list. Provide at least the PORT in iota.ini or with -p option
12/18 17:47:13.381 [main] INFO com.iota.iri.IRI - Usage: java -jar IRI-1.4.1.2.jar [{-n,--neighbors} '<list of neighbors>'] [{-p,--port} 14600] [{-c,--config} 'config-file-name'] [{-u,--udp-receiver-port} 14600] [{-t,--tcp-receiver-port} 15600] [{-d,--debug} false] [{--testnet} false][{--remote} false][{--remote-auth} string][{--remote-limit-api} string]
iota@iota-PowerEdge-1950:/opt/iri/targe
iri file
[IRI]
port = 14265
udp_receiver_port = 14600
tcp_receiver_port = 15600
neighbors = udp://neighbor-1:14600 udp://neighbor-2:14600
ixi_dir = ixi
Headless = false
Debug = true
db_path = mainnetdb
api_host = 192.168.1.125

Hi NIckM
Are you using a config file with the name iri.ini12/18?
Maybe the problem is with the "/" and that's why your are getting that error.
Try renaming the file to something like iri.ini-12-18 and try with (mv iri.ini12/18 iri.ini-12-18) and then:
java -jar iri-1.4.1.2.jar -c iri.ini-12-18

no the file name is iri.ini the 12/18 was when it was created but is not in the file name.
By Carpincho - 19 Dec 2017

NickM - 19 Dec 2017
Carpincho - 18 Dec 2017
NickM - 18 Dec 2017
HI need help getting this error :
iota@iota-PowerEdge-1950:/opt/iri/target$ java -jar iri-1.4.1.2.jar -c iri.ini12/18 17:47:13.379 [main] ERROR com.iota.iri.IRI - Invalid arguments list. Provide at least the PORT in iota.ini or with -p option
12/18 17:47:13.381 [main] INFO com.iota.iri.IRI - Usage: java -jar IRI-1.4.1.2.jar [{-n,--neighbors} '<list of neighbors>'] [{-p,--port} 14600] [{-c,--config} 'config-file-name'] [{-u,--udp-receiver-port} 14600] [{-t,--tcp-receiver-port} 15600] [{-d,--debug} false] [{--testnet} false][{--remote} false][{--remote-auth} string][{--remote-limit-api} string]
iota@iota-PowerEdge-1950:/opt/iri/targe
iri file
[IRI]
port = 14265
udp_receiver_port = 14600
tcp_receiver_port = 15600
neighbors = udp://neighbor-1:14600 udp://neighbor-2:14600
ixi_dir = ixi
Headless = false
Debug = true
db_path = mainnetdb
api_host = 192.168.1.125

Hi NIckM
Are you using a config file with the name iri.ini12/18?
Maybe the problem is with the "/" and that's why your are getting that error.
Try renaming the file to something like iri.ini-12-18 and try with (mv iri.ini12/18 iri.ini-12-18) and then:
java -jar iri-1.4.1.2.jar -c iri.ini-12-18

no the file name is iri.ini the 12/18 was when it was created but is not in the file name.

My bad!
It's kind of a weird error since the argument you are passing is fine.
Let's try this: update to latest IRI released a few days ago and try again
Go to your target directory and do this:
wget https://github.com/iotaledger/iri/releases/download/v1.4.1.4/iri-1.4.1.4.jar

That will download the already compiled version of the 1.4.1.4 IRI
Then try again with
java -jar iri-1.4.1.4.jar -c iri.ini

Please be sure that your config file is actually named iri.ini !!!
Let me know the outcome

By NickM - 19 Dec 2017

Carpincho - 19 Dec 2017
NickM - 19 Dec 2017
Carpincho - 18 Dec 2017
NickM - 18 Dec 2017
HI need help getting this error :
iota@iota-PowerEdge-1950:/opt/iri/target$ java -jar iri-1.4.1.2.jar -c iri.ini12/18 17:47:13.379 [main] ERROR com.iota.iri.IRI - Invalid arguments list. Provide at least the PORT in iota.ini or with -p option
12/18 17:47:13.381 [main] INFO com.iota.iri.IRI - Usage: java -jar IRI-1.4.1.2.jar [{-n,--neighbors} '<list of neighbors>'] [{-p,--port} 14600] [{-c,--config} 'config-file-name'] [{-u,--udp-receiver-port} 14600] [{-t,--tcp-receiver-port} 15600] [{-d,--debug} false] [{--testnet} false][{--remote} false][{--remote-auth} string][{--remote-limit-api} string]
iota@iota-PowerEdge-1950:/opt/iri/targe
iri file
[IRI]
port = 14265
udp_receiver_port = 14600
tcp_receiver_port = 15600
neighbors = udp://neighbor-1:14600 udp://neighbor-2:14600
ixi_dir = ixi
Headless = false
Debug = true
db_path = mainnetdb
api_host = 192.168.1.125

Hi NIckM
Are you using a config file with the name iri.ini12/18?
Maybe the problem is with the "/" and that's why your are getting that error.
Try renaming the file to something like iri.ini-12-18 and try with (mv iri.ini12/18 iri.ini-12-18) and then:
java -jar iri-1.4.1.2.jar -c iri.ini-12-18

no the file name is iri.ini the 12/18 was when it was created but is not in the file name.

My bad!
It's kind of a weird error since the argument you are passing is fine.
Let's try this: update to latest IRI released a few days ago and try again
Go to your target directory and do this:
wget https://github.com/iotaledger/iri/releases/download/v1.4.1.4/iri-1.4.1.4.jar

That will download the already compiled version of the 1.4.1.4 IRI
Then try again with
java -jar iri-1.4.1.4.jar -c iri.ini

Please be sure that your config file is actually named iri.ini !!!
Let me know the outcome


thanks but no joy. The error message "Provide at least the PORT in iota.ini or with -p option " makes think that there is a ini file in the folder iota. I did double check the file name is iri.ini
By Carpincho - 19 Dec 2017

NickM - 19 Dec 2017
Carpincho - 19 Dec 2017
NickM - 19 Dec 2017
Carpincho - 18 Dec 2017
NickM - 18 Dec 2017
HI need help getting this error :
iota@iota-PowerEdge-1950:/opt/iri/target$ java -jar iri-1.4.1.2.jar -c iri.ini12/18 17:47:13.379 [main] ERROR com.iota.iri.IRI - Invalid arguments list. Provide at least the PORT in iota.ini or with -p option
12/18 17:47:13.381 [main] INFO com.iota.iri.IRI - Usage: java -jar IRI-1.4.1.2.jar [{-n,--neighbors} '<list of neighbors>'] [{-p,--port} 14600] [{-c,--config} 'config-file-name'] [{-u,--udp-receiver-port} 14600] [{-t,--tcp-receiver-port} 15600] [{-d,--debug} false] [{--testnet} false][{--remote} false][{--remote-auth} string][{--remote-limit-api} string]
iota@iota-PowerEdge-1950:/opt/iri/targe
iri file
[IRI]
port = 14265
udp_receiver_port = 14600
tcp_receiver_port = 15600
neighbors = udp://neighbor-1:14600 udp://neighbor-2:14600
ixi_dir = ixi
Headless = false
Debug = true
db_path = mainnetdb
api_host = 192.168.1.125

Hi NIckM
Are you using a config file with the name iri.ini12/18?
Maybe the problem is with the "/" and that's why your are getting that error.
Try renaming the file to something like iri.ini-12-18 and try with (mv iri.ini12/18 iri.ini-12-18) and then:
java -jar iri-1.4.1.2.jar -c iri.ini-12-18

no the file name is iri.ini the 12/18 was when it was created but is not in the file name.

My bad!
It's kind of a weird error since the argument you are passing is fine.
Let's try this: update to latest IRI released a few days ago and try again
Go to your target directory and do this:
wget https://github.com/iotaledger/iri/releases/download/v1.4.1.4/iri-1.4.1.4.jar

That will download the already compiled version of the 1.4.1.4 IRI
Then try again with
java -jar iri-1.4.1.4.jar -c iri.ini

Please be sure that your config file is actually named iri.ini !!!
Let me know the outcome


thanks but no joy. The error message "Provide at least the PORT in iota.ini or with -p option " makes think that there is a ini file in the folder iota. I did double check the file name is iri.ini

Try just running the node with the port param to see if that works
java -jar iri-1.4.1.4.jar -p 14265


By NickM - 20 Dec 2017

Carpincho - 19 Dec 2017
NickM - 19 Dec 2017
Carpincho - 19 Dec 2017
NickM - 19 Dec 2017
Carpincho - 18 Dec 2017
NickM - 18 Dec 2017
HI need help getting this error :
iota@iota-PowerEdge-1950:/opt/iri/target$ java -jar iri-1.4.1.2.jar -c iri.ini12/18 17:47:13.379 [main] ERROR com.iota.iri.IRI - Invalid arguments list. Provide at least the PORT in iota.ini or with -p option
12/18 17:47:13.381 [main] INFO com.iota.iri.IRI - Usage: java -jar IRI-1.4.1.2.jar [{-n,--neighbors} '<list of neighbors>'] [{-p,--port} 14600] [{-c,--config} 'config-file-name'] [{-u,--udp-receiver-port} 14600] [{-t,--tcp-receiver-port} 15600] [{-d,--debug} false] [{--testnet} false][{--remote} false][{--remote-auth} string][{--remote-limit-api} string]
iota@iota-PowerEdge-1950:/opt/iri/targe
iri file
[IRI]
port = 14265
udp_receiver_port = 14600
tcp_receiver_port = 15600
neighbors = udp://neighbor-1:14600 udp://neighbor-2:14600
ixi_dir = ixi
Headless = false
Debug = true
db_path = mainnetdb
api_host = 192.168.1.125

Hi NIckM
Are you using a config file with the name iri.ini12/18?
Maybe the problem is with the "/" and that's why your are getting that error.
Try renaming the file to something like iri.ini-12-18 and try with (mv iri.ini12/18 iri.ini-12-18) and then:
java -jar iri-1.4.1.2.jar -c iri.ini-12-18

no the file name is iri.ini the 12/18 was when it was created but is not in the file name.

My bad!
It's kind of a weird error since the argument you are passing is fine.
Let's try this: update to latest IRI released a few days ago and try again
Go to your target directory and do this:
wget https://github.com/iotaledger/iri/releases/download/v1.4.1.4/iri-1.4.1.4.jar

That will download the already compiled version of the 1.4.1.4 IRI
Then try again with
java -jar iri-1.4.1.4.jar -c iri.ini

Please be sure that your config file is actually named iri.ini !!!
Let me know the outcome


thanks but no joy. The error message "Provide at least the PORT in iota.ini or with -p option " makes think that there is a ini file in the folder iota. I did double check the file name is iri.ini

Try just running the node with the port param to see if that works
java -jar iri-1.4.1.4.jar -p 14265



Yes the node will run without any errors when using -p 14265
By NickM - 20 Dec 2017

NickM - 20 Dec 2017
Carpincho - 19 Dec 2017
NickM - 19 Dec 2017
Carpincho - 19 Dec 2017
NickM - 19 Dec 2017
Carpincho - 18 Dec 2017
NickM - 18 Dec 2017
HI need help getting this error :
iota@iota-PowerEdge-1950:/opt/iri/target$ java -jar iri-1.4.1.2.jar -c iri.ini12/18 17:47:13.379 [main] ERROR com.iota.iri.IRI - Invalid arguments list. Provide at least the PORT in iota.ini or with -p option
12/18 17:47:13.381 [main] INFO com.iota.iri.IRI - Usage: java -jar IRI-1.4.1.2.jar [{-n,--neighbors} '<list of neighbors>'] [{-p,--port} 14600] [{-c,--config} 'config-file-name'] [{-u,--udp-receiver-port} 14600] [{-t,--tcp-receiver-port} 15600] [{-d,--debug} false] [{--testnet} false][{--remote} false][{--remote-auth} string][{--remote-limit-api} string]
iota@iota-PowerEdge-1950:/opt/iri/targe
iri file
[IRI]
port = 14265
udp_receiver_port = 14600
tcp_receiver_port = 15600
neighbors = udp://neighbor-1:14600 udp://neighbor-2:14600
ixi_dir = ixi
Headless = false
Debug = true
db_path = mainnetdb
api_host = 192.168.1.125

Hi NIckM
Are you using a config file with the name iri.ini12/18?
Maybe the problem is with the "/" and that's why your are getting that error.
Try renaming the file to something like iri.ini-12-18 and try with (mv iri.ini12/18 iri.ini-12-18) and then:
java -jar iri-1.4.1.2.jar -c iri.ini-12-18

no the file name is iri.ini the 12/18 was when it was created but is not in the file name.

My bad!
It's kind of a weird error since the argument you are passing is fine.
Let's try this: update to latest IRI released a few days ago and try again
Go to your target directory and do this:
wget https://github.com/iotaledger/iri/releases/download/v1.4.1.4/iri-1.4.1.4.jar

That will download the already compiled version of the 1.4.1.4 IRI
Then try again with
java -jar iri-1.4.1.4.jar -c iri.ini

Please be sure that your config file is actually named iri.ini !!!
Let me know the outcome


thanks but no joy. The error message "Provide at least the PORT in iota.ini or with -p option " makes think that there is a ini file in the folder iota. I did double check the file name is iri.ini

Try just running the node with the port param to see if that works
java -jar iri-1.4.1.4.jar -p 14265



Yes the node will run without any errors when using -p 14265

also runs if i do this: java -jar iri-1.4.1.4.jar -c iri.ini -p 1426
By mixim - 20 Dec 2017

lindbergio - 10 Dec 2017
I would suggest running the applications using systemd service files instead of nohup. This will make it possible to start the applications on boot and makes for a better handling of the applications.

Here is the systemd service file I use for iri:
[Unit]
Description=Iri
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/iri/target
ExecStart=/usr/bin/java -jar iri-1.4.1.2.jar -c iri.ini
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Here is the systemd service file I use for iota-pm (collected from https://github.com/akashgoswami/ipm/blob/master/systemd/iota-pm.service):
[Unit]
Description=IOTA Peer Manager
After=network.target

[Service]
#User=iota
#Group=iota
Type=simple
ExecStart=/usr/bin/iota-pm -i http://127.0.0.1:14265 -p 127.0.0.1:8888
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Please come with suggestions to improve the systemd service files as I'm no expert.

Change the API endpoint and the local server ip and port to reflect your setup.

Hi,
thx for the service files, i used that, but i was aware that my CPU load raised up to
200% (VPS, 2 Cores), so i added the following lines in the [Service]-Section:

CPUAccounting=true
CPUQuota=75%

to limit the CPU-load, cause i use the server for other services also. For every CPU-Core
you have 100%, so you have to decide how much percentage you may give to your IOTA-node.
In my case it is 75 / 200 % = 37,5 %

Cheers, MiXiM
By Carpincho - 21 Dec 2017

NickM - 20 Dec 2017
NickM - 20 Dec 2017
Carpincho - 19 Dec 2017
NickM - 19 Dec 2017
Carpincho - 19 Dec 2017
NickM - 19 Dec 2017
Carpincho - 18 Dec 2017
NickM - 18 Dec 2017
HI need help getting this error :
iota@iota-PowerEdge-1950:/opt/iri/target$ java -jar iri-1.4.1.2.jar -c iri.ini12/18 17:47:13.379 [main] ERROR com.iota.iri.IRI - Invalid arguments list. Provide at least the PORT in iota.ini or with -p option
12/18 17:47:13.381 [main] INFO com.iota.iri.IRI - Usage: java -jar IRI-1.4.1.2.jar [{-n,--neighbors} '<list of neighbors>'] [{-p,--port} 14600] [{-c,--config} 'config-file-name'] [{-u,--udp-receiver-port} 14600] [{-t,--tcp-receiver-port} 15600] [{-d,--debug} false] [{--testnet} false][{--remote} false][{--remote-auth} string][{--remote-limit-api} string]
iota@iota-PowerEdge-1950:/opt/iri/targe
iri file
[IRI]
port = 14265
udp_receiver_port = 14600
tcp_receiver_port = 15600
neighbors = udp://neighbor-1:14600 udp://neighbor-2:14600
ixi_dir = ixi
Headless = false
Debug = true
db_path = mainnetdb
api_host = 192.168.1.125

Hi NIckM
Are you using a config file with the name iri.ini12/18?
Maybe the problem is with the "/" and that's why your are getting that error.
Try renaming the file to something like iri.ini-12-18 and try with (mv iri.ini12/18 iri.ini-12-18) and then:
java -jar iri-1.4.1.2.jar -c iri.ini-12-18

no the file name is iri.ini the 12/18 was when it was created but is not in the file name.

My bad!
It's kind of a weird error since the argument you are passing is fine.
Let's try this: update to latest IRI released a few days ago and try again
Go to your target directory and do this:
wget https://github.com/iotaledger/iri/releases/download/v1.4.1.4/iri-1.4.1.4.jar

That will download the already compiled version of the 1.4.1.4 IRI
Then try again with
java -jar iri-1.4.1.4.jar -c iri.ini

Please be sure that your config file is actually named iri.ini !!!
Let me know the outcome


thanks but no joy. The error message "Provide at least the PORT in iota.ini or with -p option " makes think that there is a ini file in the folder iota. I did double check the file name is iri.ini

Try just running the node with the port param to see if that works
java -jar iri-1.4.1.4.jar -p 14265



Yes the node will run without any errors when using -p 14265

also runs if i do this: java -jar iri-1.4.1.4.jar -c iri.ini -p 1426

This is strange but I guess you can run it by passing -c and -p despite the fact that PORT is included in the iri.ini file.
Could you get it to work?
Let me know!
By Carpincho - 21 Dec 2017

mixim - 20 Dec 2017
lindbergio - 10 Dec 2017
I would suggest running the applications using systemd service files instead of nohup. This will make it possible to start the applications on boot and makes for a better handling of the applications.

Here is the systemd service file I use for iri:
[Unit]
Description=Iri
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/iri/target
ExecStart=/usr/bin/java -jar iri-1.4.1.2.jar -c iri.ini
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Here is the systemd service file I use for iota-pm (collected from https://github.com/akashgoswami/ipm/blob/master/systemd/iota-pm.service):
[Unit]
Description=IOTA Peer Manager
After=network.target

[Service]
#User=iota
#Group=iota
Type=simple
ExecStart=/usr/bin/iota-pm -i http://127.0.0.1:14265 -p 127.0.0.1:8888
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Please come with suggestions to improve the systemd service files as I'm no expert.

Change the API endpoint and the local server ip and port to reflect your setup.

Hi,
thx for the service files, i used that, but i was aware that my CPU load raised up to
200% (VPS, 2 Cores), so i added the following lines in the [Service]-Section:

CPUAccounting=true
CPUQuota=75%

to limit the CPU-load, cause i use the server for other services also. For every CPU-Core
you have 100%, so you have to decide how much percentage you may give to your IOTA-node.
In my case it is 75 / 200 % = 37,5 %

Cheers, MiXiM

I am also having killer loads on my CPUs.
Whill try adding those lines!
By NickM - 21 Dec 2017

Carpincho - 21 Dec 2017
NickM - 20 Dec 2017
NickM - 20 Dec 2017
Carpincho - 19 Dec 2017
NickM - 19 Dec 2017
Carpincho - 19 Dec 2017
NickM - 19 Dec 2017
Carpincho - 18 Dec 2017
NickM - 18 Dec 2017
HI need help getting this error :
iota@iota-PowerEdge-1950:/opt/iri/target$ java -jar iri-1.4.1.2.jar -c iri.ini12/18 17:47:13.379 [main] ERROR com.iota.iri.IRI - Invalid arguments list. Provide at least the PORT in iota.ini or with -p option
12/18 17:47:13.381 [main] INFO com.iota.iri.IRI - Usage: java -jar IRI-1.4.1.2.jar [{-n,--neighbors} '<list of neighbors>'] [{-p,--port} 14600] [{-c,--config} 'config-file-name'] [{-u,--udp-receiver-port} 14600] [{-t,--tcp-receiver-port} 15600] [{-d,--debug} false] [{--testnet} false][{--remote} false][{--remote-auth} string][{--remote-limit-api} string]
iota@iota-PowerEdge-1950:/opt/iri/targe
iri file
[IRI]
port = 14265
udp_receiver_port = 14600
tcp_receiver_port = 15600
neighbors = udp://neighbor-1:14600 udp://neighbor-2:14600
ixi_dir = ixi
Headless = false
Debug = true
db_path = mainnetdb
api_host = 192.168.1.125

Hi NIckM
Are you using a config file with the name iri.ini12/18?
Maybe the problem is with the "/" and that's why your are getting that error.
Try renaming the file to something like iri.ini-12-18 and try with (mv iri.ini12/18 iri.ini-12-18) and then:
java -jar iri-1.4.1.2.jar -c iri.ini-12-18

no the file name is iri.ini the 12/18 was when it was created but is not in the file name.

My bad!
It's kind of a weird error since the argument you are passing is fine.
Let's try this: update to latest IRI released a few days ago and try again
Go to your target directory and do this:
wget https://github.com/iotaledger/iri/releases/download/v1.4.1.4/iri-1.4.1.4.jar

That will download the already compiled version of the 1.4.1.4 IRI
Then try again with
java -jar iri-1.4.1.4.jar -c iri.ini

Please be sure that your config file is actually named iri.ini !!!
Let me know the outcome


thanks but no joy. The error message "Provide at least the PORT in iota.ini or with -p option " makes think that there is a ini file in the folder iota. I did double check the file name is iri.ini

Try just running the node with the port param to see if that works
java -jar iri-1.4.1.4.jar -p 14265



Yes the node will run without any errors when using -p 14265

also runs if i do this: java -jar iri-1.4.1.4.jar -c iri.ini -p 1426

This is strange but I guess you can run it by passing -c and -p despite the fact that PORT is included in the iri.ini file.
Could you get it to work?
Let me know!

Yes it runs passing the -c and -p on the sane line but not able to reach it from my other linux system, curl returns Host not found.  Iota is running so on to the next problem.
thanks for your help.
By greensheep - 24 Dec 2017

1) Can anyone give some information on Contabo mentioned in the original guide? Their prices look suspiciously good for what they're offering. Most reviews are older, but from what I can tell, they oversell and aren't reliable? Was hoping someone would have a more recent view on this.
1a) How reliable are they?
2) What other vps providers are other people using?
3) How intensive is the full node? How much cpu can I limit it before it's no longer feasible? I'm thinking of getting a vps with more resources so I can run my other apps/servers alongside the full node, but obviously the apps/servers should have a higher priority over the full node (no offense lol).
By mixim - 24 Dec 2017

Hi greensheep,
i run my VPS M (SSD boosted) with a full IOTA-node. With Contabo as provider i am very pleased. Never had a problem with reliability.
But if u run ur IOTA-node (provider is irrelevant) limit the CPU-usage like described here:
   https://forum.helloiota.com/post/6261
the service sometimes uses much CPU (up to 100 %), so espacially if u have other services on the server and don't want ur server be blocked
i recommend to add the two attributes to limit CPUtime for IOTA-service.
Cheers, MiXiM
By Carpincho - 26 Dec 2017

greensheep - 24 Dec 2017
1) Can anyone give some information on Contabo mentioned in the original guide? Their prices look suspiciously good for what they're offering. Most reviews are older, but from what I can tell, they oversell and aren't reliable? Was hoping someone would have a more recent view on this.
1a) How reliable are they?
2) What other vps providers are other people using?
3) How intensive is the full node? How much cpu can I limit it before it's no longer feasible? I'm thinking of getting a vps with more resources so I can run my other apps/servers alongside the full node, but obviously the apps/servers should have a higher priority over the full node (no offense lol).

For me it works nice.
The plan used in the tutorial is fine to run a FN and help the network but if you wanna use it a lot and you are planning to connect many wallets to it you should go with a higher resources plan.
Before this VPS I tryied a Digital Ocean instance for the same price. That was really bad. So, for about 10 USD Contabo is the best I had so far.
Please feel free to recommend other better solutions!
By xgarb - 27 Dec 2017

What commands should I use to update to the newest version of IRI?
By Carpincho - 27 Dec 2017

xgarb - 27 Dec 2017
What commands should I use to update to the newest version of IRI?

Just download the already compiled version and place it in the same folder. Then change the java -jar command to match the new IRI name.
Go to your target directory and do this:

wget https://github.com/iotaledger/iri/releases/download/v1.4.1.4/iri-1.4.1.4.jar

java -jar iri-1.4.1.4.jar -c iri.ini
By frha - 7 Jan 2018

Regardless of which 'version' of IRI you run - buildt or downloaded -  NEVER run this as the 'root' -user.
By NickM - 8 Jan 2018

Getting this error.
java.lang.RuntimeException: java.net.BindException: Cannot assign requested address
    at io.undertow.Undertow.start(Undertow.java:203) ~[iri-1.4.1.4.jar:na]
    at com.iota.iri.service.API.init(API.java:152) ~[iri-1.4.1.4.jar:na]
    at com.iota.iri.IRI.main(IRI.java:74) ~[iri-1.4.1.4.jar:na]
Caused by: java.net.BindException: Cannot assign requested address
    at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_151]
    at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_151]
    at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_151]
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_151]
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_151]
    at org.xnio.nio.NioXnioWorker.createTcpConnectionServer(NioXnioWorker.java:190) ~[iri-1.4.1.4.jar:na]
    at org.xnio.XnioWorker.createStreamConnectionServer(XnioWorker.java:243) ~[iri-1.4.1.4.jar:na]
    at io.undertow.Undertow.start(Undertow.java:163) ~[iri-1.4.1.4.jar:na]
    ... 2 common frames omitted

Thanks for any help


By mixim - 8 Jan 2018

NickM - 8 Jan 2018
Getting this error.
java.lang.RuntimeException: java.net.BindException: Cannot assign requested address
    at io.undertow.Undertow.start(Undertow.java:203) ~[iri-1.4.1.4.jar:na]
    at com.iota.iri.service.API.init(API.java:152) ~[iri-1.4.1.4.jar:na]
    at com.iota.iri.IRI.main(IRI.java:74) ~[iri-1.4.1.4.jar:na]
Caused by: java.net.BindException: Cannot assign requested address
    at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_151]
    at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_151]
    at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_151]
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_151]
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_151]
    at org.xnio.nio.NioXnioWorker.createTcpConnectionServer(NioXnioWorker.java:190) ~[iri-1.4.1.4.jar:na]
    at org.xnio.XnioWorker.createStreamConnectionServer(XnioWorker.java:243) ~[iri-1.4.1.4.jar:na]
    at io.undertow.Undertow.start(Undertow.java:163) ~[iri-1.4.1.4.jar:na]
    ... 2 common frames omitted

Thanks for any help



Hi Nick,
that means that the/one port(s) u configure in ur .ini-file for the IOTA-service are currently used by another
service or program. Another cause could be, that u don't have the permission to open another socket to
the outside world. Difficult to determine only by stack trace ...
But i assume that some other program is using one port u configured in ur .ini-file.
U may check the ports by using this command:

foo@server:~#sudo lsof -i -P -n

If u grep only the interesting port 14600 (or 15600) the output should look like this:

foo@server:~# sudo lsof -i -P -n | grep 14600
java  18037  iota 39u IPv6  1980698  0t0 UDP *:14600

Hope that helps, cheers, MiXiM
By Olivenhofer - 27 Jan 2018

Hi,

I followed your instructions and have a IRI .1.7 installation running on a Debian 9 VPS but every time I start IRI it can't resolve the URI that I give it of
up and running neighbor nodes. It always comes back with the error ' "https://xyzblabla" is not a valid uri schema or resolvable address. '

I can ping the addresses alright. But somehow the IRI process can't seem to see it. I ran it already with the dns-resolution-false flag, but no change.

I somehow think it has something to do with having it run on the VPS but as you have done the same above, it seems there shouldn't be a problem. Anyone ran into the same issue ?

Cheers,
By Carpincho - 19 Feb 2018

Hi guys
I am trying to get edit permission so I can update/improve the post.
Will let you know once I can do that.
Thanks for all the valuable inputs!
By pronosof - 24 Feb 2020

Thanks! Everyone can setup a Full
Node just be following those steps. I hope it helps!