Picking a Decentralized Storage System

Wed 02 August 2017

This article is part 2 of the Blockchain train journal, start reading here: Catching the Blockchain Train.

Some reading material to get started

A couple of articles that I found useful when learning about decentralized storage:

Comparing decentralized storage systems

Our decentralized blog pages are in need of some sort of decentralized hosting. To build that from scratch seems like a lot of work and will probably result in a blockchain train crash.

So let's see what is already out there we could use for our project.

I searched a bit and came up with:

I’m not yet qualified to compare these technologies (still trying to catch the train!), but I’ll add some observations for each:

Storj

From the home page:

Blockchain-based, end-to-end encrypted, distributed object storage, where only you have access to your data.

That doesn't sound like something that is handy for a blog, where we want content to be public.

Storj looks like a great product though, it is a bit like Resilio Sync, but with a blockchain added to create a marketplace for buying or renting out disk space on the network.

SIA

SIA is another Dropbox killer, more or less the same as Storj.

MaidSafe

Where Storj and SIA pitch their service as a faster and cheaper way to store your data, Maidsafe promotes their SAFE network by scaring you. Cloud providers, government, and hackers can not be trusted is the message in their video. Apart from the funny name, it is very similar to the two services above.

IPFS

Now, this is a different beast. The first three services are incentive platforms, which means they have their own cryptocurrency to support their marketplace. IPFS also has such a thing, FileCoin, but it is neatly split from IPFS which is more like a decentralized storage protocol.

IPFS stands for interplanetary file system, but they hide the original name from their homepage. Too funny for a serious business!

On the home page it says:

IPFS is the Distributed Web

A peer-to-peer hypermedia protocol to make the web faster, safer, and more open.

IPFS seems like an great option for our project.

ZeroNet

ZeroNet doesn't have a cheesy video on their home page, so I had to actually read. However, their awesome presentation is 100x better than the four videos from the others combined: ZeroNet preso.

They also seem to operate a lot less like a serious business compared to the others, showing more of the idealistic open source spirit.

On the home page:

Open, free and uncensorable websites, using Bitcoin cryptography and BitTorrent network

Oh, oh, that is what we are trying to do here! A competitor! Nah, let's just keep an eye on the code, maybe we can learn a thing or two.

Ethereum Swarm

On our trip to become blockchain developers, we have no other choice than to dive into Ethereum. We will address that in a future episode. But their decentralized file storage system, named Swarm, must be considered here.

It took me a while to find the source code for this project, but here it is!

From the documentation:

Swarm is a distributed storage platform and content distribution service, a native base layer service of the ethereum web 3 stack. The primary objective of Swarm is to provide a sufficiently decentralized and redundant store of Ethereum’s public record, in particular to store and distribute dapp code and data as well as block chain data.

It seems that Swarm is an incentive platform enforced with Ethereum smart contracts, so not the best choice for our purpose. We gotta stay hands-on here. We want to add a coin later ourselves!

BigchainDB

From their site:

BigchainDB is complementary to decentralized storage, processing and communication building blocks. It can be used side by side with higher-level decentralized computing platforms and applications, and protocols for identity, financial assets, intellectual property and sidechains. BigchainDB fills a gap in the decentralized stack.

This is a brilliant solution, almost too good to be true. It is not just decentralized storage, but a full blown database.

It is built on top of MongoDB and decentralized, so data is immutable, and there is no central authority.

For our current project it might be a bit overkill, but let's keep an eye on it.

The winning decentralized storage system

OK, I’ll be honest, I already picked one before I did this quick research what is around :-)

The winner is IPFS! Yay!

The runner-up we might have a look at at a later stage: BigchainDB!

Even in retrospect, IPFS seems like a good choice: all competitors have their "flaws" in the context of this project. By applying "selection by deduction", only IPFS remains.

After this very scientific approach in picking IPFS, let's hope it is indeed useful for us.

Let's move on to part 3: Getting to know IPFS

social