hello friends! new(ish)!
IPFS
IPFS (InterPlanetary File System) is a content-addressed distributed file system. IPFS is also a catch-all phrase for a variety of inter-related projects maintained by Protocol Labs. The goal of IPFS is to replace HTTP as the dominate hypermedia protocol on the internet.
The IPFS Stack
- IPFS
- Multiformats
- Multihash - self-describing hashes
- Multiaddr - self-describing network addresses
- Multibase - self-describing base encodings
- Multicodec - self-describing serialization
- Multistream - self-describing stream network protocols
- Multigram (WIP) - self-describing packet network protocols
- IPLD - Abstract Data Model
- libp2p - Networking and Peer Discovery
- Filecoin - Incentive Layer
"Hey pal, what are you pulling here, huh? Multi-what?" may be what you're saying.
IPFS uses multihashes to address data. The hash addresses it's own hash algorithm.
The first two digits of a multihash identify the hash algorithm. IPFS uses SHA256
which is represented as Qm
. The rest of a multihash is not simply the output of SHA-256. Try it yourself, it's not.
There's a lot of chunking, hashing, and other magic going on behind the scenes. The end result is you get something that looks like this QmRW3V9znzFW9M5FYbitSEvd5dQr
which is a multihash.
Multiformats, libp2p and IPLD are separate projects from IPFS that can be used independently of IPFS.