-
-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Terminology: MFS vs UnixFS vs Files API #5051
Comments
Yeah, your descriptions are correct. Unixfs is a format. Mfs is the virtual filesystem tree, and the files api is an api interface that gives you filesystem operations over unixfs files/directories backed by mfs. |
One small nit: the current UnixFS format is not compatible with IPLD (there are discussions about designing a v2 that is IPLD-comptible in |
@Mr0grog Thanks for the clarification and the reference, that may explain why I was finding that most functions in charge of formatting the UnixFS object inside the nodes were referring to |
yeah, the current unixfs nodes are a subset of ipld, (the unixfs dag nodes are still ipld objects) but most of the data in them is not accessible in standard ipld contexts. (i can't path traverse these nodes to get filesize, for example) |
Hmmm, I think we’ve reached the limit of my understanding, but I thought IPLD was specifically a CBOR-encoded blob where links are identified by values like Am I misunderstanding, or are you just using IPLD more loosely to indicate a node in a DAG where the links are hashes (i.e. any kind of merkle DAG, not necessarily a MerkleDAG spec merkle DAG)? |
Yeah, this is the part that i find confusing too (i'm looking at you @jbenet). IPLD technically refers to really any content addressable data with links to other content addressable data. CBOR-IPLD is our default implementation that works as you describe. Under that definition of ipld, unixfs is a subset. see: https://ipld.io/ |
Oh, wow, that makes it really hard to talk about clearly. It also explains a lot of the confusion I also went through trying to understand it myself. Thanks for clearing that up (insofar as it can be clear). |
Oh, I'm just reading this, I think this discussion partly answers my question in #5058 (comment). Still, I need some more time to process this information, I'm too confused right now to write any coherent follow-up question. |
I'm failing to find a clear distinction between those terms (the most clear explanation I've found is in ipfs/js-ipfs#60).
Intuitively from what I've seen in issues and reading the code, the
unixfs
package implements the files format to use in IPLD nodes, themfs
package organizes those nodes/files in a hierarchical system similar to the Unix file system and the Files API (that for me is pretty much just thecore/commands/files.go
file in thecommands
package, is there a Core API for this?) exposes that functionality to the user through theipfs files
command set.I would like to arrive to more formal definitions of those terms that would be backed by clear delimitations in the code base (and how those components interact).
The text was updated successfully, but these errors were encountered: