nethermind
nethermind copied to clipboard
Make nethermind trace format/structure uniform across modules and with geth
Description
Comparing traces especially debug_traces between nethermind and geth should be as direct as possible, seeing as debug_ endpoints are defined by geth it'd be a good idea to have nethermind debug_trace_block be in the same format as geth's.
Steps to Reproduce/Extra Info
There are at least two ways to get execution traces/bad blocks from nethermind client.
- set Init.AutoDump config to either Parity|Geth|All
- call the [debug_]trace_block api for the respective block. (Requires the debug and trace module enabled i.e JsonRpc.EnabledModules config).
Note: Traces can be particularly large and require some ram to display/format in a more readable format by most text editors/formatting services.
Actual behavior
using a webservice like tracoor and say some random hash of 0x60354ac24a83666dca2fde27f728c6b80a0c3b67ebb54e66438a5558d60754a3
.
You'd notice that the format/fields, structure and units (hex/dec) for representing similar fields across clients differ on netherimind vs geth.
Expected behavior
The goal on resolving this issue is to ensure the automatic traces produced (Init.AutoDump ) match the nethermind client debug_trace_block rpc call [which also match that of geth's] which matches the trace_block call of the trace module. With debug_trace_block [geth's] being the source of truth.
Any extra fields introduced by nethermind should be left in place as is or maybe moved around depending, in such cases discuss below. Relative order should also be made to match.