-
Notifications
You must be signed in to change notification settings - Fork 13
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
overlay benchmark: enable proof generation #255
base: jsign-access-witness-new
Are you sure you want to change the base?
Conversation
github.com/gballet/go-verkle v0.0.0-20230725193842-b2d852dc666b | ||
github.com/gballet/go-verkle v0.0.0-20230809181720-8d8980709295 |
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.
459c790
to
4e29caa
Compare
1bb9cd9
to
6598141
Compare
1d478cc
to
dddaea4
Compare
Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com>
Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com>
Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com>
Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com>
6598141
to
5f011ab
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.
LGTM. I believe the target branch has already been merged, so would it be possible to recreate this PR against kaustinen?
@@ -212,7 +212,8 @@ func (s *StateDB) NewAccessWitness() *AccessWitness { | |||
|
|||
func (s *StateDB) Witness() *AccessWitness { | |||
if s.witness == nil { | |||
s.witness = s.NewAccessWitness() | |||
verkleTree := s.GetTrie().(*trie.TransitionTrie).Overlay() |
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.
there should be a switch to check if the trie is a *VerkleTrie
here. This is the case after the transition (and on testnets that "verge" at genesis)
Regarding the |
This PR enables proof generation in the block processing pipeline.
The strategy is to allow the access witness to generate an adequately loaded tree in the background while
txnContext.AccessWitness
is merged in the main blockAccessWitness
:Merge()
is called, it push a set of new keys that will be included in the proof.InternalNodes
, which is also required for proving.keyValues
for callingProveAndSerialize(...)
.accessWitness.Keys()
. Now thisaccessWitness.Keys()
API could be removed (to be discussed).This PR is sitting on top of the new access witness (not merged) PR since it’s the most reasonable base target. I couldn’t test this branch since the base branch sits atop another (temporarily) broken branch. At some point, I’ll be able to run it and confirm if it works as expected (and fix any remaining nit).
This is still a draft PR:
.Keys()
API removal.