I remember having to run pre-compiled binaries and being unable to send a transaction. Today I’m giving IOTA another chance.

IOTA was first announced in a traditional Bitcointalk announcement (ANN) thread in October 2015 with a white paper titled “The tangle”. The original coin was named DagCoin.

Instead of the global blockchain, there is a DAG (= directed acyclic graph) that we call tangle.

Graph is math speak for “circles connected with lines”. Acyclic means that there are no loops. The Bitcoin blockchain is a DAG. A transaction does not directly or indirectly refer back to itself.

As of writing this IOTA has a market cap of $6.6 billion dollars.

You can skip to the end of this review by searching this page for the word conclusion.

Goals for the Review

Compile and run IOTA from source-code on a server

Sync the IOTA blockchain (tangle)

Buy IOTA and send it to my wallet

Send the IOTA to a mobile wallet

The IOTA Landing Page

Everything I know about the Internet-of-Things (IoT) I learned from Internet of Shit on Twitter.

The IOTA landing page promises that IOTA will make every technological resource a potential service. I’m not sure what that means.

Compiling and running IOTA from source-code

The IOTA Github organization has a few different IOTA related projects. When I ran IOTA back in 2016 there was only a Java client. Today I see clients written in a variety of programming languages from Javascript to Rust. I’m not sure which one to use so I’ll go back to the landing page.

I click GUI under Get Started which takes me to the IOTA documentation.

Apparently the source-code will be available in 1–2 weeks. They also write that you can’t use IOTA for IoT. ¯\_(ツ)_/¯

All instructions in the README suggest I download and run a pre-compiled program. A blockchain client has to be open-source for the users to predict its behavior. I’ll try to compile the Linux GUI from source.

The download link leads to the v2.5.6 release tag of the iotaledger/wallet project. I’ll look at the README for instructions.

Electron is a project created by Github that lets coders create desktop apps using the same technologies they use to make websites. This means I need to run IOTA on a Linux Desktop with a graphical interface.

I haven’t ran an Ubuntu Desktop installation for a while so I’ll follow a guide I found.

Even though IOTA is for smaller IoT devices I might need a more powerful machine to compile from source-code. I notice most of the code is Java so I’ll probably need a lot of RAM.

A machine with 4 CPU cores and 16 GB of RAM should be fine.

The machine is running. I’ll connect to it and follow the guide for installing the graphical interface.

Ready to rock!

With brevity in mind I have left out the steps for installing the graphical interface for Ubuntu.

I now have Linux with a graphical interface running. I return to the IOTA wallet install instructions.

I can’t get the clipboard on my laptop to transfer to the Ubuntu Desktop for pasting commands. I’ll continue using SSH until I need the graphical interface.

First, I need to install Node.js.

Next I need Electron and Bower. Bower is a package manager.

The -g passed to NPM means install globally as opposed to in the correct directory.

Even bower doesn’t recommend bower.

I’ve never installed Electron Builder before and will need to read its instructions.

electron-builder's readme recommends using yarn instead of npm to install. yarn is an alternative to npm created by Facebook.

At least I can install yarn with npm. Inception!

And then electron-builder.

I don’t understand why the instructions say to install Docker. I’ll wait a bit with that. Docker lets you run programs in isolation so that any change they make to your machine is gone when you stop the program.

I download the IOTA wallet source-code and switch to the v2.5.6 version of the code.

The instructions tell me to install something called IRI.

I look for what IRI is.

IRI is an acronym for IOTA Reference Implementation. It’s written in Java and was first put on Github in October 2016:

There have been over 1,300 commits (code changes) to IRI since then. The recent activity is quite modest.

The majority of the work is by a user named paulhandy with the project activity peaking in April 2017. I’m trying to find if there has been an ICO.

According to their Bitcointalk posts the IOTA team is a Norwegian company and raised funds with something called JINN. I’ve never heard of JINN.

I need to install Java 8 and Maven to compile IRI.

I haven’t installed Maven for Linux before and will need to find some instructions. Maven is a program that builds other programs.

I’ve now installed Maven and can compile IRI.

I now have the iri.jar file that’s required by the IOTA wallet and can get back to the wallet.

And install the wallet dependencies:

I’ll switch back to the graphical interface to start the wallet.

And then I’ll start the wallet from the terminal.

OBJECTIVE PASSED!

Compile and run IOTA from source-code on a server

I’ll of course run a full node.

I tried clicking Start, but get the error message that I need neighbors first.

I’ll need some peers to connect to. These are called neighbors. The documentation says to find neighbors on their Slack chat.

For this purpose I assigned a static IP address to my server, opened port 14265 from the Internet, and pointed iota.shitcoin.com to that IP address.

The IOTA wallet balance still shows as 404.0+ Mi. Perhaps it will update when the transaction is confirmed.

The transaction shows as pending in the history. I click Show bundle.

I look up the transaction hash in the IOTA tangle explorer.

I ask on the Discord.

According to someone on Discord there has been an upgrade of the IOTA wallet from v2.5.6 to v2.5.7. I find it unlikely that upgrading the IOTA will help. Every other issue has been with IRI. But I’m desperate.

The new IOTA version is downloaded. I start the wallet with npm start.

The transaction is still showing as pending. I try to click Rebroadcast.

I ask on the IOTA Discord. No one answers. I’ll try again tomorrow.

I ask again on the IOTA Discord.

It seems the IOTA node has fallen out of sync again. I’ll try to restart it.

The IOTA wallet shows a Connection refused error. Is the IOTA wallet unable to connect to IRI? I check the IOTA tangle explorer.

My transaction has been reattached successfully and is confirmed. I check Bitfinex.

The transaction shows as confirmed! I sell the IOTA tokens at market rate.

The IOTA tokens have been sold for BTC.

You’ll end up here if you searched the page for the “conclusion”

IOTA is the worst cryptocurrency I’ve reviewed so far. Installing the IOTA wallet was a pain. Receiving and sending IOTA tokens is technically challenging and time consuming. Address reuse can lead to loss of funds. There is no functional IOTA mobile wallet. There is no IOTA hardware wallet support.

But most importantly it is very clear that IOTA cannot be used on Internet-of-Things devices, the problem it markets itself as solving! How can a smart lightbulb or drone stay in sync with a “tangle” that requires vast amounts of CPU cores, RAM, and network bandwidth to stay in sync with?

You may notice the instance type was changed to m5.4xlarge, a 16 CPU core machine with 64 GB RAM. I upgraded to this machine after reading on the Discord chat that people were unable to stay in sync with less powerful hardware.

IOTA is a shitcoin. I don’t recommend buying or holding it. I’m even going to short it. However, if you choose to go against my recommendation, trade on Binance with my referral link. At least then your misery helps me.