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

design: add an exploration report about learning IPLD #294

Merged
merged 1 commit into from
Sep 26, 2020
Merged

design: add an exploration report about learning IPLD #294

merged 1 commit into from
Sep 26, 2020

Conversation

mvdan
Copy link
Contributor

@mvdan mvdan commented Sep 8, 2020

No description provided.

@mvdan mvdan requested a review from mikeal September 8, 2020 16:35
different than Schemas. I found the "Mapped to the Data Model" introduction to
ADLs much easier to understand, as it shows reasonable examples.

* Why are multi-block data structures a separate definition in the spec, and not
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is historical - those docs were before schemas were materialised in doc form, but I think once we have a functioning end-to-end system that can do ADLs (go-ipld-prime being the obvious candidate for getting that done first) then we might have fresh eyes for revising how these pieces fit together. I don't envy you having to get up to speed with some of these concepts still being thought-bubbles and nowhere to be found code while we're all convince that they will be soon!..

Copy link
Member

@rvagg rvagg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👌 great capture of the learning process

@mvdan
Copy link
Contributor Author

mvdan commented Sep 24, 2020

Friendly ping @mikeal :)


* Wouldn't removing the first byte from a very long multi-block List mean that
every block would need to be modified to shift all bytes forward by one? I
assume and hope not, but the spec doesn't really give pointers.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this was answered elsewhere, but the design of the ADL is where you resolve this concern. Some designs would cause the level of churn you’re stating but other designs can avoid most of it. For instance, if the primary concern is the cost of append-only mutations you can avoid generating any garbage at all using a design not unlike a blockchain.

assume and hope not, but the spec doesn't really give pointers.

* Since data in blocks is encoded from the data model, how would Iknow if a
particular data model value fits in a single block? What about a shema value?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Depends on the codec how predictable the serialization is. If you are doing this in a codec agnostic way then you end up having to serialize it to get the size.


* Would IPLD be much different if the data model was an internal detail, and not
exposed to the user? I imagine that, most of the time, one would interact with
schemas and not the data model.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since these are all just protocols you have to keep in mind how a-la-carte people will choose to adopt them. Data encoded by one actor using a schema may be decoded by another actor who has little interest in the schema and can accomplish what they want with just the encoded data, and they may not even implement a full featured deserializer in order to do that.

* When docs say "the IPLD type system", is that in terms of Schemas, or the Data
Model, or both? Answer: The schema intro later says that "types" are for
schemas, and "kinds" for the data model. That should probably be sooner in the
schema spec.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’d need a link to the usage to answer this.

@mikeal
Copy link
Contributor

mikeal commented Sep 25, 2020

Left some comments we can follow up on, merging.

@mikeal mikeal merged commit ddc331d into ipld:master Sep 26, 2020
prataprc pushed a commit to iprs-dev/ipld-specs that referenced this pull request Oct 13, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants