description |
---|
The What and Why of IPLD |
IPLD (InterPlanetary Linked Data) is The Data Layer for content-addressed systems
IPLD answers the question: Can we extract a re-usable data layer from IPFS that can be used to build other types of content-addressed data systems?
Every content addressed system reinvents the data layer, typically in non-reusable ways. But we think that building the next Git should take hours, not days! so IPLD aims to be an off-the-shelf content addressed data layer, with associated libraries, documentation and tooling.
Treating the data layer as a discrete system provides leverage to content addressed developers:
- How can we scale the size and complexity of the data that we share peer to peer?
- Can we unify disparate content addressed formats and link between them? Git, blockchains, IPFS, etc.
- Can we build distributed data structures that we can interact with like we do with hosted databases, while taking advantage of the benefits of content addressing?
IPLD is the data layer of IPFS. But the reverse is also true because IPFS is a block store for IPLD.
IPLD deals with data consistency, data addressing, data relationships (graphs), content addressed data structures, data navigation and more.
IPLD is generally not concerned about data storage or transports (with some caveats).
IPLD does not limit itself to peer to peer systems (Amazon S3 can be a perfectly reasonable IPLD block storage system!), but in general we think peer to peer is preferable!
At its most fundamental, IPFS is a collection of:
- binary blobs of data - "blocks";
- their associated content identifiers - CIDs
These are both the core concerns of IPLD. IPFS builds on these primitives to provide a sophsticated peer to peer content addressing data stack, with a mature suite of tooling to deal with files.
Only the smallest files in IPFS are stored as a single blob ("block"): to keep block size practical, files are split up into chunks and spread across multiple blocks and linked together into a single graph.
Directories are graphs of named links pointing to files, forming graphs that address other graphs
ResNetLab: Course Module - Content Addressing:
{% embed url="https://www.youtube.com/watch?v=dN9EvujJ9cM" %}
ResNetLab: Course Module - InterPlanetary Linked Data (IPLD)
{% embed url="https://www.youtube.com/watch?v=Sgf6j_mCdjI" %}
IPFS | Docs | GitHub - IPLD | Docs | GitHub - Libp2p | Docs | GitHub - Filecoin | Docs | GitHub