From 4cfbb704e268cd999b20e5731e9e26ae4e81bc76 Mon Sep 17 00:00:00 2001 From: easyfold <137396765+easyfold@users.noreply.github.com> Date: Fri, 27 Sep 2024 16:07:59 +0800 Subject: [PATCH] eth/tracers: fix trace block parallel --- eth/tracers/api.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/eth/tracers/api.go b/eth/tracers/api.go index a828951206..bad3cdb4a5 100644 --- a/eth/tracers/api.go +++ b/eth/tracers/api.go @@ -654,9 +654,20 @@ func (api *API) traceBlockParallel(ctx context.Context, block *types.Block, stat txs = block.Transactions() blockHash = block.Hash() signer = types.MakeSigner(api.backend.ChainConfig(), block.Number(), block.Time()) + blockCtx = core.NewEVMBlockContext(block.Header(), api.chainContext(ctx), nil) results = make([]*txTraceResult, len(txs)) pend sync.WaitGroup ) + + if beaconRoot := block.BeaconRoot(); beaconRoot != nil { + vmenv := vm.NewEVM(blockCtx, vm.TxContext{}, statedb, api.backend.ChainConfig(), vm.Config{}) + core.ProcessBeaconBlockRoot(*beaconRoot, vmenv, statedb) + } + if api.backend.ChainConfig().IsPrague(block.Number(), block.Time()) { + vmenv := vm.NewEVM(blockCtx, vm.TxContext{}, statedb, api.backend.ChainConfig(), vm.Config{}) + core.ProcessParentBlockHash(block.ParentHash(), vmenv, statedb) + } + threads := runtime.NumCPU() if threads > len(txs) { threads = len(txs)