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

Improve auditing for state data #323

Open
pipermerriam opened this issue Oct 12, 2024 · 0 comments
Open

Improve auditing for state data #323

pipermerriam opened this issue Oct 12, 2024 · 0 comments

Comments

@pipermerriam
Copy link
Member

State data auditing is currently at an MVP stage and needs to be improved to give real metrics about data availability in the network.

Storage Tries

If we aren't walking down into storage tries, we need to do this ASAP.

Breadth first walk

We could also implement a walk that picks a random state root and enumerates the top level or levels of the trie. I'm not sure of the specific value of this approach but I think it tests a different shape of the data and might find missing intermediate nodes more readily that deep walks.

Expand to audit full key ranges

This would be a somewhat minimal extension of the current auditing approach. When we do a random trie walk, we could walk the trie in both directions until we reach some maximum number of trie nodes visited... Something like 256 or 512 trie nodes. This would tell us that a whole contiguous swath of the trie was available.

Contract Code

Another simple extension to the current random trie walk would be to fetch contract code in the event that the account we find is not an EOA.

Replaying transactions or whole blocks

Pick a block and replay either the first transaction or the full block of transactions. This would be a stronger stress test and would give more information than simple availability. This would allow us to gauge metrics on how fast we can do on-demand data execution.

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

No branches or pull requests

1 participant