Update 22. May 2019: Switched to openjdk-11; Added guide for IcTinder (peer manager)
Update 22. Nov 2018: Added scripts and guide to install omega-ict

For some weeks now on the #ict channel of the IOTA Discord we have been experimenting with ICT and Raspberry PI or virtual machines with 512MB of RAM.

Today we’ll see if it’s possible to install ICT on an Android phone (e.g. the phone with the broken display we had in the drawer).

Telefono Android con il display guasto

Needed software:

Let’s install UserLAnd and ConnectBot on our Android phone, we install Debian GNU/Linux and via ConnectBot we connect to the local SSH session.

UserLAnd su Android

SSH connection

We install net-tools necessary to discover our IP address and be able to connect to the SSH session from our computer via Putty or bash in Linux.

sudo apt update
sudo apt install net-tools
Installiamo network-tools

We display the IP address of our phone:

ifconfig
Indirizzo IP

Fine. Open your favorite SSH client and connect from the PC to port 2022 for example from the bash con:

ssh [email protected] -p 2022

in my example with:

ssh [email protected] -p 2022

Now that we can use a serious keyboard we install the necessary tools:

sudo apt full-upgrade
sudo apt install --assume-yes git

Then we download the script I adapted from Phil Schaeff

git clone https://gitlab.com/antonionardella/ict-install.git

and run it as root

cd ict-install
sudo sh install-ict.sh RELEASE nodename

Where nodename is the name you want to give to your Ict instance and # is the number of your Ict instance. e.g. antonionardella.it (ict-3)

Find neighbors for your Ict

IcTinder

  • IcTinder.ixi (installed on the Ict node) publishes stats about neighbors to the central API
  • The central API decides how to connect nodes based on the stats reported by their neighbors
  • IcTinder.ixi downloads the neighbors recommended by the central API and connects to them. Rinse repeat

Install the IXI

  1. Open your Ict Web GUI (hosted on port 2187 by default).
  2. Navigate to IXI Modules > Manage Modules
  3. Click on the Install Third Party Module button.
  4. Enter mikrohash/ictinder and click on Install.
  5. Refresh the page.
  6. Navigate to IXI Modules > IcTinder
  7. Configure IcTinder:
    • static_neighbors: In case you have static neighbors you want to keep all the time, put them here
    • ict_gui_port and ict_gui_password: Part of your Ict configuration.
    • node_address: The address your peers can use to connect to your node (format: HOST:PORT). The host should never be localhost or similar.
    • discord_id and ictinder_password: You received these values when you signed up with the IcTinder bot.
  8. Press the Save button.

IcTinder should now be started. Give it a few minutes to find your first neighbor.

More information here: https://github.com/mikrohash/ictinder

Classic peer-to-peer networking

ICT requires at least one neighbour to function properly. You can add up to three. Go to the #ICT channel of the IOTA Discord server and ask users to add your node. Start a private discussion with interested parties and exchange your public IP if it is static or your DNS. When you have found i you need to add it to the ict.cfg file.

The first thing to change is the neighbors parameters. Add all your neighbors (maximum 3) with either their static ip + the port or the domain name + the port, separated by a comma. Note that there should not be an empty space after the comma. e.g.

sudo nano ~/omega-ict/config/ict.cfg

neighbors=123.456.17.97:1337,myneighbor.ddns.net:14600,myotherneighbor.noip.com:1234. Once your neighbors added, save and exit using ctrl + o then Enter then ctrl + x .

Update ICT

Enter the ict-install folder, update the script and install again:

cd ~/ict-install
git pull
sudo ./install-ict.sh RELEASE nodename

Execute ICT

Start with screen

This part differs completely from the lambtho guide in that systemd does not turn on android (if you find a solution let me know)

We start a session with screen:

screen -S ict

We’ll be on the command line, start ICT now:

cd ~/install-ict
sudo bash run-ict.sh

Once started we will see the DNS/IP addresses of our neighbors.

ICT dal terminale

Now we wait for the messages

ICT dal terminale con messaggi

To exit the screen session press the key combination ctrl + a and d

To return to the session write:

screen -r ict

Here is the view from the phone:

Screen
UserLAnd con screen ed ICT

Ict GUI Interface

For those who want to experiment with a free Google VPS there are the following guides in English:

https://medium.com/@hbmy289/how-to-set-up-a-free-micro-vps-on-google-cloud-platform-bddee893ac09

https://medium.com/@hbmy289/how-to-setup-an-ict-node-on-a-free-google-micro-vps-842f475d51a


The original guide by lambtho: https://medium.com/@lambtho/iota-ict-installation-tutorial-c079a1ca3b7d


It is possible to support me on Patreon https://www.patreon.com/antonionardella

For further information in Italian or German, find my contact details on this page.
If you have found my free translation/guide useful, I gladly accept donations 😉

IOTA:
QOQJDKYIZYKWASNNILZHDCTWDM9RZXZV9DUJFDRFWKRYPRMTYPEXDIVMHVRCNXRSBIJCJYMJ9EZ9USHHWKEVEOSOZB
BTC:
1BFgqtMC2nfRxPRge5Db3gkYK7kDwWRF79

I can’t guarantee anything and I’m free from any responsibility.


Also published on Medium.