-
Notifications
You must be signed in to change notification settings - Fork 997
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
Use hash_tree_root
to generate shard block body root
#1980
Use hash_tree_root
to generate shard block body root
#1980
Conversation
Include the mix-in length to the proof.
eb27a34
to
e7f070d
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! few minor comments and questions
data_branch = build_proof(custody_data_block.get_backing().get_left(), chunk_index + 2**spec.CUSTODY_RESPONSE_DEPTH) | ||
leaf_index = chunk_index + 2**spec.CUSTODY_RESPONSE_DEPTH | ||
serialized_length = (len(custody_data_block)).to_bytes(32, 'little') | ||
data_branch = build_proof(custody_data_block.get_backing().get_left(), leaf_index) + [serialized_length] |
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.
Do we still need the backing from remerkleable?
What exactly does get_left()
give you here?
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.
afaik the get_right()
is the mix-in length and the left side is the block data.
@protolambda 's example here: https://gist.github.com/protolambda/8384b1305613d064ba962214d08396f0
We can use eth2spec.utils.merkle_minimal.calc_merkle_tree_from_leaves
and get_merkle_proof
to create the proof too. Hmm, if we want to include proof generation in v-guide, using get_merkle_proof
helper would be simpler. What do you think?
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.
In the validator guide, I think we should be explicit and not use underlying library structure functions.
As for the spec tests, I'm happy to use the remerkleable backings because they are probably much more efficient
* Quick fix the configurations * Remove the unused `CUSTODY_RESPONSE_DEADLINE`
Issue
Address #1973 and replace #1975
#1973 (comment): No problem for the proof of custody or MPC-friendliness.
How did I fix it
hash_tree_root
to generate the root instead ofget_block_data_merkle_root