ipld / specs

Content-addressed, authenticated, immutable data structures
Other
592 stars 108 forks source link

filecoin: split basic types and state from chain.md #333

Closed rvagg closed 3 years ago

rvagg commented 3 years ago

@ribasushi @willscott would you mind checking that I've done this appropriately? The main thing to look at is how I've taken the huge chain.md and extracted state.md from it. So chain.md is quite small now and points to both state.md and messages.md where those two come in to play. So the "main chain" should be fully described in chain.md according to how I understand how people describe the "main chain".

There's no data structure changes in here, just splitting docs and adding some new text to link it all together.

ribasushi commented 3 years ago

Looks correct overall. A few nits since this is the first time I am reading this in depth:

Changes requested

rvagg commented 3 years ago

s/final/initial/

I went with "terminal", I'm uncomfortable with "initial" because this is viewing the chain backward, you can't start from the "initial", you have to work back to it (hence the original "final"). Reasonable?

rvagg commented 3 years ago

OK, I'm scrapping that entirely and going a different direction:

# The type hint here, `BlockHeader`, holds true **except** for the case of the
# Genesis block, which is a different format entirely. Note there is a
# `BlockHeader` "bootstrap genesis" but its `Parents` is a single CID pointing
# to the actual Genesis block which is described by the `Genesis` type.

So we have this "bootstrap genesis" which is what the specs are going to refer to as the "genesis". I'm going to merge this but seek further clarification on how core folks talk about this quirk.