Skip to content
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

Stacktrie prover v3 #24560

Closed
wants to merge 2 commits into from
Closed

Conversation

holiman
Copy link
Contributor

@holiman holiman commented Mar 18, 2022

This PR is my second attempt at implementing what I outline here: #24556 (comment) .
It (so far) implements half of verifying a range with stacktrie, which means initializing the stacktrie with the correct initial structure. After that, we can fill with the keys.

IT does not yet contain code to fix up the right-hand side, if one does not want to fill it with the entire remaining range. It's a PoC so far, ideas/suggestions welcome. I find the latter part a bit more difficult than the initial part, since it cannot just create a stacktrie from given data, but must actually massage the existing stacktrie to conform to the desired structure.

@holiman
Copy link
Contributor Author

holiman commented May 4, 2022

Closing this.
Note to self though. We (@fjl and I) discussed this a bit, and the problems with the stacktrie being totally separate from the current trie: using stacktries as node representations instead of node.
If the stacktrie operated on nodes, then it would be easier to switch between trie/stacktrie, and stacktrie would simply be one way to construct a trie (but unresolved as we go along).

I implemented that approach here: https://github.com/holiman/go-ethereum/tree/inctrie . However, the approach is iirc ~2x slower than the stacktrie, so I didn't continue it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant