Please enable JavaScript.
Coggle requires JavaScript to display documents.
IPFS - Coggle Diagram
IPFS
History
The Attempts
- Many attempts at constructing a global distributed file system. E.g. AFS had a reasonable success
- Outside of academia, p2p file sharing apps - Napster, KaZaa, and BitTorrent supported over 100 Mn simultaneous users
- Though distributed & decentralised, these apps were not designed as infrastructure to be built on top of. No general file-system has emerged that offers global, low-latency, and decentralized distribution
- Why? Because a good enough system already exists - HTTP
HTTP
- Defacto way to transmit files across the Internet
- Problem - Does not take advantage of the brilliant file distribution techniques invented in the last 15 years
- HTTP lacks design upgrade and it has survived this far because moving small files with HTTP is relatively cheap
- Again, problem? We are entering an era with new challenges
Current Challenges
- Hosting and distributing PB scale datasets
- Computing on large data across organizations
- High volume HD on-demand or realtime media streams
- Versioning & linking of massive datasets
- Preventing accidental disappearance of important files etc.
The GiT example
- Version control systems have managed to develop important data collaboration workflows. E.g. Git
- Git has developed many useful ways to model & implement distributed data operations
- The Git toolchain offers so much versatility - E.g. Camilstore ( personal file store system) and Dat (A data collaboration toolchain & dataset package manager)
- Git uses content-addressed Merkle DAG data model
- However, we need to see how this data structure can influence design of high throughput oriented file systems
So, again What is IPFS?
- A novel p2p version controlled filesystem seeking to reconcile all the aforementioned issues
- It synthesizes learnings from many past successful systems
- Careful interface-focused integration yields a system greater than the sum of its parts.
- The Central Principle - Model all the data as part of the same Merkle DAG
-
IPFS Design
Quick snapshot
- A distributed file system that synthesizes successful ideas from previous p2p systems, including DHTs, BitTorrent, Git and SFS
- P2P -> No nodes are privileged
- IPFS nodes store objects in their local storage. Nodes connect to each other and transfer objects
- These objects represent file & other data structures
-
Use cases
- A mounted file system, under /ipfs and /ipns
- A mounted sync folder that automatically versions, publishes, and backs up any writes
- An encrypted file/data sharing system
- A versioned package manager for all software
- Root file system of a VM
- Boot filesystem of a VM
- A Database
- A linked & encrypted communication channel
- An integrity checked CDN for large files (without SSL)
- An encrypted CDN
- A web CDN
- A permanent web share
-
What is it?
- A peer to peer distributed file system that seeks to connect all computing devices with the same system of files
- A high throughput content-addressed block storage model, with content addressed hyperlinks
- Forms a generalised Merkle tree DAG
- Combines a distributed hash table, an incentivised block exchangem, and a self-certifying namespace
-