-
Notifications
You must be signed in to change notification settings - Fork 293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: data square layout specs update part 1 #1905
Conversation
|
Codecov Report
@@ Coverage Diff @@
## main celestiaorg/celestia-app#1905 +/- ##
=======================================
Coverage 21.21% 21.21%
=======================================
Files 120 120
Lines 13695 13695
=======================================
Hits 2905 2905
Misses 10500 10500
Partials 290 290
|
@@ -37,16 +36,16 @@ Specifically, blobs must begin at a new share. We note a nice property from this | |||
|
|||
This, however, requires the block producer to interact with the transaction sender to provide them the starting location of their blob, so that the sender can sign over the commitment based on that starting location. This can be done selectively, but is not ideal as a default for e.g. end-user wallets. | |||
|
|||
### Non-Interactive Default Rules | |||
### Non-Interaction Rules |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
### Non-Interaction Rules | |
### Share Commitment Rules |
or Blob Commitment Rules
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[not blocking] or Blob Share Commitment Rules 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I'm a fan of that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cc also curious what @adlerjohn thinks about the name
we've changed them to "Blob Share Commitment Rules" for now. Personally, I'd opt for something like "Blob Layout Rules" or just "Blob Commitment Rules", but bscr are suitable as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not too picky though, whatever people can get behind I'm good with
I'm just going to pick this up (hope that's okay @evan-forbes) |
Co-authored-by: Rootul P <rootulp@gmail.com>
Meta comment here: In all honesty, you probably should not be able to approve a PR that you made commits too but whatever |
|
||
We want to arrange this data into a `k * k` matrix of fixed-sized shares, which will later be committed to in [Namespace Merkle Trees (NMTs)](../specs/data_structures.md#namespace-merkle-tree) so that individual shares in this matrix can be proven to belong to a single data root. | ||
We want to arrange this data into a `k * k` matrix of fixed-sized [shares](../specs/shares.md), which will later be committed to in [Namespace Merkle Trees (NMTs)](https://github.com/celestiaorg/nmt/blob/v0.16.0/docs/spec/nmt.md) so that individual shares in this matrix can be proven to belong to a single data root. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[no change needed][question] for consistency, should we refer to it as "Namepsace" or "Namespaced" Merkle Trees?
https://github.com/celestiaorg/nmt README says "Namespaced" but TBH I prefer "Namespace"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm good with either, but the LL paper uses "namespaced"
|
||
This is similar to [Merkle Mountain Ranges](https://www.usenix.org/legacy/event/sec09/tech/full_papers/crosby.pdf), though with the largest subtree bounded by the blob minimum square size rather than being unbounded. | ||
In the constraint mentioned above, the number of rows/columns in the minimum square size should be a power of 2. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[question] is this line still applicable? There is no reference to minimum square size above
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
resolved in bfa854b
specs/src/specs/networking.md
Outdated
|
||
Receiving a `MsgWirePayForData` object from the network follows the reverse process: verify using the [non-interactive default rules](../rationale/data_square_layout.md#non-interactive-default-rules) that the signature is valid. | ||
Receiving a `MsgWirePayForData` object from the network follows the reverse process: verify using the [non-interaction rules](../specs/data_square_layout.md#non-interaction-rules) that the signature is valid. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[blocking][question] if we're renaming non-interactive default rules to non-interaction default rules, should we do a global find + replace of the codebase in this PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good point 2a24af8
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't touch the ADRs as there are an insane number of references, although we might want to in the future
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought we were going to rename it from non-interactive default rules to blob share commitment rules 🙃
there were some merge conflicts, so I went ahead and updated them along with feedback from Rootul |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* docs: data square layout part 1 * docs: add power of 2 note * Apply suggestions from code review Co-authored-by: Rootul P <rootulp@gmail.com> --------- Co-authored-by: Callum Waters <cmwaters19@gmail.com> Co-authored-by: Rootul P <rootulp@gmail.com>
* docs: data square layout part 1 * docs: add power of 2 note * Apply suggestions from code review Co-authored-by: Rootul P <rootulp@gmail.com> --------- Co-authored-by: Callum Waters <cmwaters19@gmail.com> Co-authored-by: Rootul P <rootulp@gmail.com>
Overview
closes #1606, although I still think there is work to update this portion of the specs. I didn't want to leap to that yet, so I've limited the changes here to mostly updating to the new non-interaction rules
Checklist