Skip to content

Stateless: Add multiproof function and use when building witnesses#3556

Merged
bhartnett merged 13 commits intomasterfrom
stateless-multiproofs
Aug 13, 2025
Merged

Stateless: Add multiproof function and use when building witnesses#3556
bhartnett merged 13 commits intomasterfrom
stateless-multiproofs

Conversation

@bhartnett
Copy link
Copy Markdown
Contributor

@bhartnett bhartnett commented Aug 12, 2025

This PR adds a multiproof function to the aristo proofs module which returns all the proof trie nodes for an entire block (account and storage trie nodes) together in a single list. Doing so enables sharing the node cache with all the account proof and storage proof calls in order to further improve performance.

By using the table parameter which maps account paths (address hash) to a list of storage paths (slot hashes), when building the witness, only a single loop through is needed (linear time with respect to the number of witness keys) instead of a double loop (quadratic time) which results in rather bad performance when building the witnesses during the DOS block ranges where some blocks generate more than 50K witness keys.

@bhartnett bhartnett enabled auto-merge (squash) August 13, 2025 15:31
@bhartnett bhartnett merged commit 2ea90ab into master Aug 13, 2025
@bhartnett bhartnett deleted the stateless-multiproofs branch August 13, 2025 15:56
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