tracing: pass *tracing.Hooks around instead of vm.Config#2846
Conversation
Passing `*tracing.Hooks` makes the intent clearer and ensure the `applyTransaction` controls the creationg of the `vm.Config`.
|
@maoueh may I know how would you use these new tracer hook interface? Seems like #2772 only effect live tracer, which only contain 2 tracer type: Here is the output in file: liveTracerSupply |
|
@zzzckck We have a The Historically we maintained our own tracing API inside Geth node directly and for forks like BSC and Polygon, last year we contributed back to Geth directly working up with their team to revamp the tracing API to trace all state changes using live tracer that traces blocks as the node synchronize with the network. You can see for example how current production BSC older tracer is tracing system transactions: https://github.com/streamingfast/go-ethereum/blob/release/bsc-1.x-fh2.5/consensus/parlia/parlia.go#L1970-L1973. About the live tracer supply specifically, I can't seems to find back the source of it, but AFAIK it does hook |
noted, thank you for your statement. |
I could try to find out who uses
But they are still traced no and should emit |
Description
Passing
*tracing.Hooksmakes the intent clearer and ensure theapplyTransactioncontrols the creation of thevm.Config.Follow-up of #2772.
Rationale
#2772 (comment).