IOTA Omega-ict tutorial: Chat.ixi and Report.ixi

UPDATE : This tutorial was updated to work with ict 0.4 .
Visualization of the ict network, thanks to Report.ixi (only alpha testers node represented, not all the ict network).
The first part of this tutorial is intended for people already running ict. If you have never installed ict before, simply follow that guide first, it will automatically install both chat.ixi and report.ixi as well. After that jump to the section 3 of the present tutorial (Configuration of report.ixi) to configure the IXIs.

Introduction

A complete introduction to ict and chat.ixi was published by microhash a few days ago. It gives plenty of information about the vision for ict and the way chat.ixi works.

Report.ixi is a second module, created by two community members (ixuz#6751 and testIT#4170) with the goal of gathering valuable information on the state of the ict network. This IXI checks if your ict node is running properly and it also reports the status of the link with its neighbors. All the data gathered is then sent to a Report Collecting Service (RCS). No rigorous identification data are sent to that service : no IP, location or whatever. Report.ixi only sends the name you chose to give to your node. The nodes are all identified by a unique ID number and only that number identifies your ict (along with the name you gave it, usually your discord name).

The RCS then provides an API endpoint so that researchers can use it to simulate the actual network for testing purpose (without even needing to run the test on the ict network itself). It also allows for visualization of the whole network. Such visualizer was already developed by Bouke#0668. You can check it here : https://datahoff.shinyapps.io/iota_ict/ .

You will need…

For this setup tutorial, you will need a system with ict already running. If you are a new user, please simply install ict with the first tutorial, everything needed for chat.ixi and report.ixi will be downloaded automatically; then take this tutorial from step 3 for the configuration of IXIs.

Topics covered

  1. Updating the all-in-one installer from Phil
  2. Update of ict, installation of the two IXIs
  3. Configuration of Report.ixi
    a. Configure file
    b. Port forwarding
  4. Run the IXIs
  5. Chat.ixi utilization
  6. Report.ixi utilization
  7. Keep install up-to-date

1. Updating the all-in one installer

The script you once used to install ict was expended multiple times to add new features, such as the automatic install of the two first public IXIs. Therefore, we need to remove the old installer and download the new one.

To do that, go to your home folder by simply typing cd . Remove the old script with sudo rm install-ict.sh. This command is not mandatory, it is just for some cleanup, so if it fails, move on you are not concerned by it.
Download then the github repo with the install script (it will be easier for maintenance)

sudo git clone https://github.com/phschaeff/ict-install
If you already have that repo (your system will tell you), go to the part 7 of this tutorial to simply keep everything up to date.

2. Update of ict, installation of IXIs

Enter the newly created repository and then execute the script by successively typing

cd ict-install
sudo sh install-ict.sh <BUILD/RELEASE> "<nodename> (ict-<XXX>)"

With the most recent version of the install script, it is possible to update ict and download RELEASE version, you are no longer required to use BUILD. I strongly advice to use RELEASEif you are a unexperimented user. 
Replace <nodename> (ict-<XXX>) by the name of your ict instance. Do not forget the " ". For instance, that would be

sudo sh install-ict.sh RELEASE "lambtho (ict-0)"

This name will be used for the chat and the report IXIs. We chose to all use the same convention for clarity. That is <discord_name_without_space> (ict-<number>) . Please respect that naming convention, so it will be easier to identify who is who and inform people of node failure upon analysis of the graph. That gives for example (if it is your first ict): lambtho (ict-0) ; if it is the second one lambtho (ict-1) and so on.
This single command line will update your ict to the latest version and install the two IXI modules.

Please use RELEASE version if you are not comfortable with developing or linux environment. This will work 100% of the time, while building the sources from master branch (by choosing BUILD) may lead to the use of unstable snapshot versions and will be hard to debug.

3. Configuration of Report.ixi and Chat.ixi

Report.ixi

Report.ixi needs to know your neighbors address and require you to open a port in your firewall/router. So an extra configuration step is required.

Report.ixi has a config file similar to the one of ict. If everything went properly during the install, it should already be pre-filled with all relevant information.

The default configuration should be fine for most users. So you will likely do not need to change anything in it. However, some users may want to use an other port than the default one, so they will need to tweak the config file and their neighbor will need to update the address in their config file as well.

You can open it with

sudo nano /home/ict/omega-ict/modules/report.ixi/report.ixi.cfg

Change your neighbors just like for ict, but with the right port

neighbors=123.456.17.97:1338,myneighbor.ddns.net:14650,myotherneighbor.noip.com:1235

And if your name is not set automatically, change it as well. We chose to all use the same convention for clarity. That is <discord_name_without_space> (ict-<number>) . Please respect that naming convention, so it will be easier to identify who is who and inform people of node failure upon analysis of the graph. That gives for example (if it is your first ict): lambtho (ict-0) ; if it is the second one lambtho (ict-1) and so on.

You notice that by default, the port 1338 is used for Report.ixi. It is perfectly ok to keep that port. Note that your neighbor address are also pre-completed with that one.
However, if one of your neighbor tells your that they have changed the default port for something else (let’s say 1234), you will have to modify their address on the neighbors line to reflect that change. For instance neighbors=my.neighbor.ip:1324 .

As always, save with ctrl + O , then ctrl + X .

Please take a moment to tell your neighbor the port you will be using for Report.ixi to ensure optimal reporting.
Just to be sure : ports for report-ixi and port for ict (in ict.cfg) are not linked. See them as two different systems. You must not change anything in the ict.cfg file when configuring an IXI, only change the IXI config file.

As explained in the previous section, Report.ixi needs its own port to operate. So once again, go into your router port-forwarding tab and open the right port. By default it is 1338 , in udp . If you do not remember how to do it, go check the ict install tutorial for those steps.

Chat.ixi

The last step is to modify chat.ixi config to set your username and password properly. This config is in

sudo nano /home/ict/omega-ict/modules/chat-config/chat.cfg

There you can set your username and a password. Then save and exit.

4. Run the IXIs

Since Ict 0.4, the IXIs are now automatically managed by Ict. So you only need to restart ict to take into account the new config of the IXIs.

sudo systemctl restart ict

5. Chat.ixi utilization

Once Chat.ixi is running on your ict device, you can go on the web graphical user interface of ict by typing your ict IP address on any browser with port 2187. For instance if you have a ict on a pi on your local network, use something like 192.168.1.28:2187. If the pi is running on a VPS or if you try to access it from outside of your network, type the IP of the VPS or the noip domain of your pi, followed by :2187.

The website will first ask you for a password. This is the one you set up in ict.cfg . If you did not modified it, use the default one.

Now go to modules. Under chat.ixi, click open. You will first be prompted with an error message. Just click ok. The webpage will now ask you for a password. Use the one defined in chat.cfg . And voià, you are in !

6. Report.ixi utilization

There is nothing special to do with Report.ixi. Just ensure it is running and the port correctly opened. It is that simple. This IXI will continuously report the state of your device and the connection with its neighbors to the report collecting service.

You can visualize the ict network using Bouke#0668 visualizer : 
https://datahoff.shinyapps.io/iota_ict/

For the developers interested in using the Report.ixi API, see the following resources

7. Keeping everything up-to-date

To keep everything up-to-date, simply get back to your home folder with cd .
Then update the all-in-one installer by successively typing

cd ict-install
sudo git pull

Finally run the install script all over again, don’t forget to input your unique name when prompted (keep always the same)

sudo sh install-ict.sh RELEASE

I hope you found all the information you needed in this tutorial. Thanks a lot to Schaeff for his wonderful all-in-one installer, ixuz and testIT for the Report.ixi. This extension will help tremendously the IOTA foundation developers and other people researching into ict. Thanks to Bouke as well for the nice network visualizer.

If you still have some issues, do not hesitate to join the #omega-ict channel of IOTA’s Discord server and ask your questions. Lots people will gladly help you sort this out.

Tips in IOTA are always very much welcomed at the following address. I will redistribute them to the community member mentioned here above that helped kick-starting this whole ict adventure.

TCO9AVVRVAVHMSHWHNGHNNYXJXPQUKXEPBALLLNZTLLRHIEOYEGWBZEBWPPGCVBFILAVRMNMSBPUBZYKBZDIEXADUW