InterPlanetary File System
IPFS or InterPlanetary File System is an open-source protocol and network designed to create a content-addressable, peer-to-peer method of storing and sharing hypermedia in a distributed file system. This file structure is a Merkle DAG, which combines Merkle trees, and Directed Acyclic Graphs
IPFS nodes store IPFS objects in local storage. Nodes connect to each other and transfer objects. These objects represent files and other data structures. The IPFS Protocol is divided into a stack of sub-protocols responsible for
Identities - manage node identity generation and verification.
Network - manages connections to other peers, uses various underlying network protocols. Configurable.
Routing - maintains information to locate specific peers and objects. Responds to both local and remote queries. Defaults to a DHT, but is swappable.
Exchange - a novel block exchange protocol (BitSwap) that governs efficient block distribution. Modelled as a market, weakly incentivizes data replication. Trade Strategies swappable
Objects - a Merkle DAG of content-addressed immutable objects with links. Used to represent arbitrary data structures, e.g. file hierarchies and communication systems.
Files - versioned file system hierarchy inspired by Git.
Naming - A self-certifying mutable name system.
Video streaming is usually based on the HTTP and TCP, and the video player is embedded in a web browser. TCP is currently the most widely used transport protocol on the Internet but it is commonly considered to be unsuitable for multimedia streaming. The HTTP and TCP are general purpose protocols and were not specifically designed or optimized for streaming media delivery. Bandwidth is precious. When we have a lot of people requesting the media over the internet, there is a lot of bandwidth that travels across the internet. These connections are uni-cast and they stream to each individual person.
For Example 1000 people watching, each person has to get a copy of that media. In this case, bandwidth increases with the number of people. For 1000 people we need 1000 times the bandwidth. To tackle this issue, companies like YouTube are dependent on CDNs. Basically, they are fixing this issue by adding lot more of computers and by moving the distribution centers nearer to the mass users. To make matters more complicated, the difference between yearly price drop in storage (40%) and bandwidth (26%) is almost double. All this means that we will have more people, streaming more data on channels that are not scaling as fast. This creates congestion that at one point in time cannot be solved by just adding more hardware .
● With the Distributed Hash Table, nodes can store & share data without central coordination
● IPNS allows exchanged data to be instantly pre-authenticated and verified using public key cryptography
● The Merkle DAG enables uniquely identified, tampe-resistant and permanently stored data.
● You can access past versions of edited data via the Version Control System
This is the process of adding and retrieving files from IPFS.
1) Each file and all of the blocks within it are given a unique fingerprint called a cryptographic hash.
2) IPFS removes duplicates across the network.
3) Each network node stores only content it is interested in, and some indexing information that helps figure out who is storing what.
4) When looking up files, you're asking the network to find nodes storing the content behind a unique hash.
5) Every file can be found by human-readable names using a decentralized naming system called IPFS.