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

Tweak foundations positioning of multicodecs. #154

Merged
merged 1 commit into from
Aug 2, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 16 additions & 5 deletions FOUNDATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,22 @@ IPLD but there needs to be an immutable layer at the bottom.
**Motivation:** *Having* an immutable layer is important for a lot of analysis,
memoization, type checking, etc.

## Multicodecs Are Not Types

It's impossible to understand IPLD data at a *structural* level if we don't know
the format. Therefore, we should avoid introducing new formats unnecessarily as
*every* IPLD implementation needs to support these new formats.
## Multicodecs Are Not Meant to Act As Types

Multicodecs are used to indicate the format of data in a Block, and thus the
codec which transforms that serial data into a tree of Nodes conforming to the
[IPLD Data Model](./data-model-layer/data-model.md). This is the limit of
their purpose.

In particular, multicodecs should not be confused with a
[type system](https://en.wikipedia.org/wiki/Type_system).

**Motivation:** Since it is impossible to understand data at a *structural*
level without knowing the format, we use multicodecs describe the format.
With this information, we handle the transformation into the IPLD Data Model.
Beyond this, we don't want to use multicodecs further, because we should avoid
introducing new formats unnecessarily: *every* IPLD implementation needs to
support these new formats, and this is a burden it's preferable to minimize.

## No Non-Local Reasoning

Expand Down