IPFS -- Inter-Planetary File system IPFS is a global, versioned, peer-to-peer filesystem. It combines good ideas from Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single bit- torrent swarm, exchanging git objects. IPFS provides an interface as simple as the HTTP web, but with permanence built in. You can also mount the world at /ipfs. IPFS is a protocol: - defines a content-addressed file system - coordinates content delivery - combines Kademlia + BitTorrent + Git IPFS is a filesystem: - has directories and files - mountable filesystem (via FUSE) IPFS is a web: - can be used to view documents like the web - files accessible via HTTP at `http://ipfs.io/` - browsers or extensions can learn to use `ipfs://` directly - hash-addressed content guarantees authenticity IPFS is modular: - connection layer over any network protocol - routing layer - uses a routing layer DHT (kademlia/coral) - uses a path-based naming service - uses bittorrent-inspired block exchange IPFS uses crypto: - cryptographic-hash content addressing - block-level deduplication - file integrity + versioning - filesystem-level encryption + signing support IPFS is p2p: - worldwide peer-to-peer file transfers - completely decentralized architecture - **no** central point of failure IPFS is a cdn: - add a file to the filesystem locally, and it's now available to the world - caching-friendly (content-hash naming) - bittorrent-based bandwidth distribution IPFS has a name service: - IPNS, an SFS inspired name system - global namespace based on PKI - serves to build trust chains - compatible with other NSes - can map DNS, .onion, .bit, etc to IPNS