Skip to content

Commit a3e96e0

Browse files
authored
Remove experimental flag --Xenable-extra-debug-tracers (#9638)
This change makes the callTracer always available for debug_trace* RPC methods without requiring the experimental flag. - Remove static enableExtraTracers flag from DebugTraceTransactionStepFactory - Delete DebugTracerOptions class entirely (no longer needed) - Remove unstableDebugTracerOptions from BesuCommand - Update CALL_TRACER to always use CallTracerResultConverter - Update tests to remove flag assignments - Update unit test to reflect CALL_TRACER as fully implemented - Update CHANGELOG.md with breaking change notice Signed-off-by: Usman Saleem <usman@usmans.info>
1 parent adb751f commit a3e96e0

File tree

8 files changed

+4
-73
lines changed

8 files changed

+4
-73
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Unreleased
44

55
### Breaking Changes
6+
- Remove experimental CLI flag `--Xenable-extra-debug-tracers`. Call tracer (`callTracer`) is now always available for `debug_trace*` methods.
67
- RPC changes to enhance compatibility with other ELs
78
- RPCs using filter parameter including `eth_getLogs` and `trace_filter` return an error if `fromBlock` is greater than `toBlock`, or if `toBlock` extends beyond chain head (previously returned an empty list) [#9604](https://github.com/hyperledger/besu/pull/9604)
89

app/src/main/java/org/hyperledger/besu/cli/BesuCommand.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
import org.hyperledger.besu.cli.options.ApiConfigurationOptions;
4646
import org.hyperledger.besu.cli.options.BalConfigurationOptions;
4747
import org.hyperledger.besu.cli.options.ChainPruningOptions;
48-
import org.hyperledger.besu.cli.options.DebugTracerOptions;
4948
import org.hyperledger.besu.cli.options.DnsOptions;
5049
import org.hyperledger.besu.cli.options.EngineRPCConfiguration;
5150
import org.hyperledger.besu.cli.options.EngineRPCOptions;
@@ -325,7 +324,6 @@ public class BesuCommand implements DefaultCommandValues, Runnable {
325324
private final IpcOptions unstableIpcOptions = IpcOptions.create();
326325
private final ChainPruningOptions unstableChainPruningOptions = ChainPruningOptions.create();
327326
private final QBFTOptions unstableQbftOptions = QBFTOptions.create();
328-
private final DebugTracerOptions unstableDebugTracerOptions = DebugTracerOptions.create();
329327

330328
// stable CLI options
331329
final DataStorageOptions dataStorageOptions = DataStorageOptions.create();
@@ -1250,7 +1248,6 @@ private void handleUnstableOptions() {
12501248
.put("IPC Options", unstableIpcOptions)
12511249
.put("Chain Data Pruning Options", unstableChainPruningOptions)
12521250
.put("QBFT Options", unstableQbftOptions)
1253-
.put("Debug Tracer Options", unstableDebugTracerOptions)
12541251
.build();
12551252

12561253
UnstableOptionsSubCommand.createUnstableOptions(commandLine, unstableOptions);

app/src/main/java/org/hyperledger/besu/cli/options/DebugTracerOptions.java

Lines changed: 0 additions & 49 deletions
This file was deleted.

ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/DebugStandardTraceBlockToFileIntegrationTest.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcTestMethodsFactory;
2222
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest;
2323
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext;
24-
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.DebugTraceTransactionStepFactory;
2524
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.JsonRpcMethod;
2625
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse;
2726
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse;
@@ -58,9 +57,6 @@ public class DebugStandardTraceBlockToFileIntegrationTest {
5857

5958
@BeforeAll
6059
public static void setUpOnce() throws Exception {
61-
// experimental tracers are meant to be enabled in tests
62-
DebugTraceTransactionStepFactory.enableExtraTracers = true;
63-
6460
final String genesisJson =
6561
Resources.toString(BlockTestUtil.getTestGenesisUrl(), StandardCharsets.UTF_8);
6662

ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/DebugTraceTransactionIntegrationTest.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest;
2424
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext;
2525
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.exception.InvalidJsonRpcParameters;
26-
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.DebugTraceTransactionStepFactory;
2726
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.JsonRpcMethod;
2827
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse;
2928
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse;
@@ -53,9 +52,6 @@ public class DebugTraceTransactionIntegrationTest {
5352

5453
@BeforeAll
5554
public static void setUpOnce() throws Exception {
56-
// experimental tracers are meant to be enabled in tests
57-
DebugTraceTransactionStepFactory.enableExtraTracers = true;
58-
5955
final String genesisJson =
6056
Resources.toString(BlockTestUtil.getTestGenesisUrl(), StandardCharsets.UTF_8);
6157

ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/DebugTraceTransactionStepFactory.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@
3838
* the {@code create} and {@code createAsync} methods respectively.
3939
*/
4040
public class DebugTraceTransactionStepFactory {
41-
// feature flag to enable non-default tracers
42-
public static boolean enableExtraTracers = false;
4341

4442
/**
4543
* Creates a function that processes a {@link TransactionTrace} and returns a {@link
@@ -62,12 +60,8 @@ public static Function<TransactionTrace, DebugTraceTransactionResult> create(
6260
};
6361
case CALL_TRACER ->
6462
transactionTrace -> {
65-
if (enableExtraTracers) {
66-
var result = CallTracerResultConverter.convert(transactionTrace);
67-
return new DebugTraceTransactionResult(transactionTrace, result);
68-
}
69-
return new DebugTraceTransactionResult(
70-
transactionTrace, new UnimplementedTracerResult());
63+
var result = CallTracerResultConverter.convert(transactionTrace);
64+
return new DebugTraceTransactionResult(transactionTrace, result);
7165
};
7266
case FLAT_CALL_TRACER ->
7367
transactionTrace -> {

ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/bonsai/DebugGethTraceJsonRpcHttpBySpecTest.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import static org.assertj.core.api.Assertions.assertThat;
1818

1919
import org.hyperledger.besu.ethereum.api.jsonrpc.AbstractJsonRpcHttpBySpecTest;
20-
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.DebugTraceTransactionStepFactory;
2120
import org.hyperledger.besu.ethereum.core.BlockchainSetupUtil;
2221
import org.hyperledger.besu.plugin.services.storage.DataStorageFormat;
2322

@@ -30,9 +29,6 @@ public class DebugGethTraceJsonRpcHttpBySpecTest extends AbstractJsonRpcHttpBySp
3029
public void setup() throws Exception {
3130
setupBonsaiBlockchain();
3231
startService();
33-
34-
// Enable extra tracers for this test
35-
DebugTraceTransactionStepFactory.enableExtraTracers = true;
3632
}
3733

3834
@Override

ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/DebugTraceTransactionStepFactoryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ void shouldCreateFunctionForOpcodeTracer() {
9191
@ParameterizedTest
9292
@EnumSource(
9393
value = TracerType.class,
94-
names = {"CALL_TRACER", "FLAT_CALL_TRACER"})
94+
names = {"FLAT_CALL_TRACER"})
9595
@DisplayName("should create function for unimplemented tracers")
9696
void shouldCreateFunctionForNotYetImplementedTracers(final TracerType tracerType) {
9797
// Given

0 commit comments

Comments
 (0)