-
Notifications
You must be signed in to change notification settings - Fork 975
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(adr): BlockSync Overhaul ADR #011 - Part 1 #1037
Conversation
bb99ca5
to
63ad7eb
Compare
02e06d8
to
f680f21
Compare
Codecov Report
@@ Coverage Diff @@
## main #1037 +/- ##
==========================================
- Coverage 57.39% 56.89% -0.51%
==========================================
Files 133 136 +3
Lines 8307 9063 +756
==========================================
+ Hits 4768 5156 +388
- Misses 3067 3368 +301
- Partials 472 539 +67
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
d22611a
to
46c517f
Compare
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.
Absolutely amazing! Looking great. Excited for the diagrams as well
I mainly have questions, but also had some comments from what I learned from my experiments. And some opinions I want to debate on
Still some open questions on my mind but I will think about them and extend my review later
2d41034
to
e6fda67
Compare
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.
Best ADR yet!
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.
Awesome work!
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.
This ADR is awesome and should be used as an example for writing ADRs org-wide :)
One nit/question: have you considered extracting EDSStore into a subpkg of share
module? eds.Store
?
I thought that the share pkg would likely become too bloated and made a point about restructuring it in the EPIC. I like your idea to have a subpackage named as |
…ethod clarifications
e6fda67
to
e1249b9
Compare
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.
Awesome work!
- LN - Light Node | ||
- FN - Full Node | ||
- BN - Bridge Node | ||
- [EDS(Extended Data Square)](https://github.com/celestiaorg/rsmt2d/blob/master/extendeddatasquare.go#L10) - plain Block |
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.
- [EDS(Extended Data Square)](https://github.com/celestiaorg/rsmt2d/blob/master/extendeddatasquare.go#L10) - plain Block | ||
data omitting headers and other block metadata. | ||
- [NMT](https://github.com/celestiaorg/nmt) - Namespaced Merkle Tree | ||
- [DataRoot](https://github.com/celestiaorg/celestia-node/blob/main/service/share/share.go#L35) - alias for |
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.
Same, use permalink.
data omitting headers and other block metadata. | ||
- [NMT](https://github.com/celestiaorg/nmt) - Namespaced Merkle Tree | ||
- [DataRoot](https://github.com/celestiaorg/celestia-node/blob/main/service/share/share.go#L35) - alias for | ||
[DAHeader](https://github.com/celestiaorg/celestia-core/blob/v0.34.x-celestia/pkg/da/data_availability_header.go#L29) |
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.
Same as above.
The DASing, on the other hand, shows acceptable metrics for the block sizes we are aiming for initially. In the case of | ||
the same block, a DAS operation takes 50ms * 8(technically 9) blocking requests, which is ~400ms in an ideal scenario | ||
(excluding disk IO). |
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.
This may sounds as if we won't be touching/improving DASing at all. Though my understandig is that why it is acceptable initially, we still will want to optimize DASing as well (I think that is sth @derrandz will look into among other things AFIU).
Nothing to change here but just double-checking that we are aligned.
|
||
This ADR intends to outline design decisions for block data storage. In a nutshell, the decision is to use | ||
___[CAR format](https://ipld.io/specs/transport/car/carv2/)___ and ___[Dagstore](https://github.com/filecoin-project/dagstore)___ | ||
for ___extended block storage___ and ___custom p2p Req/Resp protocol for block data syncing___(whole block and data by |
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.
nit: whitespaces between words and (
in general. No need to change anything but something to watch out in the future.
is focused around storing entire EDSes as a whole rather than a set of individual chunks, s.t. storage subsystem | ||
can handle storing and streaming/serving blocks of 4MB and more. | ||
|
||
#### EDS Serde |
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.
What does serde stand for? Shouldn't the title here be:
EDS (De-)Serialization
- [Writes](https://github.com/ipld/go-car/blob/master/car.go#L118) the shares in row-by-row order | ||
- Iterates over in-memory Blockstore and [writes]((https://github.com/ipld/go-car/blob/master/car.go#L118)) NMT Merkle | ||
proofs stored in it | ||
|
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.
All above links should be perma-links. Otherwise they will be out of date shortly.
Rendered