Skip to content

Instantly share code, notes, and snippets.

@maoueh
Created October 6, 2023 19:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maoueh/2e6294ff87564a96de4a8a14a9cff679 to your computer and use it in GitHub Desktop.
Save maoueh/2e6294ff87564a96de4a8a14a9cff679 to your computer and use it in GitHub Desktop.
EOS EVM Firehose Integration

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment