Interplanetary File System (IPFS). It’s a peer-to-peer (p2p) filesharing system that aims to fundamentally change the way information is distributed across & beyond the globe. IPFS consists of several innovations in communication protocols and distributed systems that have been combined to produce a file system.
IPFS attempts to address the deficiencies of the client-server model and HTTP web through a novel p2p file sharing system. This system is a synthesis of several new and existing innovations. IPFS is an open-source project created by Protocol Labs, an R&D lab for network protocols and former Y Combinator startup. Protocol Labs also develops complementary systems like IPLD and Filecoin, which will be explained below. Hundreds of developers around the world contributed to the development of IPFS, so its orchestration has been a massive undertaking.
IPFS protocol took advantage of the Bitcoin blockchain protocol and network infrastructure in order to store unalterable data, remove duplicate files across the network, and obtain address information for accessing storage nodes to search for files in the network.
IPFS is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files. In some ways, IPFS is similar to the World Wide Web, but IPFS could be seen as a single BitTorrent swarm, exchanging objects within one Gitrepository.IPFS provides a high-throughput.
IPFS has no single point of failure, and nodes do not need to trust each other not to tamper with data in transit. Distributed Content Delivery saves bandwidth and prevents DDoS attack.
The main components of IPFS:
- Distributed Hash Tables
- Block Exchanges
- Merkle DAG
- Version Control Systems
- Self-certifying File System
The key components of IPFS:
- With the Distributed Hash Table, nodes can store & share data without central coordination
- IPFS allows exchanged data to be instantly pre-authenticated and verified using public key cryptography.
- The Merkle DAG enables uniquely identified, tamper-resistant and permanently stored data
- We can access past versions of edited data via the Version Control System