# UnixFSv2 replacement notes
Dig: files aren’t as easy to handle as we maybe thing
- Example: symlinks
Melanie: metadata - what are we talking about?
- Not talking about metadata buried in file format (e.g., EXIF in JPEGs)
Dig: metadata like filename is important. If I named a file X, then it should be possible to retrieve the file bytes and metadata like X.
Steven: transport leaking in on why we embed filename metadata with the raw bytes of the file. This was to reduce number of roundtrip of bitswap. Instead need a “mini graphsync” to get everything for a file (including metadata).
Lidel: metadata - directory listing - size of things in the directory. Size is more important than filenames. If we design something new, account for enumerating sizes efficiently. Example usecase: a directory with 10k NFTs.
Adin: the areas we need to agree on:
- what abstractions we need for directories.
Brenden: in QRI days, did a lot of work around WNFS. Brenden did a usecase around a WNFS implementation as an iOS FS implementation.
Getting opinions might be useful so we can be more opinionated.
- access control
(referencing other things from Brenden's previous talk on IPFS Applications)
Adin: why wouldn't we jsut allow someone to say they want to use WNFS rather than trying to make UnixFSv2 better. Basically give a way to get out of the way of letting users help themselves.
Adin: what if you have a structure
- Directory does mapping of filename to next thing
Best effort things like "does the file have metadata"
Do the union of the various things that can mean "is directory"
Do the go thing of trying to match interfaces.
Hannah: what we're really interested in common access patterns:
Can you get from bytes to the access patterns? That requires identifying common access patterns.
Brook (sp?): we're talking about filesystem but we're also talking about pathing.
Adin: what do you do when you hit the end of the tunnel? What you do at the end of the path?
Jorropo: don't do the bad thing of relying on convention having a slash at the end.
Dig: "most people" use a single file system. 99.9% of users are going to use one file system. They want something that works. They don't want to have to care.
Worried that we have an abstraction and various implementations that are working at various levels but users don't have a valid.
Melanie: this brings
Philip: if w'ere talking about abstractions, we need to think about where we're using them
UnixFS was implemented by Go io.
But what happens when you bring it in browser?
Steven: any filesystem with metadata can solve problems.
Brook: WNFS has encryption, versioning. Doesn't render at the gateway. There is a hacked around UnixFS copy of it so that it can be rendered.
Adin: Gateways as application. Think that should be opinonated that aren't opinionated. Can't keep adding url schemes.
Similarity to FUSE things
Steven: take a git tree and import to WNFS and should be viewable. Right now have to reimport it.
Brooke: why wouldn't I translate it?
... more back and forth...
Eric: goal is to identify the things we can agree on to abstract
- Pathing: yes?
- Metadata: no
Hannah: what do we mean about abstractions for filesystem? (I interact with them all the time)
Dig: the problems we need to solve are more concrete.
Adin: what are the problems that we want to get all the brains to agree on a single big thing vs. smaller thing that unlocks a lot.
// Side didn't get to Brenden: where are the thousands of users who want to access git in UnixFS
Steven: agreed, who are asking for these things?
Adin: I don't think it's important to have a megadirectory that has bittorrent and git.
Usecase: can we check all the ISOs, git data, etc. in the work and chuck it to Filecoin.
Example: all the things that have checksums on, take all of them, and and chuck them to ipfs/filecoin.
People use the file abstraction everywhere.
Hannah: if our way of collaboration is not abstraction, thus
Why is WNFS not UnixFSv2? Is it a people problem? Is it PL getting in the way.
Steven: we'd need a way to link to UnixFS from WNFS
Adin: tradgedy is not escaping scheme ipfs://
// Discussion around uri schemes (wnfs:// or suffixing with cid.wnfs.origin)