feat: build state trie from proofs in host instead #40
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.
Moves the trie building process (from proofs) from the client to the host. The client now only verifies the root before and after the state transition. This saves a lot of cycles as the trie building process is expensive.
As a result, the account/storage loading logic has also been rewritten, since the proofs are no longer passed into the client. Instead, the client receive "state requests" which contains keys (i.e. addresses/ slots), with the actual values read from the trie.
Also switches to use the MPT implementation from
zeth
inrsp-mpt
.For the block tested of
20600000
, the cycle count drops from759,763,136
to417,218,608
by 45.08%.