| 1 | |
| 2 | IPFS -- Inter-Planetary File system |
| 3 | |
| 4 | IPFS is a global, versioned, peer-to-peer filesystem. It combines good ideas |
| 5 | from Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single bit- |
| 6 | torrent swarm, exchanging git objects. IPFS provides an interface as simple |
| 7 | as the HTTP web, but with permanence built-in. You can also mount the world |
| 8 | at /ipfs. |
| 9 | |
| 10 | IPFS is a protocol: |
| 11 | - defines a content-addressed file system |
| 12 | - coordinates content delivery |
| 13 | - combines Kademlia + BitTorrent + Git |
| 14 | |
| 15 | IPFS is a filesystem: |
| 16 | - has directories and files |
| 17 | - mountable filesystem (via FUSE) |
| 18 | |
| 19 | IPFS is a web: |
| 20 | - can be used to view documents like the web |
| 21 | - files accessible via HTTP at `http://ipfs.io/<path>` |
| 22 | - browsers or extensions can learn to use `ipfs://` directly |
| 23 | - hash-addressed content guarantees the authenticity |
| 24 | |
| 25 | IPFS is modular: |
| 26 | - connection layer over any network protocol |
| 27 | - routing layer |
| 28 | - uses a routing layer DHT (kademlia/coral) |
| 29 | - uses a path-based naming service |
| 30 | - uses BitTorrent-inspired block exchange |
| 31 | |
| 32 | IPFS uses crypto: |
| 33 | - cryptographic-hash content addressing |
| 34 | - block-level deduplication |
| 35 | - file integrity + versioning |
| 36 | - filesystem-level encryption + signing support |
| 37 | |
| 38 | IPFS is p2p: |
| 39 | - worldwide peer-to-peer file transfers |
| 40 | - completely decentralized architecture |
| 41 | - **no** central point of failure |
| 42 | |
| 43 | IPFS is a CDN: |
| 44 | - add a file to the filesystem locally, and it's now available to the world |
| 45 | - caching-friendly (content-hash naming) |
| 46 | - BitTorrent-based bandwidth distribution |
| 47 | |
| 48 | IPFS has a name service: |
| 49 | - IPNS, an SFS inspired name system |
| 50 | - global namespace based on PKI |
| 51 | - serves to build trust chains |
| 52 | - compatible with other NSes |
| 53 | - can map DNS, .onion, .bit, etc to IPNS |