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.
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.