Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.hyperledger.besu.ethereum.p2p.config.NetworkingConfiguration;
import org.hyperledger.besu.ethereum.permissioning.PermissioningConfiguration;
import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration;
import org.hyperledger.besu.ethereum.worldstate.ImmutableDataStorageConfiguration;
import org.hyperledger.besu.metrics.prometheus.MetricsConfiguration;
import org.hyperledger.besu.plugin.services.storage.KeyValueStorageFactory;
import org.hyperledger.besu.tests.acceptance.dsl.condition.Condition;
Expand Down Expand Up @@ -743,7 +744,8 @@ public void setTransactionPoolConfiguration(
}

public DataStorageConfiguration getDataStorageConfiguration() {
return dataStorageConfiguration;
return ImmutableDataStorageConfiguration.copyOf(dataStorageConfiguration)
.withRevertReasonEnabled(revertReasonEnabled);
}

public boolean isDevMode() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -341,10 +341,6 @@ private List<String> commandlineArgs(final BesuNode node, final Path dataDir) {
params.addAll(networkConfigParams);
}

if (node.isRevertReasonEnabled()) {
params.add("--revert-reason-enabled");
}

params.add("--Xsecp256k1-native-enabled=" + node.isSecp256k1Native());
params.add("--Xaltbn128-native-enabled=" + node.isAltbn128Native());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,6 @@ public void startNode(final BesuNode node) {
.ifPresent(networkConfigBuilder::setGenesisConfig);
final EthNetworkConfig ethNetworkConfig = networkConfigBuilder.build();
final BesuControllerBuilder builder = component.besuControllerBuilder();
builder.isRevertReasonEnabled(node.isRevertReasonEnabled());
builder.networkConfiguration(node.getNetworkingConfiguration());

builder.dataDirectory(dataDir);
Expand Down
13 changes: 0 additions & 13 deletions app/src/main/java/org/hyperledger/besu/cli/BesuCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -591,12 +591,6 @@ void setNetwork(final String inputNetwork) {
@CommandLine.ArgGroup(validate = false, heading = "@|bold Permissions Options|@%n")
PermissionsOptions permissionsOptions = new PermissionsOptions();

@Option(
names = {"--revert-reason-enabled"},
description =
"Enable passing the revert reason back through TransactionReceipts (default: ${DEFAULT-VALUE})")
private final Boolean isRevertReasonEnabled = false;

@Option(
names = {"--required-blocks", "--required-block"},
paramLabel = "BLOCK=HASH",
Expand Down Expand Up @@ -2132,7 +2126,6 @@ public BesuControllerBuilder setupControllerBuilder() {
.metricsSystem((ObservableMetricsSystem) besuComponent.getMetricsSystem())
.messagePermissioningProviders(permissioningService.getMessagePermissioningProviders())
.clock(Clock.systemUTC())
.isRevertReasonEnabled(isRevertReasonEnabled)
.storageProvider(storageProvider)
.isEarlyRoundChangeEnabled(unstableQbftOptions.isEarlyRoundChangeEnabled())
.requiredBlocks(requiredBlocks)
Expand All @@ -2149,12 +2142,6 @@ public BesuControllerBuilder setupControllerBuilder() {
.apiConfiguration(apiConfiguration)
.balConfiguration(balConfiguration)
.besuComponent(besuComponent);
if (DataStorageFormat.BONSAI.equals(getDataStorageConfiguration().getDataStorageFormat())) {
final PathBasedExtraStorageConfiguration subStorageConfiguration =
getDataStorageConfiguration().getPathBasedExtraStorageConfiguration();
besuControllerBuilder.isParallelTxProcessingEnabled(
subStorageConfiguration.getParallelTxProcessingEnabled());
}
return besuControllerBuilder;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
package org.hyperledger.besu.cli.options.storage;

import static org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration.DEFAULT_RECEIPT_COMPACTION_ENABLED;
import static org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration.DEFAULT_REVERT_REASON_ENABLED;

import org.hyperledger.besu.cli.options.CLIOptions;
import org.hyperledger.besu.cli.util.CommandLineUtils;
Expand Down Expand Up @@ -54,6 +55,12 @@ public class DataStorageOptions implements CLIOptions<DataStorageConfiguration>
"Convenience option to enable online history pruning and configure BlobDB garbage collection settings (default: ${DEFAULT-VALUE}). \"--history-expiry-prune\" is deprecated and will be removed in a future release.")
private Boolean historyExpiryPrune = false;

@Option(
names = {"--revert-reason-enabled"},
description =
"Enable passing the revert reason back through TransactionReceipts (default: ${DEFAULT-VALUE})")
private Boolean revertReasonEnabled = DEFAULT_REVERT_REASON_ENABLED;

/**
* Options specific to path-based storage modes. Holds the necessary parameters to configure
* path-based storage, such as the Bonsai mode or Verkle in the future.
Expand Down Expand Up @@ -97,6 +104,7 @@ public static DataStorageOptions fromConfig(final DataStorageConfiguration domai
PathBasedExtraStorageOptions.fromConfig(
domainObject.getPathBasedExtraStorageConfiguration());
dataStorageOptions.historyExpiryPrune = domainObject.getHistoryExpiryPruneEnabled();
dataStorageOptions.revertReasonEnabled = domainObject.getRevertReasonEnabled();
return dataStorageOptions;
}

Expand All @@ -107,6 +115,7 @@ public DataStorageConfiguration toDomainObject() {
.dataStorageFormat(dataStorageFormat)
.receiptCompactionEnabled(receiptCompactionEnabled)
.historyExpiryPruneEnabled(historyExpiryPrune)
.revertReasonEnabled(revertReasonEnabled)
.pathBasedExtraStorageConfiguration(pathBasedExtraStorageOptions.toDomainObject());
return builder.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,9 +168,6 @@ public abstract class BesuControllerBuilder implements MiningConfigurationOverri
/** The Node key. */
protected NodeKey nodeKey;

/** The Is revert reason enabled. */
protected boolean isRevertReasonEnabled;

/** The Storage provider. */
protected StorageProvider storageProvider;

Expand Down Expand Up @@ -212,9 +209,6 @@ public abstract class BesuControllerBuilder implements MiningConfigurationOverri
private int numberOfBlockHeadersToCache = 0;
private boolean isCacheLastBlockHeadersPreloadEnabled;

/** whether parallel transaction processing is enabled or not */
protected boolean isParallelTxProcessingEnabled;

/** Configuration flags related to block access lists. */
protected BalConfiguration balConfiguration = BalConfiguration.DEFAULT;

Expand Down Expand Up @@ -404,17 +398,6 @@ public BesuControllerBuilder transactionPoolConfiguration(
return this;
}

/**
* Is revert reason enabled besu controller builder.
*
* @param isRevertReasonEnabled the is revert reason enabled
* @return the besu controller builder
*/
public BesuControllerBuilder isRevertReasonEnabled(final boolean isRevertReasonEnabled) {
this.isRevertReasonEnabled = isRevertReasonEnabled;
return this;
}

/**
* Required blocks besu controller builder.
*
Expand Down Expand Up @@ -552,20 +535,6 @@ public BesuControllerBuilder randomPeerPriority(final Boolean randomPeerPriority
return this;
}

/**
* Sets whether parallel transaction processing is enabled. When parallel transaction processing
* is enabled, transactions within a block can be processed in parallel and potentially improving
* performance
*
* @param isParallelTxProcessingEnabled true to enable parallel transaction
* @return the besu controller
*/
public BesuControllerBuilder isParallelTxProcessingEnabled(
final boolean isParallelTxProcessingEnabled) {
this.isParallelTxProcessingEnabled = isParallelTxProcessingEnabled;
return this;
}

/**
* Sets configuration for functionality related to block-level access lists.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,11 +131,10 @@ protected ProtocolSchedule createProtocolSchedule() {
genesisConfigOptions,
forksSchedule,
nodeKey,
isRevertReasonEnabled,
dataStorageConfiguration,
evmConfiguration,
miningConfiguration,
badBlockManager,
isParallelTxProcessingEnabled,
balConfiguration,
metricsSystem);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -396,23 +396,6 @@ public BesuControllerBuilder transactionPoolConfiguration(
return super.transactionPoolConfiguration(transactionPoolConfiguration);
}

@Override
public BesuControllerBuilder isRevertReasonEnabled(final boolean isRevertReasonEnabled) {
besuControllerBuilderSchedule
.values()
.forEach(b -> b.isRevertReasonEnabled(isRevertReasonEnabled));
return super.isRevertReasonEnabled(isRevertReasonEnabled);
}

@Override
public BesuControllerBuilder isParallelTxProcessingEnabled(
final boolean isParallelTxProcessingEnabled) {
besuControllerBuilderSchedule
.values()
.forEach(b -> b.isParallelTxProcessingEnabled(isParallelTxProcessingEnabled));
return super.isParallelTxProcessingEnabled(isParallelTxProcessingEnabled);
}

@Override
public BesuControllerBuilder balConfiguration(final BalConfiguration balConfiguration) {
besuControllerBuilderSchedule.values().forEach(b -> b.balConfiguration(balConfiguration));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -300,12 +300,11 @@ protected ProtocolSchedule createProtocolSchedule() {
return IbftProtocolScheduleBuilder.create(
genesisConfigOptions,
forksSchedule,
isRevertReasonEnabled,
dataStorageConfiguration,
bftExtraDataCodec,
evmConfiguration,
miningConfiguration,
badBlockManager,
isParallelTxProcessingEnabled,
balConfiguration,
metricsSystem);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ protected MiningCoordinator createMiningCoordinator(
@Override
protected ProtocolSchedule createProtocolSchedule() {
return IbftProtocolSchedule.create(
genesisConfigOptions, isRevertReasonEnabled, evmConfiguration, metricsSystem);
genesisConfigOptions, dataStorageConfiguration, evmConfiguration, metricsSystem);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,11 +91,10 @@ protected PluginServiceFactory createAdditionalPluginServices(
protected ProtocolSchedule createProtocolSchedule() {
return MainnetProtocolSchedule.fromConfig(
genesisConfigOptions,
Optional.of(isRevertReasonEnabled),
dataStorageConfiguration,
Optional.of(evmConfiguration),
super.miningConfiguration,
badBlockManager,
isParallelTxProcessingEnabled,
balConfiguration,
metricsSystem);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,9 @@ protected MiningCoordinator createTransitionMiningCoordinator(
protected ProtocolSchedule createProtocolSchedule() {
return MergeProtocolSchedule.create(
genesisConfigOptions,
isRevertReasonEnabled,
dataStorageConfiguration,
miningConfiguration,
badBlockManager,
isParallelTxProcessingEnabled,
balConfiguration,
metricsSystem,
evmConfiguration);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -362,12 +362,11 @@ protected ProtocolSchedule createProtocolSchedule() {
return QbftProtocolScheduleBuilder.create(
genesisConfigOptions,
qbftForksSchedule,
isRevertReasonEnabled,
dataStorageConfiguration,
qbftExtraDataCodec,
evmConfiguration,
miningConfiguration,
badBlockManager,
isParallelTxProcessingEnabled,
balConfiguration,
metricsSystem);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -373,19 +373,6 @@ public BesuControllerBuilder transactionPoolConfiguration(
return propagateConfig(z -> z.transactionPoolConfiguration(transactionPoolConfiguration));
}

@Override
public BesuControllerBuilder isRevertReasonEnabled(final boolean isRevertReasonEnabled) {
super.isRevertReasonEnabled(isRevertReasonEnabled);
return propagateConfig(z -> z.isRevertReasonEnabled(isRevertReasonEnabled));
}

@Override
public BesuControllerBuilder isParallelTxProcessingEnabled(
final boolean isParallelTxProcessingEnabled) {
super.isParallelTxProcessingEnabled(isParallelTxProcessingEnabled);
return propagateConfig(z -> z.isParallelTxProcessingEnabled(isParallelTxProcessingEnabled));
}

@Override
public BesuControllerBuilder balConfiguration(final BalConfiguration balConfiguration) {
super.balConfiguration(balConfiguration);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import org.hyperledger.besu.ethereum.mainnet.DefaultProtocolSchedule;
import org.hyperledger.besu.ethereum.mainnet.MainnetProtocolSchedule;
import org.hyperledger.besu.ethereum.trie.pathbased.bonsai.cache.CodeCache;
import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration;
import org.hyperledger.besu.evm.internal.EvmConfiguration;
import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem;

Expand Down Expand Up @@ -165,20 +166,19 @@ private static MilestoneStreamingTransitionProtocolSchedule createSchedule(
(DefaultProtocolSchedule)
MainnetProtocolSchedule.fromConfig(
configOptions,
DataStorageConfiguration.DEFAULT_CONFIG,
MiningConfiguration.MINING_DISABLED,
new BadBlockManager(),
false,
BalConfiguration.DEFAULT,
new NoOpMetricsSystem()));
MilestoneStreamingProtocolSchedule postMergeProtocolSchedule =
new MilestoneStreamingProtocolSchedule(
(DefaultProtocolSchedule)
MergeProtocolSchedule.create(
configOptions,
false,
DataStorageConfiguration.DEFAULT_CONFIG,
MiningConfiguration.MINING_DISABLED,
new BadBlockManager(),
false,
BalConfiguration.DEFAULT,
new NoOpMetricsSystem(),
EvmConfiguration.DEFAULT));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -293,9 +293,6 @@ public void initMocks() throws Exception {
when(mockControllerBuilder.messagePermissioningProviders(any()))
.thenReturn(mockControllerBuilder);
when(mockControllerBuilder.clock(any())).thenReturn(mockControllerBuilder);
when(mockControllerBuilder.isRevertReasonEnabled(false)).thenReturn(mockControllerBuilder);
when(mockControllerBuilder.isParallelTxProcessingEnabled(false))
.thenReturn(mockControllerBuilder);
when(mockControllerBuilder.isEarlyRoundChangeEnabled(false)).thenReturn(mockControllerBuilder);
when(mockControllerBuilder.storageProvider(any())).thenReturn(mockControllerBuilder);
when(mockControllerBuilder.requiredBlocks(any())).thenReturn(mockControllerBuilder);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.hyperledger.besu.ethereum.mainnet.ProtocolSpecBuilder;
import org.hyperledger.besu.ethereum.mainnet.feemarket.BaseFeeMarket;
import org.hyperledger.besu.ethereum.mainnet.feemarket.FeeMarket;
import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration;
import org.hyperledger.besu.evm.internal.EvmConfiguration;
import org.hyperledger.besu.plugin.services.MetricsSystem;

Expand All @@ -58,11 +59,10 @@ public class CliqueProtocolSchedule {
* @param config the config
* @param forksSchedule the transitions
* @param nodeKey the node key
* @param isRevertReasonEnabled the is revert reason enabled
* @param dataStorageConfiguration the data storage configuration
* @param evmConfiguration the evm configuration
* @param miningConfiguration the mining configuration
* @param badBlockManager the cache to use to keep invalid blocks
* @param isParallelTxProcessingEnabled indicates whether parallel transaction is enabled
* @param balConfiguration configuration related to block-level access lists
* @param metricsSystem A metricSystem instance to be able to expose metrics in the underlying
* calls
Expand All @@ -72,11 +72,10 @@ public static ProtocolSchedule create(
final GenesisConfigOptions config,
final ForksSchedule<CliqueConfigOptions> forksSchedule,
final NodeKey nodeKey,
final boolean isRevertReasonEnabled,
final DataStorageConfiguration dataStorageConfiguration,
final EvmConfiguration evmConfiguration,
final MiningConfiguration miningConfiguration,
final BadBlockManager badBlockManager,
final boolean isParallelTxProcessingEnabled,
final BalConfiguration balConfiguration,
final MetricsSystem metricsSystem) {

Expand Down Expand Up @@ -110,11 +109,10 @@ public static ProtocolSchedule create(
config,
Optional.of(DEFAULT_CHAIN_ID),
specAdapters,
isRevertReasonEnabled,
dataStorageConfiguration,
evmConfiguration,
miningConfiguration,
badBlockManager,
isParallelTxProcessingEnabled,
balConfiguration,
metricsSystem)
.createProtocolSchedule();
Expand Down
Loading
Loading