-
Notifications
You must be signed in to change notification settings - Fork 20.2k
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
Features for incident analysis #24720
Comments
Another one: {
"env": {
"currentCoinbase": "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b",
"currentDifficulty": "0x20000",
"currentGasLimit": "0x750a163df65e8a",
"currentNumber": "1",
"currentTimestamp": "1000"
},
"alloc": {
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"balance": "0x5ffd4878be161d74",
"code": "0x",
"nonce": "0xac",
"storage": {}
},
"0x8a8eafb1cf62bfbeb1741769dae1a9dd47996192": {
"balance": "0xfeedbead",
"nonce": "0x00"
}
}
} This is compatible with
If we can make an online node spit out the such an env+alloc file, then we can more easily try out patches and in general analyze what's happening on a given transaction, in case the evm is misbehaving. This is basically the original reason for why I made |
IMO For
I personally prefer the map format since it reinforces the key/value relationship in the receipts root trie, but am totally open to it being a simple array as well. Either way, it'd be nice if it was paired w/ a
|
We could, instead of implementing |
stale |
Here are some features which would be good to have, going towards the merge:
GetBlockReceiptsRLP
. Currently, we have no way to obtain the raw rlp receipt-blobs which make up thereceiptsRoot
for a block.geth db get(put/delete?)
via RPC layergcMode
via RPC. Right now, it's either archive=mode or 2-hours-processing-mode. When the node nears an upcoming fork, it would be nice to set it to flush e.g. after5m
processing, or512 blocks
, and later be able to set it back to a mode which is less disk-heavy.Decided to skip:
debug.flushState()
. Somehow, it would be nice to be able to flush the state for a certain block. As it is now, we have128*14
seconds, or about30m
to investigate (e..g get a trace) from a progressing "good" node before a state is forgotten. After that point, we can doreexec
, but thereexec
never flushes state to disk, so operating on an old state might mean half an hour reexec performed again on every call.The text was updated successfully, but these errors were encountered: