-
Notifications
You must be signed in to change notification settings - Fork 3
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
Steb's Questions & Feedback #13
Comments
Thanks for a second set of eyes on this! 🙏
Yes.
Yeah. In WNFS we've previously piggy-backed on existing metadata types out there providing us with info of whether something is a file or not.
Yes. Nothing should prevent you from linking to a CID in the metadata (& that being understood by IPFS natively, it being dag-cbor).
Metadata is meant to be extensible. Making that more explicit in the spec is TBD!
I think for these two fields it doesn't really matter where they go (unless we decide to split out metadata into another block entirely at some point or something like that).
That sounds like an interesting use case. I don't quite understand what you're trying to achieve with this. Yeah, symlinks are very much underspecified right now. I need to check back with Brooke on what the plans around this exactly are (& with other folks who've worked on existing implementations of them in previous versions of WNFS so far). |
@Stebalien thank you very much for the questions and feedback! 🙏
Because it's encoded as UnixFS today. When we write a custom codec, it should absolutely be in the metadata. We needed all of this stuff to work on an arbitrary gateway, but with some changing coming (or better WNFS support) a custom codec would be extremely high on the priority list. We've never been happy with having to use UnixFS for this.
Interesting. I guess you mean breaking it up into multiple metadata files. Is there a a use case for that, or could it be pushed off? If you have that much metadata, it may make sense to store it as a file and link to the CID from the metadata file. I'm not against such a change, but need to think on it more.
We've gone back and forth on this. You can build N-way merges out of binary merges. Assuming that you haven't written an update to the merge, then you treat all of the leaves of the merge tree as abelian monoid (partially ordered, associative, commutative). IIRC the tradeoff on binary links is that you get more consistent merge nodes across replicas, but more internal nodes. It's not an "over my dead body", though. We want back and forth on this one.
Sure. Do you mean arbitrary IPLD, or a file extension? As an aside that may or may not be relevant, something that Brendan asked for previously (but now seems to think is a bad idea) is "LDFiles" (Linked Data Files), which are arbitrary IPLD that can have internal versioned updates.
Yes to both, via symlink
What is "more restricted" in this context? If you mean data that the current part of the cryptree can't read, then yes via symlink. |
Exactly this! It's essentially xattrs |
Another few things that you may find interesting, but we haven't actually done anything with yet, in a tweak to an earlier answer: You can put public files (or directories) in the private directory, and treat them as "unlisted". You technically could put encrypted files or DAGs in the public tree, but now you're revealing some info about them (the path that they're embedded inside). It's probably best to keep them in one big structure, and use (e.g.) the human-readable file path (which doesn't correlate to the external labels at all). The private tree can contain an arbitrary number of file systems (or other structures) if kicked off by a super user. This is likely a feature, not a bug. For example, our WIP distributed database's private data MAY end up living here since it has an extremely different layout from the file system and different concept of versioning. |
I think most of the points raised were addressed. The rest I'd consider to be part of #24 |
Yeah, sorry, I wrote up a response then GitHub ate it. But yes, I have a much better understanding now. |
Some quick questions and "context-free" suggestions (dumped in one place so I don't spam a bunch of issues).
previous
to an array of parents (like git).{ipns: "...", http: "..."}
The text was updated successfully, but these errors were encountered: