This repository has been archived by the owner on Dec 23, 2021. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Merkle Tree chapter is hugely useful in understanding how DAT implements a Merkle Tree in hypercore. However, while reading it, I was confused by the following:
Inconsistent application of indices between the steps of the example. e.g., Indices for the tree change from 1-based to 0-based in Entry 4 and a zero-based index is added to the data file in Entry 3.
Ambiguity between indices of elements in the files and the node index of the tree. (e.g., Does
sig(0)
in entry 4 mean signature ofdata[0]
,tree[0]
, orhash 0
?The odd-numbered nodes in the tree file. Given the lack of indices in the presentation (and given they can be calculated at will), it is easy to deduce that these are not stored in the file but it would be good to have this explicitly stated.
In an attempt to clarify things, this pull request:
data[0]
to refer to the 0th item in the data file).#n
notation to refer to hashes within the tree (e.g.,#4
is stored in index2
of the tree file).hash()
– and signatures –sig()
.