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.
I remember having to run pre-compiled binaries and being unable to send a transaction. Today I’m giving IOTA another chance.
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
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
I click GUI under Get Started which takes me to the IOTA documentation.
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.
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.
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.
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
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.
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
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 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.
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.
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.
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.
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.
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.
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.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
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.
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?
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.
About The Author
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/