Archon Cloud Primer on Decentralized Cloud Storage

Archon Cloud
archoncloud
Published in
6 min readJun 4, 2019

This article is aimed at decentralized application developers building a dapp, who need to store their data somewhere. This article introduces Archon Cloud as the best way to store your data in a decentralized manner, but will also cover other common data storage solutions.

This article will be divided into two parts:

  • Part 1: A theoretical introduction to Archon Cloud and why decentralized storage matters. [you are reading this now]
  • Part 2: A practical guide on using Archon Cloud [link to Part 2]

Who can use Archon Cloud?

One of the strengths of Archon Cloud is how approachable it is for anyone to use. You won’t need to have any knowledge of programming languages or unix/linux based systems to go through with this guide. For those interested in learning more about Cloud Storage, and how it works, we introduce these topics in the background sections, but feel free to skip to [the practical guide on using Archon Cloud in Part 2 here].

If you’re looking for a more in-depth explanation of the technologies behind Archon Cloud, our whitepaper is available at https://www.archon.cloud/.

Background: Theoretical Introduction

Applications are becoming increasingly complex. As they require more data to use, they need to be able to store their application data somewhere.

There are 3 common ways to store application data on the cloud:

  1. File storage — the oldest way to store application data. File storage interfaces with the file system directly, which would offer you greater flexibility, but much less agility to focus on building your application. Generally, the use cases for file storage has shifted away from application data to other things now, such as backing up your files. If you need to store your application data on the cloud, modern best practices would advise you to choose one of the next two options.
  2. Database storage — examples are Oracle MySQL Cloud and MongoDB Stitch. Databases have specific strengths, and are best for only certain situations that require those strengths. For example, if you know you need transactional data, or if you need your data to be relational, you would look into storing your data in a database.
  3. Object storage — a relatively new storage system, compared to the other two. An example would be Amazon S3. Object storage has much less overhead than file storage, allowing your storage to be scalable. At the same time, it is extremely agile and easy to use. Object storage can be viewed as a scalable and faster version of a non-relational database storage. In general, most applications would want to store their data here.

Background: How does object storage work?

Most object storage have a similar interface. Here is a simplified description:

  1. PUT — putting an object (your application data) into the object store
  2. GET — retrieving the object (your application data) from the object store
  3. DELETE — removing the object (your application data) from the object store

These operations are usually done through an API that your application calls, but certain solutions, like Amazon S3, also have a web interface to make the process simpler.

What is currently the most popular “decentralized” object storage solution?

You might have noticed that we have mentioned Amazon S3 multiple times. That is because S3 is the current de-facto standard of cloud object storage. It’s a relatively cheap option while being reliable, fast, and easy enough to use. Generally, if you are looking to build an application and want to handle the possibility of user growth or demand spike, the simplest way to store your application data is with Amazon S3. You can read their tutorials here:

https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html

One major caveat is that you must place your full trust in the Amazon corporation to adequately secure your data, and maintain its availability. This centralization of trust has resulted in the tech giants of today. But many are questioning if this is truly the only way to achieve high performance. The resulting decentralization movement is led by enthusiasts and entrepreneurs across communities such as decentralized web and blockchain.

Resources: Why Decentralize?

What about decentralized object storage?

Some applications care about decentralization, including many decentralized applications (“dapps”), whose main differentiating factor to competitors is their decentralization and trustlessness, often using blockchain. They want not only their code to be decentralized, but also their data. For these apps, using Amazon S3 is not a choice for them, because S3 would represent a point of centralization in their application.

Currently, many projects claiming to use decentralized storage are using the temporary solution of using a completely centralized single Amazon S3 instance, but wrapping a service called “IPFS” on top of it to give the outward appearance of decentralization. IPFS is a protocol for peers to talk to each other and share data in a decentralized manner. Using IPFS alone for decentralized storage is not sufficient for most applications, because of its inherent reliability issues: IPFS peers are not paid to hold your data, so anything can happen to them (including your data going completely missing!). As a result, to improve reliability of application data, dapp developers store their data in Amazon S3, and wrap a layer of IPFS on top of it to call it decentralized.

As a result, their application data is technically “using IPFS”, but their data is still stored in a centralized Amazon S3 instance. IPFS peers rarely reliably hold their application data (an exception may be if the particular file is very popular or otherwise incentivized to be ‘pinned’).

What about the other decentralized storage solutions like Sia, StorJ, IPFS?

For other decentralized solutions, whether it is IPFS, StorJ, Sia, or others, there are many sacrifices to be made to decentralized your application data. Decentralized storage solutions are generally slower, and suffer from certain scalability issues (in file size, and also in total bytes stored). Additionally, existing decentralized storage solutions also have reliability issues. As a result, the common best practice for decentralized application developers is to currently store your application data in Amazon S3. If you really want your data to appear decentralized, you run an Amazon EC2 micro instance running IPFS on top of your Amazon S3. This is a temporary solution due to the lack of a suitable storage solution emerging to date.

Is there a better alternative if I want my data to actually be decentralized?

There is one project out there that will:

  1. Store data in a decentralized manner across multiple servers,
  2. Guarantees your data will be reliably held for as long as you specify,
  3. Has speed comparable to centralized object storage solutions, AND
  4. Does not suffer from any scalability issues due to decentralization.

This project is Archon Cloud.

Archon Cloud stands out because it succeeds in two goals; to
(1) create a high performance decentralized cloud storage solution, and
(2) provide an easy user experience by taking the best of familiar systems commonly used today.

One of Archon Cloud’s main goals is to create a performant decentralized object storage solution. We have made significant progress in both research and engineering. We have developed advancements in our own proprietary algorithms in erasure codes, peer coordination, blockchain, and provable data possession — each of which significantly increases data process speed while also making it more reliable.

To provide the user experience that both developers and end users are familiar with, Archon has spoken with many developers and dapp users to identify pain points of using decentralized storage.

For developers: the most common complaint for decentralized storage is how difficult it is to integrate and get working. Archon Cloud’s integration process is the smoothest available, solving many of the integration challenges.

For end users: difficulty of the initial setup, the process of acquiring tokens, and the constant manual verifying of transactions in some systems was the greatest barrier. Archon believes that downloading from decentralized storage should just work as you expect it to, without additional steps or hoops to jump through. Archon is able to achieve this effect as demonstrated here: [demolinks-wikipedia], demo of real-time web browsing without the need to install anything, nor to manually confirm transactions.

Continue on to Part 2: A Practical Guide on Using Archon Cloud

For more information, and to explore the potential of decentralized storage, visit us at www.archon.cloud.

--

--

Archon Cloud
archoncloud

Archon: decentralized file systems for the future.