Most people would already know what IPFS is and what it offers to the average developer in terms of distributed data. However, IPFS isn't the only thing that one should understand about this revolutionary system. Underneath IPFS is a system known as IPLD that deals with all the heavy lifting that IPFS does to store data on-chain and create hash-links which we see as content IDs (CIDs). But what is IPLD, and why is it important in the grander scheme of things? Learning about IPLD will allow a unique insight into how IPFS works and the methods necessary to extend the data structures currently available to users through IPFS.
Thank you for taking the time to try and explain IPLD! It’s in my opinion a very important piece of tech within the IPFS ecosystem that is, besides those that develop it, very poorly understood. So getting a more in depth technical view is much appreciated.
But… I don’t get much of this article. It reads like it’s written by one of the IPLD core devs in a way that probably only makes sense for other core IPLD devs. For devs not that deep into the technical details of IPLD, this article probably doesn’t help much in understanding it.
I’m taking one paragraph out of it and asking a bunch of questions for just that one.
Out of the blue: “a graph” is mentioned. Graphs (the kind you mean here) are a very technical subject where it definitely won’t be clear to the average developer what you mean here. It might be better explained if you took the time to actually explain it and/or add a visual representation.
with directories pointing to individual data pieces? Say what? I thought IPLD had no concept of files/folders at all. It’s just data where the links give it hierarchy and the data gives it meaning (could be a directory). It doesn’t have actual directories, does it?
Content IDs are hashes generated to allow the user to interact with IPFS and recover their data. erm… I’m sure that’s technically correct but that reads like your content is hashed and you can find your content by hashing it. It’s not that simple. You can’t just sha256sum(yourfile) and assume you can find your file in IPFS by that hash. I know that’s not what it said but that is how it reads. You probably know better, but as far as i know each individual IPLD block is hashed where your root hash is the CID you access your file by. And that’s a lot different then just sha256sum(yourfile).
IPLD deals with decoding these hashes so that users can access their data. No it does not. There is no “decoding” in hashes, that’s just the wrong terminology mixed with other that make it very confusing to read. What you probably mean is that It decodes the CID to determine how to read the IPLD data.
In many ways, IPLD functions a lot like the developer's old friend, Git, since it uses a similar method for constructing those linked hashes known as a Merkle DAG. You’re assuming here that the reader knows how Merkle DAG works. Don’t assume that. Assume the reader doesn’t know that at all. In fact, at that point in the atricle so many tech terms have passed (without being explained at all) that i’d be surprised if many people even continue reading past that paragraph.
Lastly, the article talks about on-chain a few times. What do you mean? IPFS doesn’t have a blockchain! What kind of chain? I feel like i’m quite familiar with how IPFS works (comparatively to other devs, not compared to core IPFS devs) but this on-chain and frankly the whole article leaves me scratching my head thinking: “what exactly did i read? I still don’t know how IPLD works…”.
Sorry for being a bit critical here, but i only do it with the best intentions. I too want to learn how IPLD works