erigontech / erigontech/silkworm

EVM: extend tracing API

Open
#2,222 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
318
Forks
84
PR merge metrics
No merged PRs in 30d

Description

Currently, support for tracing in `evmone` is guaranteed by the [Tracer](https://github.com/ethereum/evmone/blob/master/lib/evmone/tracing.hpp#L19) interface, which happens to be good for many use cases, but not all of them: in particular, it lacks some key information for implementing `debug` and `trace` JSON-RPC API tracers (e.g. dynamic gas cost for opcodes, see #2153 #2167 #2172 #2181 #2187 #2211) and execution call tracer (e.g. some early-return positive cases and some negative scenarios, see #1706 #1710 and #1871).

Our idea is, first of all, extending the _current_ tracing API in `evmone`, for the purpose of exporting all the needed information and covering all the existing use cases. Then, we will do some performance assessment and evaluate alternative designs to improve the numbers.

@chfast we will do the first part of this work on our [fork](https://github.com/erigontech/evmone) of `evmone` and will ask for your review when done, then for your advice on the second part.

- [ ] tracing API extension and changes in debug tracers #2325
- [ ] changes for tracing API extension in trace tracers
- [ ] performance evaluation and alternative designs
- [ ] study new tracing hooks included in E3 https://github.com/erigontech/erigon/pull/14289

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.