IOTA: Cannot be used for IoT. Loss of funds may occur.

IOTA is a tangle coin that ICO’d on Bitcointalk in JINN, another coin. It promises to bring cryptocurrency to the Internet-of-Things. But did anyone actually try using IOTA? Andreas finds out.

Today I’m reviewing IOTA, a token that uses a tangle instead of a blockchain. IOTA is supposed to be used on small devices in the Internet of Things. I’ll show you how to buy, store, send, and sell.

TL;DR: IOTA cannot be used for Internet-of-Things devices. Or anything.

I last tried IOTA in November 2016. Back then I was researching IOTA for my then coworker Kevin.

Kevin runs a fund these days. Like everyone else.

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

  1. Compile and run IOTA from source-code on a server
  2. Sync the IOTA blockchain (tangle)
  3. Buy IOTA and send it to my wallet
  4. 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.


Advertisement: There’s a ton of shitcoin forks out there; Bitcoin Gold, Diamond, Faith, and more. Use the Automated Forked Coin Extraction Tool to safely extract your coins. Literally free money from shitcoins. Click here.

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.

AWS means Amazon Web Services. EC2 means Elastic Compute Cloud. They really like acronyms.

I start an Ubuntu 16.04 machine on Amazon AWS.

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.


Advertisement: Looking to trade futures such as BTC, BCH, ETH, XRP? BitMEX has the lowest fees and you don’t even need to give your name! Register in 30 seconds using my referral link.

Now I’ll go on their Slack and ask people in channel #nodesharing to be my mutual peers at udp://iota.shitcoin.com:14265.

1,555 users in the channel! I hope some of them are online.
Now I just need some peers…

I’m already bored of waiting. Judging by the amount of activity in the channel this will take a long while. I’ll just message random people showing as online.

I hope he grants me my wish of finding my first peer.
I don’t think the genie is running a full node.
Nor does Alain.

I noticed a mistake in my firewall rules. I’ll open the correct UDP port.

I input my first neighbor and pressed Start.

At least I’m making new friends.

It seems I’ve messed up the ports. 14265 is the port used to control the node, not the peer-to-peer networking.

I look at the console to see if I’m connected to any peers.

It looks like something is happening!

It’s time to setup a wallet. The login box contains the wallet seed. I click the help icon.

The seed requirements are oddly specific. Only upper case characters and the number 9. I make up a random one.

And press Login.

It seems I need to be synchronized with the network/tangle before logging into the wallet.

I ask on the chat how long it takes to sync the IOTA tangle.

No one has a good answer. I just have to wait. Sadly, I ran out of time and had to work on another project. I return a few months later.

I start the machine back up and try to log in.

Same problem. The project has moved from Slack to Discord. I ask on the Discord chat.

Apparently my solid subtangle is way down. I don’t know what that means.

Why Sunday? Why only once a week?

The solution seems to be to wait until Sunday. Or to download their snapshot.

I start to download the snapshot. It’s around 13 GB.

I start the wallet and it doesn’t sync. A developer on Discord tells me the files need inside the folder mainnetdb. I try again.

$:~/.config/IOTA Wallet/iri$ rm -rf *

I try to start the wallet again. It’s still not synced. I take the weekend off and attempt again.

OBJECTIVE PASSED!

Sync the IOTA blockchain (tangle)

I head over to ShapeShift to buy some IOTA.

ShapeShift does not appear to have support for IOTA. I head over to Binance.

To withdraw I’ll need my IOTA receive address.

I don’t know what “attach to tangle” means

The withdrawal is now confirmed on Binance.

The IOTA wallet balance shows a balance of zero after three hours. The history shows an item.

I click Show bundle.

I don’t know what those buttons do. I try to click both.

The balance is still zero. I try to restart the wallet.

Still nothing. I check an IOTA tangle explorer.

The transaction shows as confirmed. I ask on Discord again.

The network has been updated to a new version 18 hours ago. I need to fetch and recompile the new version of IRI.

I restart the IOTA wallet. The IRI console now shows the message “Skipping negative value for address” repeatedly.

Negative balance sounds bad. The IOTA wallet interface opens after a few seconds. I log in.

I assume the error I saw in the IRI console is preventing me from syncing with the IOTA network. I ask on the Discord.

I delete the IOTA database files as instructed.

And start the IOTA wallet. The console shows the same “negative value” error. Perhaps I need to delete more files.

I start the IOTA wallet successfully. I now need to wait to sync with the IOTA network.


Advertisement: There’s no shame in being a shitcoiner. But you need to trade on Binance. Why? They have coins I’ve never heard of. What the hell is MTL? POWR? QTUM? Is it a joke? I don’t know. Register on Binance using my referral link.

After a few minutes I can log in.

The IOTA wallet shows a zero balance and there is no transaction history.

I click Attach to Tangle as instructed.

The history displays the transaction, but as pending.

I click Show bundle and try to click Reattach.

The IOTA wallet now shows two entries!

I ask on Discord.

I’ll wait a few hours and look again.

A few hours later the transaction shows as confirmed.

OBJECTIVE PASSED!

Buy IOTA and send it to my wallet

I will now try to send IOTA to my Android phone.

The IOTA mobile wallet has installed on my phone.

I click Generate seed.

I press Login.

The loading spinner keeps spinning for minutes and nothing shows up.

OBJECTIVE FAILED!

Send the IOTA to a mobile wallet

Part of the test is to send the IOTA out of my IOTA wallet. I will send to Bitfinex instead.

There are a lot of disclaimers to deposit IOTA to Bitfinex. Some research shows that reusing an IOTA address can lead to loss of funds.

I accept the disclaimer.

I return to my IOTA wallet and click the Send tab.

I click Send It Now.

The message Transfer completed appears.

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.

IOTA cannot be used on Internet-of-Things devices

Good night, blockchainers.


Advertisement: There’s a ton of shitcoin forks out there; Bitcoin Gold, Diamond, Faith, and more. Use the Automated Forked Coin Extraction Tool to safely extract your coins. Literally free money from shitcoins. Click here.

About The Author

Andreas Brekken is the CTO/co-founder of Helix Capital and has been obsessed with cryptocurrency since 2011. He was the CTO/co-founder of Justcoin.com and later worked as an engineer with Kraken.com.

Follow me on Medium and Twitter for more reviews.

Are you making a blockchain product and want me to advise or review? I can be bought. Send me a paid message at https://earn.com/berken/