Skip to content
This repository has been archived by the owner on Mar 24, 2023. It is now read-only.

Note that partial nodes can act as storage nodes for subset of blocks #177

Merged
merged 2 commits into from
Jun 8, 2021

Conversation

adlerjohn
Copy link
Member

@adlerjohn adlerjohn commented Jun 3, 2021

Ref: #175.

Note that storage nodes were already defined at the bottom: https://github.com/lazyledger/lazyledger-specs/blob/de7abfcbed571d5980b25c9ea2b182d141270232/src/specs/node_types.md#node-type-definitions

Storage nodes provide the same security guarantees as full nodes. Block bodies (in erasure-coded form) are stored and served to the network.

Expand node type descriptions.

Rendered: https://github.com/lazyledger/lazyledger-specs/blob/adlerjohn/expand_storage_nodes/src/specs/node_types.md#node-type-definitions

@adlerjohn adlerjohn added the documentation Improvements or additions to documentation label Jun 3, 2021
@adlerjohn adlerjohn self-assigned this Jun 3, 2021
@adlerjohn adlerjohn requested a review from liamsi June 3, 2021 20:42
@adlerjohn adlerjohn mentioned this pull request Jun 3, 2021
8 tasks
Comment on lines 103 to 107
- Block headers: [Extended Block Headers](#extended-block-headers)
- Block bodies: [Full Bodies](#full-bodies)
- Transactions: [Full Transactions](#full-transactions)

Note: partial nodes may also serve the purpose of storage nodes (distributing shares to the network) for a subset of blocks.
Copy link
Member

Choose a reason for hiding this comment

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

Oh, I see. Hmm, the nomenclature is kinda confusing.

So the difference between a Storage Node and a Full Node is only the fact that one stores the erasure-coded Block bodies and the other doesn't necessarily (e.g. could be validators). Otherwise, they are the same. For partial nodes it remains unclear if they store (parts of the block bodies) or not until this Note at the bottom.

Here is what I think could improve this:

Remove the specific node-type. Either add a bullet-point to each other called "Stores:" and list what it is expected to store (and if it is optional). Or, add a section about storage as all other nodes types (besides supe-light-nodes) will in reality "store and served to the network".

While at it:

Light validator nodes can produce new blocks with strong security guarantees and light resource requirements.

We decided that this node-type does not exist anymore.

Copy link
Member

@liamsi liamsi left a comment

Choose a reason for hiding this comment

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

Light validator nodes can produce new blocks with strong security guarantees and light resource requirements.

While this is slightly orthogonal, I would strongly suggest removing this type. We decided last week to drop this node type.

Left some opinionated suggestions how to improve the other changes: #177 (comment)

IMO, this still needs to be clearer.

@liamsi
Copy link
Member

liamsi commented Jun 3, 2021

Also wanted to bring in the perspective that the node-types section & specification should inform this: celestiaorg/celestia-core#388 and will play a big role in defining parts of next big milestone: celestiaorg/celestia-core#381

@adlerjohn adlerjohn requested a review from liamsi June 8, 2021 13:09
Copy link
Member

@liamsi liamsi left a comment

Choose a reason for hiding this comment

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

I feel there is still some redundancy between the definitions between the different node types and this could be further simplified (i.e. this should be a table).

But this is already so much better!

@adlerjohn adlerjohn merged commit fc1da81 into master Jun 8, 2021
@adlerjohn adlerjohn deleted the adlerjohn/expand_storage_nodes branch June 8, 2021 13:39
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants