• Nick Johnson's avatar
    core/vm: Refactor tracing to make Tracer the main interface · 781915f1
    Nick Johnson authored
    This CL makes several refactors:
     - Define a Tracer interface, implementing the `CaptureState` method
     - Add the VM environment as the first argument of
       `Tracer.CaptureState`
     - Rename existing functionality `StructLogger` an make it an
       implementation of `Tracer`
     - Delete `StructLogCollector` and make `StructLogger` collect the logs
       directly
     - Change all callers to use the new `StructLogger` where necessary and
       extract logs from that.
     - Deletes the apparently obsolete and likely nonfunctional 'TraceCall'
       from the eth API.
    
    Callers that only wish accumulated logs can use the `StructLogger`
    implementation straightforwardly. Callers that wish to efficiently
    capture VM traces and operate on them without excessive copying can now
    implement the `Tracer` interface to receive VM state at each step and
    do with it as they wish.
    
    This CL also removes the accumulation of logs from the vm.Environment;
    this was necessary as part of the refactor, but also simplifies it by
    removing a responsibility that doesn't directly belong to the
    Environment.
    781915f1
Name
Last commit
Last update
.github Loading commit data...
Godeps Loading commit data...
_data Loading commit data...
accounts Loading commit data...
build Loading commit data...
cmd Loading commit data...
common Loading commit data...
compression/rle Loading commit data...
console Loading commit data...
containers Loading commit data...
core Loading commit data...
crypto Loading commit data...
errs Loading commit data...
eth Loading commit data...
ethdb Loading commit data...
event Loading commit data...
generators Loading commit data...
internal Loading commit data...
light Loading commit data...
logger Loading commit data...
metrics Loading commit data...
miner Loading commit data...
node Loading commit data...
p2p Loading commit data...
params Loading commit data...
pow Loading commit data...
release Loading commit data...
rlp Loading commit data...
rpc Loading commit data...
tests Loading commit data...
trie Loading commit data...
whisper Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
COPYING.LESSER Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
VERSION Loading commit data...
appveyor.yml Loading commit data...
circle.yml Loading commit data...