IPFS is an alternative to HTTP that replaces the client-server model with a peer-to-peer distributed storage.
IPFS re-architects the internet by removing central servers and the need for a single point of authority to coordinate how data is accessed and sent.
To make this happen, IPFS links computers to each other as peers to create a single storage made up of all the nodes. All peers take part in storing and retrieval of files from each other and there's no node single node in charge. The resultant distributed storage can store and give access to files, host websites, run applications, or serve as a database.
The most significant change IPFS brings to the internet relates to end-user participation. HTTP established a relationship dynamic where end-users have to give away control and data ownership to central originators. By enabling end users to serve equally as originators, IPFS transforms the internet enabling its users to keep their data sovereignty and ownership.
The internet has single points of failure that can lead to disruptions
Users have to give up their data sovereignty to use applications
Retrieving data based on a central location can be expensive and inefficient
Today's internet is largely vulnerable to censorship
For IPFS to work there are three challenges that must be solved:
1. How to identify and access content that is to distribute in multiple node locations
2. How to efficiently coordinate the storage and retrieval of data stored on different nodes
3. How to add and discover new peers to the distributed storage network
As opposed to the client-server model, data in IPFS isn't stored in one file server location. In fact, since IPFS is a distributed storage, data is often held by more than one node in different locations. By implementing unique ids to identify any data added to IPFS, data can easily be retrieved based on its identity oblivious to the locations it may be held.
Content Identifiers(CIDs) serve as fingerprints to data on IPFS. They are generated as a cryptographic hash of the data. Hashing creates a unique alphanumeric string for each data and different inputs will always result in different hash while the same data will always generate the same hash. The data's CID can then be used to retrieve the data.
Merkle DAGs form a representation of how chunks of data are linked to each other in order to form the complete whole. With Merkle DAGs data in various nodes can be located and recombined to form the final form of the data as it was added to IPFS.
Distributed Hash Table provides a mapping of which nodes hold which data. Using the DHT, IPFS can find the nearest peers who hold the relevant chunks of data that need to be retrieved. Equally, it enables IPFS to store data in a way that can be accessed easily.
1. Implementing tamper-proof websites
2. Accessing large datasets, IPFS reduces the network overhead required to access data from one central source
3. Making applications without an origin server.
4. Storing uncensorable data
Back: Decentralised Storage | web3
Page Author: Hesron Karani