IPFS is a modular suite of protocols and standards for organizing and moving data, designed from the ground-up with the principles of content addressing and peer-to-peer networking.
Here’s how the IPFS subsystems stack up:
Purpose | Subsystem |
---|---|
Defining and organising the data | UnixFS, DAG-CBOR, DAG-JSON https://ipld.io/, MFS |
Transferring Data | Bitswap, HTTP (IPFS Gateways), Graphsync, Sneakernet, and more in development |
Content routing: linking between CID: IP addresses | Kademlia DHT, Delegated over HTTP, Bitswap (WANT), mDSN |
Addressing for data & peers | https://multiformats.io/ (CIDs, multiaddr) |
Bridging between IPFS and HTTP | https://docs.ipfs.tech/concepts/ipfs-gateway/, Pinning API Spec |
Establishing peer-to-peer connectivity | https://libp2p.io/ (TCP, QUIC, WebRTC, WebTransport) |
Mutability & Dynamic Naming | https://docs.ipfs.tech/concepts/ipns/#mutability-in-ipfs (Interplanetary Naming System) |
https://docs.ipfs.tech/concepts/dnslink/ |
Purpose | Part of the IPFS stack |
---|---|
Addressing data and peers | CIDs, IPNS, DNSLink |
Defining Data | IPLD (UnixFS, CAR files, DAG-CBOR, DAG-JSON), MFS |
Routing Data | DHT, Bitswap, mDNS, Delegated HTTP Routing |
Transferring/Moving Data | Bitswap, IPFS HTTP Gateways |
Establish connectivity between peers | Libp2p (TCP, QUIC, WebRTC, WebTransport) |