Understanding IPFS / FileCoin

Ethan Wu
Numbers Protocol
Published in
4 min readJul 30, 2020

--

Basic understanding of IPFS & FileCoin.

Internet Storage (Brief Introduction)

As consumers of the internet, we often do not consider how all this important data is stored and whether or not it is safe. The majority of internet data is centralized, meaning it is stored on large server farms owned by corporations. Due to the remote and concentrated nature of centralized storage, data can be subject to censorship (through blocked server access) and complete loss in the event of a major server outages. Despite these issues, centralized storage remains because of the quality of internet it offers as well as the lack of a better alternative.

What is IPFS & FileCoin?

Figure 1: IPFS Peer to Peer Network. Each “peer” is represented by a node.

In 2018, Turkey’s censorship of the internet further highlighted the issues of centralized internet. Out of that conflict brought about the decentralized internet storage innovation: Interplanetary File System (IPFS). IPFS is the decentralized storage solution that relies on a peer to peer (P2P) network rather than centralized server farms. A P2P network changes many aspects of internet storage. The first being instead of data being stored in one location, data spread out across a vast network of computer systems connected with each other via the internet. Data retrieval switches from Location-Based to Content-Based Addressing.

Figure 2: Visual Representation of Data Request in IPFS Network.

The significance of this change is two fold:

1. Security: Data that is stored in IPFS has a unique fingerprint or hash code that is used to make requests. When users wish to retrieve some data, they would simply provide the data’s hash and someone within the P2P network who has the file will fulfill that request. The authenticity of the data can be verified by matching up the hashes.

2. Efficiency: Storing data with hashes also reduces the amount of duplicate files on the network. Files with the same data content will produce the same hash. The result of this deduplication is a more efficient network.

IPFS Data Architecture

Data in IPFS is stored in 256kb IPFS objects. These objects contain the data as well as potential links to other IPFS objects. Larger data is split up into smaller 256kb pieces and linked together with an empty IPFS object. The resulting data architecture is something similar to your typical File System making up of folders and files. See visualization below.

Figure 3: IPFS Data Architecture for data larger than 256kb. Files are split up into smaller pieces and linked together in empty IPFS objects. Similar to your typical file system.

This idea is further expanded in IPFS directories which are lists of linked IPFS objects. It is best represented by this tree diagram:

Figure 4: IPFS Directory Structure consists of lists of linked IPFS objects.
  1. top_dir contains bigFile.txt and an additional directory dir containing files Hello1.txt and GoodBye.txt.
  2. bigFile.txt is larger than 256kb so it is split up into smaller pieces. In this example two objects.
  3. dir is an empty IPFS object that links to Hello1.txt and GoodBye.txt.

FileCoin, Addressing the Missing Incentive Layer

Figure 5: FileCoin Flow

One of the main issues with a P2P network like IPFS is if nodes in the network suddenly go offline, then the data will no longer be accessible. To rectify this issue, FileCoin was created on top of IPFS to incentivize individuals monetarily to make available their extra storage as well as keep data stored in storage available. In the FileCoin universe, storage providers are referred to as miners and are able to sell their storage to prospective clients. Clients who are interested can engage with miners and set up deals where terms such as cost, amount of storage and duration are set. Once a deal is reached the miner is compensated and client can store and retrieve data as they please.

Final Remarks

For more information on IPFS and FileCoin feel free to go to their website and read their official documentation. Tools such as Lotus and Textile’s PowerGate and available for developers to use and test.

Sources

Image Source:
(Intro Image) https://storage.googleapis.com/image.blocktempo.com/2020/07/basgfo-photo.jpg

--

--

Ethan Wu
Numbers Protocol

Recent M.S Graduate and Numbers Software Developer & Developer Relations/Community Manager