From 853f08aa1ca581d7c43b8f82a055413e25987742 Mon Sep 17 00:00:00 2001 From: Karim Taam Date: Thu, 10 Oct 2024 15:27:29 +0200 Subject: [PATCH] update trace logique to fix journal updater issue Signed-off-by: Karim Taam --- .../hyperledger/besu/services/TraceServiceImpl.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/besu/src/main/java/org/hyperledger/besu/services/TraceServiceImpl.java b/besu/src/main/java/org/hyperledger/besu/services/TraceServiceImpl.java index 6a0804b6f46..f512bf35402 100644 --- a/besu/src/main/java/org/hyperledger/besu/services/TraceServiceImpl.java +++ b/besu/src/main/java/org/hyperledger/besu/services/TraceServiceImpl.java @@ -20,7 +20,6 @@ import org.hyperledger.besu.datatypes.BlobGas; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.Wei; -import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.TraceBlock.ChainUpdater; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.processor.Tracer; import org.hyperledger.besu.ethereum.api.query.BlockchainQueries; import org.hyperledger.besu.ethereum.chain.Blockchain; @@ -156,14 +155,14 @@ public void trace( blocks.get(0).getHash(), traceableState -> { final WorldUpdater worldStateUpdater = traceableState.updater(); - final ChainUpdater chainUpdater = new ChainUpdater(traceableState, worldStateUpdater); beforeTracing.accept(worldStateUpdater); final List results = new ArrayList<>(); blocks.forEach( block -> { - results.addAll(trace(blockchain, block, chainUpdater, tracer)); + results.addAll(trace(blockchain, block, worldStateUpdater, tracer)); + worldStateUpdater.commit(); }); - afterTracing.accept(chainUpdater.getNextUpdater()); + afterTracing.accept(worldStateUpdater); return Optional.of(results); }); } @@ -178,7 +177,7 @@ private Optional> trace( blockchainQueries, block.getHash(), traceableState -> - Optional.of(trace(blockchain, block, new ChainUpdater(traceableState), tracer))); + Optional.of(trace(blockchain, block, traceableState.updater(), tracer))); return results; } @@ -186,7 +185,7 @@ private Optional> trace( private List trace( final Blockchain blockchain, final Block block, - final ChainUpdater chainUpdater, + final WorldUpdater worldUpdater, final BlockAwareOperationTracer tracer) { final List results = new ArrayList<>(); final ProtocolSpec protocolSpec = protocolSchedule.getByBlockHeader(block.getHeader()); @@ -209,7 +208,6 @@ private List trace( .map(parent -> calculateExcessBlobGasForParent(protocolSpec, parent)) .orElse(BlobGas.ZERO)); - final WorldUpdater worldUpdater = chainUpdater.getNextUpdater(); final TransactionProcessingResult result = transactionProcessor.processTransaction( worldUpdater,