-
Notifications
You must be signed in to change notification settings - Fork 391
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feat] add call tracer and prestate tracer #1043
Conversation
bc43b72
to
e3f284d
Compare
# Conflicts: # eth-types/src/l2_types.rs # testool/src/utils.rs
# Conflicts: # eth-types/src/l2_types.rs
442be5e
to
00f6015
Compare
00f6015
to
ce1a983
Compare
# Conflicts: # bus-mapping/src/circuit_input_builder/tracer_tests.rs # geth-utils/l2geth/go.mod # geth-utils/l2geth/go.sum # go.work.sum # zkevm-circuits/src/evm_circuit/execution/error_invalid_opcode.rs
i think in this PR, both the local CGO linked l1-tracer and l2-tracer will include "mux" tracing results. My question is, inside integration/mainnet.rs, this tool uses ETH node rpc to fetch traces in multi steps. (Fetch traces first, then collect StateAccess, then fetch states and fill statedb). Do you think the integration/mainnet.rs will still work after this PR ? Another questions is, we have a lot of existed trace files, after merging this PR, can they still be used as test inputs? In theory, zkevm-circuit can run in 2 mode: (1) StructLog without stack + PreStateTrace + CallTrace or (2) old style, StructLog with stack. Can we still support mode (2) with some config changes or it is totally broken? |
this is a big change PR. worth testool |
\b run testool |
This pr belongs to task: Remove heap allocation from GethExecStep/ExecStep
This sub pr:
This sub pr depends on #1038
Note
This pr upgrade l1geth to v1.13.5, due to a bug of
prestateTracer
(see ethereum/go-ethereum#27691), which includes cankun upgrade (see also #1005).The closest release of geth include this fix is v1.12.1, which already includes
0x5c
and0x5e
opcode.Upgrades l1geth breaks the unit-test of invalid-opcodes, since
0x5c
and0x5e
are assigned by cankun.