go-ethereum/core/vm
Martin HS f0e7382f38
cmd/evm, eth/tracers: refactor structlogger and make it streaming (#30806)
This PR refactors the structlog a bit, making it so that it can be used
in a streaming mode.

-------------

OBS: this PR makes a change in the input `config` config, the third
input-parem field to `debug.traceCall`. Previously, seteting it to e.g.
` {"enableMemory": true, "limit": 1024}` would mean that the response
was limited to `1024` items. Since an 'item' may include both memory and
storage, the actual size of the response was undertermined.
After this change, the response will be limited to `1024` __`bytes`__
(or thereabouts).



-----------


The commandline usage of structlog now uses the streaming mode, leaving
the non-streaming mode of operation for the eth_Call.

There are two benefits of streaming mode 
1. Not have to maintain a long list of operations, 
2. Not have to duplicate / n-plicate data, e.g. memory / stack /
returndata so that each entry has their own private slice.


---------

Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2024-12-04 08:52:59 +01:00
..
program core/vm/program: evm bytecode-building utility (#30725) 2024-11-20 08:40:21 +01:00
runtime cmd/evm, eth/tracers: refactor structlogger and make it streaming (#30806) 2024-12-04 08:52:59 +01:00
testdata core/vm: more benchmarks for bls g1/g2-multiexp precompiles (#30459) 2024-09-24 13:53:46 +02:00
analysis_eof.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
analysis_legacy.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
analysis_legacy_test.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
common.go all: get rid of custom MaxUint64 and MaxUint64 (#30636) 2024-10-20 14:41:51 +03:00
contract.go cmd, core, params, trie: add verkle access witness gas charging (#29338) 2024-05-10 20:13:11 +02:00
contracts.go common: drop BigMin and BigMax, they pollute our dep graph (#30645) 2024-10-21 12:45:33 +03:00
contracts_fuzz_test.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
contracts_test.go core/vm: add KZG benchmark (#29583) 2024-04-19 13:46:43 +02:00
doc.go core/vm: remove JIT VM codes (#16362) 2018-03-26 13:48:04 +03:00
eips.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
eof.go all: typos in comments (#30779) 2024-11-22 09:02:45 +01:00
eof_control_flow.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
eof_immediates.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
eof_instructions.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
eof_test.go core/vm: remove debug printout in eof test (#30665) 2024-10-24 09:13:01 +02:00
eof_validation.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
eof_validation_test.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
errors.go build: update to golangci-lint 1.61.0 (#30587) 2024-10-14 19:25:22 +02:00
evm.go core: switch EVM tx context in ApplyMessage (#30809) 2024-11-29 15:39:42 +01:00
gas.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
gas_table.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
gas_table_test.go core, eth, internal, cmd: rework EVM constructor (#30745) 2024-11-20 12:35:52 +01:00
instructions.go core: add code to witness when state object is accessed (#30698) 2024-10-31 12:19:01 +02:00
instructions_test.go core, eth, internal, cmd: rework EVM constructor (#30745) 2024-11-20 12:35:52 +01:00
interface.go core/state: move state log mechanism to a separate layer (#30569) 2024-10-23 08:03:36 +02:00
interpreter.go core/vm: speed up push and interpreter loop (#30662) 2024-10-30 18:01:47 +01:00
interpreter_test.go core, eth, internal, cmd: rework EVM constructor (#30745) 2024-11-20 12:35:52 +01:00
jump_table.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
jump_table_export.go core: fix typos (#28255) 2023-10-10 10:22:03 +02:00
jump_table_test.go all: fix typos in comments (#28881) 2024-02-05 22:16:32 +01:00
memory.go core/vm: reuse Memory instances (#30137) 2024-08-20 14:31:06 +02:00
memory_table.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
memory_test.go core/vm: implement EIP-5656, mcopy instruction (#26181) 2023-07-11 03:55:34 -04:00
opcodes.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
operations_acl.go core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
operations_verkle.go all: get rid of custom MaxUint64 and MaxUint64 (#30636) 2024-10-20 14:41:51 +03:00
stack.go core/vm: improved stack swap performance (#30249) 2024-08-06 14:38:47 +02:00
stack_table.go core/vm: 64 bit memory and gas calculations (#19210) 2019-03-12 11:40:05 +02:00