ethereum / glados

Portal network monitoring application.
65 stars 30 forks source link

Improve auditing for state data #323

Open pipermerriam opened 1 month ago

pipermerriam commented 1 month ago

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.