Skip to content
This repository was archived by the owner on Jul 1, 2025. It is now read-only.

Commit aeb8cf9

Browse files
matktgaryschulte
authored andcommitted
Revert "update trace logique to fix journal updater issue (#7758)" (#8054)
This reverts commit 6a546c5e6f5cb961891fbe3ab2f14da29796c242. Signed-off-by: Karim Taam <[email protected]>
1 parent aa0ad5f commit aeb8cf9

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

besu/src/main/java/org/hyperledger/besu/services/TraceServiceImpl.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.hyperledger.besu.datatypes.BlobGas;
2121
import org.hyperledger.besu.datatypes.Hash;
2222
import org.hyperledger.besu.datatypes.Wei;
23+
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.TraceBlock.ChainUpdater;
2324
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.processor.Tracer;
2425
import org.hyperledger.besu.ethereum.api.query.BlockchainQueries;
2526
import org.hyperledger.besu.ethereum.chain.Blockchain;
@@ -155,14 +156,14 @@ public void trace(
155156
blocks.get(0).getHash(),
156157
traceableState -> {
157158
final WorldUpdater worldStateUpdater = traceableState.updater();
159+
final ChainUpdater chainUpdater = new ChainUpdater(traceableState, worldStateUpdater);
158160
beforeTracing.accept(worldStateUpdater);
159161
final List<TransactionProcessingResult> results = new ArrayList<>();
160162
blocks.forEach(
161163
block -> {
162-
results.addAll(trace(blockchain, block, worldStateUpdater, tracer));
163-
worldStateUpdater.commit();
164+
results.addAll(trace(blockchain, block, chainUpdater, tracer));
164165
});
165-
afterTracing.accept(worldStateUpdater);
166+
afterTracing.accept(chainUpdater.getNextUpdater());
166167
return Optional.of(results);
167168
});
168169
}
@@ -177,15 +178,15 @@ private Optional<List<TransactionProcessingResult>> trace(
177178
blockchainQueries,
178179
block.getHash(),
179180
traceableState ->
180-
Optional.of(trace(blockchain, block, traceableState.updater(), tracer)));
181+
Optional.of(trace(blockchain, block, new ChainUpdater(traceableState), tracer)));
181182

182183
return results;
183184
}
184185

185186
private List<TransactionProcessingResult> trace(
186187
final Blockchain blockchain,
187188
final Block block,
188-
final WorldUpdater worldUpdater,
189+
final ChainUpdater chainUpdater,
189190
final BlockAwareOperationTracer tracer) {
190191
final List<TransactionProcessingResult> results = new ArrayList<>();
191192
final ProtocolSpec protocolSpec = protocolSchedule.getByBlockHeader(block.getHeader());
@@ -208,6 +209,7 @@ private List<TransactionProcessingResult> trace(
208209
.map(parent -> calculateExcessBlobGasForParent(protocolSpec, parent))
209210
.orElse(BlobGas.ZERO));
210211

212+
final WorldUpdater worldUpdater = chainUpdater.getNextUpdater();
211213
final TransactionProcessingResult result =
212214
transactionProcessor.processTransaction(
213215
worldUpdater,

0 commit comments

Comments
 (0)