Deploy IOTA IRI (IOTA Refernce Implementation) full node on Arch Linux

IOTA IRI is the reference implementation of IOTA nodes. There are some pain about IOTA documentation on the GitHub, after some explore, I note the step for others to reduce the pain of install and running IOTA iri in full node.

0x1 Installation of IRI on Arch Linux

On Arch Linux, there have a aur/iri, so it is quite simple to install iri and deal with the dependency:

If you are not Arch, you may build iri from scratch (this requrie you to install marven first):

After install, you can test iri by typing:

0x2 Add iri config file

We will put the configure under /etc, so please write then following content into /etc/iri.ini:

Here to explain each option:

  • PORT: This is a mandatory option that defines the port to be used to send API commands to your node
  • UDP_RECEIVER_PORT: This is the port for receiving tx from other nodes via tcp, if you want to give your ip to others, please gave it:  udp://your-ip-or-domain:[UDP_RECEIVER_PORT], e.g. udp://iotanode1.louie.lu:19775
  • TCP_RECEIVER_PORT: This is the port for receiving tx from other nodes via tcp, if you want to give your ip to others, please gave it: tcp://your-ip-or-domain:[TCP_RECEIVER_PORT], e.g.: tcp://iotanode1.louie.lu:18750
  • NEIGHBORS: the most important setting, you will have to add other nodes to make sure you are sync in the tangle. And, neighbors must setup both side so that the connect will be established, if only setup the neighbors yourself, it just won’t works. For how to exchange neighbors, please scroll down to the bottom, I will explain it.
  • HEADLESS: run without GUI
  • DB_PATH: your database path
  • DB_LOG_PATH: your database log path
  • REMOTE_LIMIT_API: Exclude certain API calls from being able to be accessed remotely, for full API list, please visit iri API reference
  • API_HOST: This will setup your host, if you want to let your node API visible by other, make sure this is 0.0.0.0, default is localhost
  • IRI_OPTIONS: Set iri with option --remote

0x3 Adding systemd service unit

There is no service unit in the aur package, so you must do it your self. The service unit can let you control, manage iri via systemd.

Write the following content into /etc/systemd/system/iri.service:

0x4 Start the iri servcie

Glad you are here, this is the final step to start our IOTA iri full node.

Now, using the following command to enable and start iri:

After a few seconds, you can use systemctl status iri to check the status:

0x5 Check iri status via cURL

There are some API for iri that we can use to check the status or manipulate iri. For example, we can check neighbors status via getNeighbors:

Please notice, the port that using with curl is the setting of PORT, not UDP_RECEIVER_PORT or TCP_RECEIVER_PORT.

And, if you didn’t set up with API_HOST, IRI_OPTIONS, you will not able to request from other computer or devices to your node.

For how to making a request, please visit Making Requests, for the full API list, please visit API Reference.

0x6 The Neighbors

This is my nodes:

You can add these nodes, and contact me to add you too.

For others node, you will need to exchange at iota slack , or iota telegram. I think there will be a much better method to deal with in the future.

0x7 Reference

0x8 Additional

That’s all! Have a nice day!

If you like this post, you can tip here:

  • BTC: 3BzwnZ4UrqXx7xPafi7Lb4WuFBNizSfnh5
  • ETH: 0x07b0cEEECCd90900B8d4894bCbe2e8A632783F34
  • LTC: MNBTs339PLXKdv2U2Z8dpvdLBMsqATkEyR
  • LTC(ddeprecated): 3FyKZ9dBSDftqQkZvg9J1HNvrfHP89PJFk
  • DASH: XehuTHVnBfF6dqRYQfA9SV9oYyFhrNxiyW
  • BTH: 12YGnthT4RSUW6a4WDivDp9rLogGkcpcCP

3 comments On Deploy IOTA IRI (IOTA Refernce Implementation) full node on Arch Linux

Leave a reply:

Your email address will not be published.