This repository was archived by the owner on Apr 29, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
This repository was archived by the owner on Apr 29, 2020. It is now read-only.
What does this format need to do? #7
Copy link
Copy link
Open
Description
On Tue, May 05, 2015 at 08:52:35PM -0700, Jeromy Johnson wrote:
Hrm, i guess we should lay out what properties we are interested in having before attempting to design anything.
This is a good idea ;). Possibilities include:
- Store one Merkle-DAG object and some set of it's descendents (Multiple roots in the archive #3).
- Potentially mark descendents as not included (Ignoring shared subtrees #5).
- Be reasonably quick to write. Ideally by streaming (i.e. not holding all serialized objects in memory), but probably not a hard constraint.
- Be very quick to list the object's multihash and not-included object multihashes (Ignoring shared subtrees #5) so we know what the file contains.
- Be very quick to list multihashes for all included objects.
- Be very quick to iterate over all contained objects (e.g. if you're loading them into a node's object store).
- Be very quick to lookup a particular object by path (e.g. finding Key3 knowing Key1/Key2/Key3, discussion in Using a protobuf or other IPFS-ish format for the wrapping archive #6).
- Be very quick to lookup a particular object directly (e.g. a deep Key3 without other information, discussion in Using a protobuf or other IPFS-ish format for the wrapping archive #6, sketches of doing this via Git-style fanout and indexing here).
- Detect and adjust to truncation and/or corruption (Ensuring completeness and catching corruption #4).
- Store delta representations (Delta representations #2).
- Be forward and backward compatible across archive-format evolution.
- Be forward and backward compatible across IPFS-object-format evolution.
For stuff with issues, please discuss whether or not we need the feature or how to go about implementing it in that issue. For stuff without issues, please create a new issue for that feature and discuss there (we'll link to it from here).
This issue is for potential requirements that I haven't listed. Thoughts?
Metadata
Metadata
Assignees
Labels
No labels