# IPFS - It's a file system with [content based addressing](https://www.youtube.com/watch?v=5Uj6uR3fp-U). Instead of domains, you use the content as the domain. Because content can be very very long, we run a small program on it to produce a unique identifier based on that content (a hash). These identifiers are long enough that the possibility of two pieces of content creating the same one is virtually impossible. - Files are automatically deduplicated. - [It chunks, hashes and organizes blobs in a smart way](https://docs.google.com/presentation/d/1Gx8vSqrWZ7X-3SCgITXqQdinZQeXIAA7ITqL25SsPN8/edit#slide=id.g741b4d76cd_0_13). - Once something is added, it can't be changed anymore. - At the heart of everything, is the concept of content identifiers (CIDs). - A CID isn't just a hash of a file—it's a combination of the hash, metadata about how the content is hashed, details about encoding, and instructions for interpreting the data. - They provide Portability and Openness. - Keeping files available is a challenge. If the nodes storing a file go down, it'll disappear from the network. - Filecoin idea was to help with this adding incentives to the equation. ## [IPLD](https://ipld.io/) - Data model for IPFS - Everything is a node. Nodes have types. - The data structure is a Merkle Tree. - Makes easy to have interoperability of data. Useful for distributed databases. - Bridges content addressing and distributed systems. ## LibP2P - Modular peer to peer networking layer. - Multiple users across the decentralized ecosystem. - [Many implementations](https://libp2p.io/implementations/) of each module.