Skip to content
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

Geth new tracing system/hooks ported to Erigon #10757

Open
wants to merge 22 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/caplin/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ func runCaplinNode(cliCtx *cli.Context) error {
log.Error("[Phase1] Could not initialize caplin", "err", err)
return err
}
if _, _, _, err := debug.Setup(cliCtx, true /* root logger */); err != nil {
if _, _, _, _, err := debug.Setup(cliCtx, true /* root logger */); err != nil {
return err
}
rcfg := beacon_router_configuration.RouterConfiguration{
Expand Down
6 changes: 4 additions & 2 deletions cmd/devnet/devnet/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import (
"github.com/erigontech/erigon/cmd/devnet/requests"
"github.com/erigontech/erigon/diagnostics"
"github.com/erigontech/erigon/eth/ethconfig"
"github.com/erigontech/erigon/eth/tracers"
"github.com/erigontech/erigon/node/nodecfg"
"github.com/erigontech/erigon/params"
"github.com/erigontech/erigon/turbo/debug"
Expand Down Expand Up @@ -155,6 +156,7 @@ func (n *devnetNode) EnableMetrics(int) {
// run configures, creates and serves an erigon node
func (n *devnetNode) run(ctx *cli.Context) error {
var logger log.Logger
var tracer *tracers.Tracer
var err error
var metricsMux *http.ServeMux
var pprofMux *http.ServeMux
Expand All @@ -170,7 +172,7 @@ func (n *devnetNode) run(ctx *cli.Context) error {
n.Unlock()
}()

if logger, metricsMux, pprofMux, err = debug.Setup(ctx, false /* rootLogger */); err != nil {
if logger, tracer, metricsMux, pprofMux, err = debug.Setup(ctx, false /* rootLogger */); err != nil {
return err
}

Expand Down Expand Up @@ -200,7 +202,7 @@ func (n *devnetNode) run(ctx *cli.Context) error {
logger.Warn("TODO: custom BorStateSyncDelay is not applied to BorConfig.StateSyncConfirmationDelay", "delay", stateSyncConfirmationDelay)
}

n.ethNode, err = enode.New(ctx.Context, n.nodeCfg, n.ethCfg, logger)
n.ethNode, err = enode.New(ctx.Context, n.nodeCfg, n.ethCfg, logger, tracer)

diagnostics.Setup(ctx, n.ethNode, metricsMux, pprofMux)

Expand Down
10 changes: 6 additions & 4 deletions cmd/erigon/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@ import (

"github.com/urfave/cli/v2"

"github.com/erigontech/erigon-lib/log/v3"

"github.com/erigontech/erigon-lib/common/datadir"
"github.com/erigontech/erigon-lib/common/dbg"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/metrics"

"github.com/erigontech/erigon/diagnostics"
"github.com/erigontech/erigon/eth/tracers"
"github.com/erigontech/erigon/params"
erigonapp "github.com/erigontech/erigon/turbo/app"
erigoncli "github.com/erigontech/erigon/turbo/cli"
Expand Down Expand Up @@ -59,11 +60,12 @@ func main() {

func runErigon(cliCtx *cli.Context) error {
var logger log.Logger
var tracer *tracers.Tracer
var err error
var metricsMux *http.ServeMux
var pprofMux *http.ServeMux

if logger, metricsMux, pprofMux, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil {
if logger, tracer, metricsMux, pprofMux, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil {
return err
}

Expand Down Expand Up @@ -92,7 +94,7 @@ func runErigon(cliCtx *cli.Context) error {

ethCfg := node.NewEthConfigUrfave(cliCtx, nodeCfg, logger)

ethNode, err := node.New(cliCtx.Context, nodeCfg, ethCfg, logger)
ethNode, err := node.New(cliCtx.Context, nodeCfg, ethCfg, logger, tracer)
if err != nil {
log.Error("Erigon startup", "err", err)
return err
Expand Down
19 changes: 10 additions & 9 deletions cmd/evm/internal/t8ntool/transition.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,25 +33,26 @@ import (
"github.com/holiman/uint256"
"github.com/urfave/cli/v2"

"github.com/erigontech/erigon-lib/common/datadir"
"github.com/erigontech/erigon-lib/kv/temporal/temporaltest"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon/eth/consensuschain"

"github.com/erigontech/erigon-lib/chain"
libcommon "github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/datadir"
"github.com/erigontech/erigon-lib/common/hexutility"
"github.com/erigontech/erigon-lib/common/length"
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/kv/temporal/temporaltest"
"github.com/erigontech/erigon-lib/log/v3"
libstate "github.com/erigontech/erigon-lib/state"

"github.com/erigontech/erigon/common/math"
"github.com/erigontech/erigon/consensus/ethash"
"github.com/erigontech/erigon/consensus/merge"
"github.com/erigontech/erigon/core"
"github.com/erigontech/erigon/core/state"
"github.com/erigontech/erigon/core/tracing"
"github.com/erigontech/erigon/core/types"
"github.com/erigontech/erigon/core/vm"
"github.com/erigontech/erigon/crypto"
"github.com/erigontech/erigon/eth/consensuschain"
trace_logger "github.com/erigontech/erigon/eth/tracers/logger"
"github.com/erigontech/erigon/rlp"
"github.com/erigontech/erigon/tests"
Expand Down Expand Up @@ -103,7 +104,7 @@ func Main(ctx *cli.Context) error {
err error
baseDir = ""
)
var getTracer func(txIndex int, txHash libcommon.Hash) (vm.EVMLogger, error)
var getTracer func(txIndex int, txHash libcommon.Hash) (*tracing.Hooks, error)

// If user specified a basedir, make sure it exists
if ctx.IsSet(OutputBasedir.Name) {
Expand All @@ -130,7 +131,7 @@ func Main(ctx *cli.Context) error {
prevFile.Close()
}
}()
getTracer = func(txIndex int, txHash libcommon.Hash) (vm.EVMLogger, error) {
getTracer = func(txIndex int, txHash libcommon.Hash) (*tracing.Hooks, error) {
if prevFile != nil {
prevFile.Close()
}
Expand All @@ -139,10 +140,10 @@ func Main(ctx *cli.Context) error {
return nil, NewError(ErrorIO, fmt.Errorf("failed creating trace-file: %v", err2))
}
prevFile = traceFile
return trace_logger.NewJSONLogger(logConfig, traceFile), nil
return trace_logger.NewJSONLogger(logConfig, traceFile).Tracer().Hooks, nil
}
} else {
getTracer = func(txIndex int, txHash libcommon.Hash) (tracer vm.EVMLogger, err error) {
getTracer = func(txIndex int, txHash libcommon.Hash) (tracer *tracing.Hooks, err error) {
return nil, nil
}
}
Expand Down
11 changes: 6 additions & 5 deletions cmd/evm/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ import (
"github.com/erigontech/erigon/core/types"
"github.com/erigontech/erigon/core/vm"
"github.com/erigontech/erigon/core/vm/runtime"
"github.com/erigontech/erigon/eth/tracers"
"github.com/erigontech/erigon/eth/tracers/logger"
"github.com/erigontech/erigon/params"
)
Expand Down Expand Up @@ -138,7 +139,7 @@ func runCmd(ctx *cli.Context) error {
}

var (
tracer vm.EVMLogger
tracer *tracers.Tracer
debugLogger *logger.StructLogger
statedb *state.IntraBlockState
chainConfig *chain.Config
Expand All @@ -147,18 +148,18 @@ func runCmd(ctx *cli.Context) error {
genesisConfig *types.Genesis
)
if machineFriendlyOutput {
tracer = logger.NewJSONLogger(logconfig, os.Stdout)
tracer = logger.NewJSONLogger(logconfig, os.Stdout).Tracer()
} else if ctx.Bool(DebugFlag.Name) {
debugLogger = logger.NewStructLogger(logconfig)
tracer = debugLogger
tracer = debugLogger.Tracer()
} else {
debugLogger = logger.NewStructLogger(logconfig)
}
db := memdb.New("")
defer db.Close()
if ctx.String(GenesisFlag.Name) != "" {
gen := readGenesis(ctx.String(GenesisFlag.Name))
core.MustCommitGenesis(gen, db, "", log.Root())
core.MustCommitGenesis(gen, db, "", log.Root(), nil)
genesisConfig = gen
chainConfig = gen.Config
} else {
Expand Down Expand Up @@ -247,7 +248,7 @@ func runCmd(ctx *cli.Context) error {
Coinbase: genesisConfig.Coinbase,
BlockNumber: new(big.Int).SetUint64(genesisConfig.Number),
EVMConfig: vm.Config{
Tracer: tracer,
Tracer: tracer.Hooks,
Debug: ctx.Bool(DebugFlag.Name) || ctx.Bool(MachineFlag.Name),
},
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/evm/staterunner.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@ func stateTestCmd(ctx *cli.Context) error {
Debug: ctx.Bool(DebugFlag.Name) || ctx.Bool(MachineFlag.Name),
}
if machineFriendlyOutput {
cfg.Tracer = logger.NewJSONLogger(config, os.Stderr)
cfg.Tracer = logger.NewJSONLogger(config, os.Stderr).Tracer().Hooks
} else if ctx.Bool(DebugFlag.Name) {
cfg.Tracer = logger.NewStructLogger(config)
cfg.Tracer = logger.NewStructLogger(config).Tracer().Hooks
}

if len(ctx.Args().First()) != 0 {
Expand Down
4 changes: 2 additions & 2 deletions cmd/integration/commands/stages.go
Original file line number Diff line number Diff line change
Expand Up @@ -1415,7 +1415,7 @@ func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig,
events := shards.NewEvents()

genesis := core.GenesisBlockByChainName(chain)
chainConfig, genesisBlock, genesisErr := core.CommitGenesisBlock(db, genesis, "", logger)
chainConfig, genesisBlock, genesisErr := core.CommitGenesisBlock(db, genesis, "", logger, nil)
if _, ok := genesisErr.(*chain2.ConfigCompatError); genesisErr != nil && !ok {
panic(genesisErr)
}
Expand Down Expand Up @@ -1484,7 +1484,7 @@ func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig,
signatures = bor.Signatures
}
stages := stages2.NewDefaultStages(context.Background(), db, snapDb, p2p.Config{}, &cfg, sentryControlServer, notifications, nil, blockReader, blockRetire, agg, nil, nil,
heimdallClient, recents, signatures, logger)
heimdallClient, recents, signatures, logger, nil)
sync := stagedsync.New(cfg.Sync, stages, stagedsync.DefaultUnwindOrder, stagedsync.DefaultPruneOrder, logger)

miner := stagedsync.NewMiningState(&cfg.Miner)
Expand Down
6 changes: 4 additions & 2 deletions cmd/integration/commands/state_stages.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,10 @@ func syncBySmallSteps(db kv.RwDB, miningConfig params.MiningConfig, ctx context.
stopAt = 1
}

var structLogger *logger.StructLogger
traceStart := func() {
vmConfig.Tracer = logger.NewStructLogger(&logger.LogConfig{})
structLogger = logger.NewStructLogger(&logger.LogConfig{})
vmConfig.Tracer = structLogger.Hooks()
vmConfig.Debug = true
}
traceStop := func(id int) {
Expand All @@ -217,7 +219,7 @@ func syncBySmallSteps(db kv.RwDB, miningConfig params.MiningConfig, ctx context.
}
encoder := json.NewEncoder(w)
encoder.SetIndent(" ", " ")
for _, l := range logger.FormatLogs(vmConfig.Tracer.(*logger.StructLogger).StructLogs()) {
for _, l := range logger.FormatLogs(structLogger.StructLogs()) {
if err2 := encoder.Encode(l); err2 != nil {
panic(err2)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/silkworm_api/snapshot_idx.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ func FindIf(segments []snaptype.FileInfo, predicate func(snaptype.FileInfo) bool
}

func buildIndex(cliCtx *cli.Context, dataDir string, snapshotPaths []string, minBlock uint64) error {
logger, _, _, err := debug.Setup(cliCtx, true /* rootLogger */)
logger, _, _, _, err := debug.Setup(cliCtx, true /* rootLogger */)
if err != nil {
return err
}
Expand Down
Loading