The goal of this task would be to instrument the current EOS EVM implementation so that a live "tracer" can fully trace the block execution including transactions, calls, state changes, balance changes, nonce changes, account created.
The tracer module should be able to work at the block level accumulating everything transaction execution. The final tracer should be a single textual line of the form:
FIRE BLOCK <NUMBER (u64 string)> <HASH (hex string)> <LIB NUMBER (u64 string)> <LIB ID (hex string)> <proto (base64 string)>
The value encoding are given un paranthesis, an instatiated line could look like:
FIRE BLOCK 10 4ff4a38b278ab49f7739d3a4ed4e12714386a9fdf72192f2e8f7da7822f10b4d 5 f37c632d361e0a93f08ba29b1a2c708d9caa3ee19d1ee8d2a02612bffe49f0a9 eEy....
The proto
object should be an instantiation of model https://github.com/streamingfast/firehose-ethereum/blob/develop/proto/sf/ethereum/type/v2/type.proto.
The various correct instrumentation point should be done to be aligned with Geth
, some further documentation can be provided upon request.