IPFS (InterPlanetary File System) is an open-source hypermedia protocol that allows peers to store and distribute data in a single distributed file system.
The author of the decision — the founder and head of the American startup Protocol Labs Juan Benet - called it a "distributed, permanent web," bearing in mind that the site created in IPFS can never be closed by anyone.
"IPFS is a high-performance block storage model with content addressable hyperlinks," he explained in a whitepaper project.
An interplanetary file system is a peer-to-peer (P2P) hypermedia protocol designed to make the Internet faster, safer, and more open.
It was created to transfer scientific data sets up to 100 GB in size between nodes. Benet found that modern methods of transmitting and storing information on the network are slow, centralized, and could be easily hacked. Based on these observations, Benet decided to improve the system with IPFS in the following aspects:
- Speed: Currently, the hypertext transfer protocol (HTTP) is the most common form of the request-response protocol in the client-server (Internet) computing model. However, where HTTP downloads data from only one server, P2P IPFS extracts fragments simultaneously from several nodes (users), which means significant bandwidth savings.
- Efficiency: Decentralized IPFS structure works similarly to BitTorrent. Nodes store copies of data (files, movies, images, etc.) to then send them to the user at the request of a hash (unique locator code for the file), like seeding. When data is first loaded into IPFS, only one copy is created with one hash, which means that less information needs to be processed and less storage is required. In addition, this means that IPFS does not depend as much on Internet connection as modern systems, which makes information more accessible.
- Security: IPFS uses two systems to ensure that data is not modified or tampered with. First, all data that is loaded into the system is unchangeable. Secondly, each file is assigned a unique fingerprint — a hash. The user can compare the hash code he was looking for with the hash code he received. If it is identical, then so is the information inside.
- Decentralization: The P2P IPFS system guarantees the availability of information regardless of censorship. Currently, the Internet is highly centralized, and individual companies, such as Amazon Web Services or Google Cloud, own huge server farms that store all the data published on the Internet. A government or a large company can censor or even erase information that we have access to, as is the case in some countries, including China and North Korea. Using decentralized and trustworthy P2P, IPFS ensures data availability for all.
How Does IPFS Work?
IPFS is built on blockchain technology, which means that it is decentralized and does not require trust, and relies on its nodes to store and exchange information over the network. Like nodes that check and store information, for example, in crypto IPFS uses its nodes to exchange and store information (files, videos, etc.) on its network. This is done in the following ways:
- Search for information: servers are currently searching for information based on URLs that tell the Internet where the information you need is located (for example, a website). This can be problematic when the server is disconnected or hacked. IPFS bypasses this path through the server using unique hash codes to locate the file content itself. The hash code directly references the file you are looking for, not the location of the file.
- Store and protect information: Files are stored in IPFS data objects on the blockchain. Each data object contains up to 256 KB of data but can be associated with subsequent IPFS data objects to store more data. Thus, the entire project is stored in various IPFS data objects associated with each other through the blockchain, which makes it difficult to hack or delete the project.
- Data change history tracking: Although data stored in IPFS is immutable, it allows you to manage versions. This means that the user can download enhanced versions of the file as they work on it. Each file is assigned its hash code and loaded as a commit object. Then they are linked in the same way as data objects, which allows us to track the order of loading and, thus, see the progress of information (for example, versions of the dissertation, novel, research, etc.).
When information is loaded into IPFS, the address for accessing the object, file, or user data in the system is formed with binding, not to the server, but to its unique cryptographic hash identifier (CID).
When you reload a file, the CID does not change, and new hash IDs are assigned to the updated versions of the file. That the users who got access to the early version of the file could have it and to later options, service of the names InterPlanetary Naming System (IPNS) — DNS analog on the traditional Internet is applied.
How Do I Use IPFS?
IPFS allows the user to access files (videos, websites, articles, research, etc.) anywhere without the need for a centralized side. This makes it faster, safer, and more open. Users can access information that might otherwise be censored because the data is accessed directly from the source. In addition, this information can be accessed in regions where there is no good Internet connection, which will further empower poorer or more corrupt countries.
Another feature, especially useful for scientists or enterprises, is the ability to track the progress of work, since IPFS associates each version of the file with the last, thereby maintaining linear tracing. Finally, the name InterPlanetary indicates that in the future this information can be transmitted between planets. Currently, under good conditions, sending an information request from Mars to Earth will take four minutes, and sending back four minutes, plus a few milliseconds of processing time. However, if the content was already downloaded to Mars once, then the file will already be stored there and, thus, can be downloaded immediately. In this regard, IPFS is indeed the network of the future.
IPFS is still in development and may contain errors and hidden vulnerabilities. However, it is assumed that IPFS can be convenient for storing important information and creating static sites.
In practice, its use increases data transfer speed and network throughput reduces the workload on nodes due to its distribution, allows you to circumvent censorship, and avoid DDoS attacks and the appearance of "dead" links. There is no single point of failure in the system, and nodes do not need to trust each other. In addition, theoretically, content in IPFS can be stored forever.
The first web resource with IPFS support in 2015 was the Neocities hosting service. Based on IPFS, a decentralized video platform DTube, an online trading platform OpenBazaar and other solutions have been created.
The IPFS link added to the cryptocurrency transaction allows you to save huge amounts of data protected from changes in the blockchain, without weighing it. For example, in the spring of this year, after the arrest of Julian Assange, one of the developers of Bitcoin Cash posted on the Wikileaks.cash website in IPFS and the form of a link in the BCH blockchain a complete archive of Wikileaks documents — about 30 GB.
Since 2014, the Protocol Labs development team has also been working on creating decentralized Filecoin file hosting based on IPFS. The project is preparing to launch test and main networks, but back in 2018, Huang Benet discovered that the achievements of his company inspired the creators of TRON: several sheets from the documentation for Filecoin and IPFS in a slightly modified form entered the whitepaper of this Chinese project. And in the spring of 2019, TRON announced its intention to launch its version of IPFS based on BitTorrent — BTFS.
How to Start an IFPS Node
The official software package from Protocol Labs IPFS Desktop. It is available for Windows, Mac, and Ubuntu and allows you to install and manage your site so you can add your files to the network.
Meanwhile, IPFS Companion is a web browser add-in available for Chrome, Edge, Brave, Firefox, and Opera. It allows you to interact with an IPFS desktop and an installed IPFS host directly from your browser. It also adds support for ipfs:// addresses for browsers that do not initially support them.
IPFS is one of the cryptocurrency platforms that helps scale the industry by providing a peer-to-peer and distributed file system architecture, which is needed as a basis to support the growth of cryptocurrency platforms.
"Content in IPFS can move through any unreliable intermediaries without reducing control over the data and without putting it at risk," Juan Benet said.
In his opinion, the integration of IPFS with blockchain technology is similar to the ideal one. Using IPFS inside a blockchain transaction, you can place constant links that are unchanged.
Timestamps protect data without the need to store it on a chain, which is a convenient method for secure solutions outside the chain that help scale blockchains.
According to bytwork.com, many Web3 services already use IPFS in a wide range of different applications.
- Filecoin is Protocol Labs proprietary distributed storage area network (SAN) based on IPFS. This encourages node operators to place files using rewards in cryptocurrency.
- Audius is a decentralized music service that uses IPFS to host its audio files.
- Pinata is an NFT hosting service that uses IPFS to back up cryptographic collectibles for partners such as Realistic and Sorare.
- OpenBazaar is a peer-to-peer e-commerce platform managed by IPFS.
- Morpheus.Network is a network supply chain service that also uses IPFS.