nimbus-eth1/nimbus/transaction
Jamie Lokier 3047c839dc
EVMC: Improve host call tracing and fix nested call C stack usage
This combines two things, a C stack usage change with EVM nested calls
via EVMC, and changes to host call tracing.

Feature-wise, the tracing is improved:

- Storage keys and values are make more sense.
- The message/result/context objects are shown with all relevant fields.
- `call` trace is split into entry/exit, so these can be shown around the
  called contract's operations, instead of only showing the `call` parameters
  after the nested call is finished.
- Nested calls are indented, which helps to highlight the flow.
- C stack usage considerably reduced in nested calls when more functionality
  is enabled (either tracing here, or other things to come).

This will seem like a minor patch, but C stack usage was the real motivation,
after plenty of time in the debugger.

Nobody cares about stack when `showTxCalls` (you can just use a big stack when
debugging).  But these subtle changes around the `call` path were found to be
necessary for passing all tests when the EVMC nested call code is completed,
and that's a prerequisite for many things: async EVM, dynamic EVM, Beam Sync,
and to fix https://github.com/status-im/nimbus-eth1/issues/345.

Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-08-12 07:48:56 +07:00
..
call_common.nim EIP-3529: Reduce the max gas refunded after a transaction 2021-06-29 07:37:17 +07:00
call_evm.nim preparation for EIP-1559 implementation 2021-06-29 07:33:48 +07:00
evmc_host_glue.nim EVMC: Improve host call tracing and fix nested call C stack usage 2021-08-12 07:48:56 +07:00
evmc_vm_glue.nim EVMC: Binary compatibility on the VM side for calling `execute` 2021-06-08 18:29:39 +01:00
host_call_nested.nim EVMC: Improve host call tracing and fix nested call C stack usage 2021-08-12 07:48:56 +07:00
host_services.nim EVMC: Improve host call tracing and fix nested call C stack usage 2021-08-12 07:48:56 +07:00
host_trace.nim EVMC: Improve host call tracing and fix nested call C stack usage 2021-08-12 07:48:56 +07:00
host_types.nim EVMC: Improve host call tracing and fix nested call C stack usage 2021-08-12 07:48:56 +07:00