Add call and prestate tracer to l2trace code
lightsing opened this issue · comments
Akase Haruka commented
Background
- Optimization of Trace Size: Aim to reduce the trace size by eliminating the stack trace of each execution step. Alternative methods are required to ascertain the result of each call, which introduce the need of
callTracer
. - Issues with
AccessSet
Implementation: The implementation ofAccessSet
shows inaccuracies in specific edge cases, which introduce the need ofprestateTracer
- Consistency Across L1 and L2 Code
- l2geth Version Limitation: The present l2geth version lacks the
prestateTracer
, which is available in the upstream version.
Requirements
- Integration of Geth Native Tracers: Implement the geth native tracers, specifically callTracer and prestateTracer (available here).
- Resolving Cycle-Import Issues: Address potential cycle-import problems when importing native tracers into the existing trace.go.
Secondary Objectives
- Porting Out-Bound Panic Fix: Implement the out-bound-read fix from GetMemoryCopyPadded.
- Porting
muxTracer
: Port the muxTracer to enable simultaneous operation of those three tracers.
Current Progress
- An ad-hoc implementation is available in Issue #557 for reference and further development.
Next Step
Hands on infra team to decide how to do this.