Skip to content
This repository has been archived by the owner on Jun 29, 2022. It is now read-only.

Documentation about "context" #351

Open
vmx opened this issue Jan 19, 2021 · 1 comment
Open

Documentation about "context" #351

vmx opened this issue Jan 19, 2021 · 1 comment

Comments

@vmx
Copy link
Member

vmx commented Jan 19, 2021

This is a super broad meta issue. Though I couldn't find anything about that in the issue tracker, hence I open this one.

The topic "context" is something that comes up at times and is something that folks that are are deep into Multiformats, IPLD and content addressing have in mind, but we haven't really written it down.

As it is rather abstract I'd like to take this issue to collect cases where it came up in hope that we then can extract something from it to put something together we can link people to if similar things come up.

Two major cases come to mind mind, I'm sure there are more.

CIDs

When someone wants to register a new multicodec code at the https://github.com/multiformats/multicodec/ repo, it is often some kind of type identifier and not an IPLD Codec (see Multicodecs Are Not Meant to Act As Types).

A common answer is that if you request such an object, the application that issued that request usually has information about what kind of thing it requested.

If that's not the case another way is to make sure the object is self-described and you can get the type after decoding it. UnixFSv1 and Git are examples for that.

Traversals

When doing traversals through a DAG you might up in a raw block and you'd like to know what it is. Is it an image or an audio file? There you would build up the "context" while you're traversing the DAG and keep information that will be useful to identify the raw block.

@vmx
Copy link
Member Author

vmx commented Jan 19, 2021

The SoftWare Heritage has a case where things are encoded as Git objects, but in order to process it you need more to know which time it is as the format is not self-describing: multiformats/multicodec#203

They actually have a self-describing format which they encode as (non-standard) Git objects,

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant