go-ethereum/core
Nick Johnson 781915f183 core/vm: Refactor tracing to make Tracer the main interface
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.
2016-08-22 09:26:15 +01:00
..
state Revert "test, cmd/evm, core, core/vm: illegal code hash implementation" 2016-06-29 11:44:51 +03:00
types rpc: refactor subscriptions and filters 2016-08-17 12:59:58 +02:00
vm core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
asm.go all: fix go vet warnings 2016-04-15 11:17:27 +02:00
bench_test.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
block_validator_test.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
block_validator.go cmd, core, eth, miner, params, tests: finalize the DAO fork 2016-07-15 16:52:55 +03:00
blockchain_test.go core: ensure the canonical block is written before the canonical hash is set 2016-08-16 15:21:22 +02:00
blockchain.go core: ensure the canonical block is written before the canonical hash is set 2016-08-16 15:21:22 +02:00
blocks.go remove 0x 2015-08-20 18:50:47 +02:00
chain_makers_test.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
chain_makers.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
chain_pow_test.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
chain_pow.go core: separate and contain POW verifier, extensive tests 2015-09-21 10:24:49 +03:00
config.go cmd, core, miner: add extradata validation to consensus rules 2016-07-15 16:52:55 +03:00
dao_test.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
dao.go cmd, core, eth, miner, params, tests: finalize the DAO fork 2016-07-15 16:52:55 +03:00
database_util_test.go accounts, core, eth: pass chain config for chain maker to test DAO 2016-07-15 16:52:55 +03:00
database_util.go core: ensure the canonical block is written before the canonical hash is set 2016-08-16 15:21:22 +02:00
default_genesis.go all: update license information 2016-04-15 09:48:05 +02:00
error.go Merge pull request #1889 from karalabe/fast-sync-rebase 2015-10-21 11:44:22 -07:00
events.go core, miner: add PendingStateEvent to track non-log updates 2016-02-29 11:24:58 +02:00
execution.go Revert "test, cmd/evm, core, core/vm: illegal code hash implementation" 2016-06-29 11:44:51 +03:00
fees.go Merge pull request #1515 from fjl/license-fixes 2015-07-28 04:29:42 -07:00
filter_test.go all: fix license headers one more time 2015-07-23 18:35:11 +02:00
gaspool.go all: update license information 2016-04-15 09:48:05 +02:00
genesis.go core: improved chainDb using sequential keys 2016-06-07 16:38:56 +02:00
headerchain.go core: ensure the canonical block is written before the canonical hash is set 2016-08-16 15:21:22 +02:00
helper_test.go cmd/geth, cmd/utils, core, rpc: renamed to blockchain 2015-10-04 01:13:56 +02:00
state_processor.go cmd, core, eth, miner, params, tests: finalize the DAO fork 2016-07-15 16:52:55 +03:00
state_transition.go core: added CheckNonce() to Message interface 2016-07-11 12:35:23 +02:00
tx_pool_test.go core: added basic chain configuration 2016-04-01 01:01:10 +02:00
tx_pool.go core: add missing lock in TxPool.{GetTransaction,RemoveTx} 2016-06-03 12:43:33 +02:00
types.go core, miner: move Backend to miner 2016-08-17 17:39:04 +02:00
vm_env.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00