From 3bf0c8be7df5ad9c489e576d5f51b8e89bcae886 Mon Sep 17 00:00:00 2001 From: Matthew Whitehead Date: Thu, 27 Jun 2024 11:59:36 +0100 Subject: [PATCH] Remove automatic setting of bonsai-limit-trie-logs-enabled to false if sync-mode = FULL (moving to another PR) Signed-off-by: Matthew Whitehead --- .../java/org/hyperledger/besu/cli/BesuCommand.java | 14 -------------- .../cli/options/stable/DataStorageOptions.java | 7 +++++++ .../org/hyperledger/besu/cli/BesuCommandTest.java | 13 ++++--------- 3 files changed, 11 insertions(+), 23 deletions(-) diff --git a/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java b/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java index 5ca7c55cb12..56f0ee44c9e 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java @@ -142,7 +142,6 @@ import org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStorageProviderBuilder; import org.hyperledger.besu.ethereum.transaction.TransactionSimulator; import org.hyperledger.besu.ethereum.worldstate.DataStorageConfiguration; -import org.hyperledger.besu.ethereum.worldstate.ImmutableDataStorageConfiguration; import org.hyperledger.besu.evm.precompile.AbstractAltBnPrecompiledContract; import org.hyperledger.besu.evm.precompile.BigIntegerModularExponentiationPrecompiledContract; import org.hyperledger.besu.evm.precompile.KZGPointEvalPrecompiledContract; @@ -2242,19 +2241,6 @@ private MiningParameters getMiningParameters() { private DataStorageConfiguration getDataStorageConfiguration() { if (dataStorageConfiguration == null) { dataStorageConfiguration = dataStorageOptions.toDomainObject(); - - final ImmutableDataStorageConfiguration.Builder dataStorageConfigBuilder = - ImmutableDataStorageConfiguration.builder().from(dataStorageConfiguration); - - // If FULL sync mode + Bonsai DB we disable bonsai-limit-trie-logs-enabled and - // log a warning - if (syncMode == SyncMode.FULL - && dataStorageOptions.toDomainObject().getDataStorageFormat() - == DataStorageFormat.BONSAI) { - logger.warn("Forcing bonsai-limit-trie-logs-enabled to false, since sync mode is FULL"); - dataStorageConfigBuilder.bonsaiLimitTrieLogsEnabled(false); - } - dataStorageConfiguration = dataStorageConfigBuilder.build(); } return dataStorageConfiguration; } diff --git a/besu/src/main/java/org/hyperledger/besu/cli/options/stable/DataStorageOptions.java b/besu/src/main/java/org/hyperledger/besu/cli/options/stable/DataStorageOptions.java index a62cec1a8d3..d1cb4f721b2 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/options/stable/DataStorageOptions.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/options/stable/DataStorageOptions.java @@ -143,6 +143,13 @@ public static DataStorageOptions create() { */ public void validate(final CommandLine commandLine, final SyncMode syncMode) { if (DataStorageFormat.BONSAI == dataStorageFormat && bonsaiLimitTrieLogsEnabled) { + if (SyncMode.FULL == syncMode) { + throw new CommandLine.ParameterException( + commandLine, + String.format( + "Cannot enable " + BONSAI_LIMIT_TRIE_LOGS_ENABLED + " with sync-mode %s", + syncMode)); + } if (bonsaiMaxLayersToLoad < MINIMUM_BONSAI_TRIE_LOG_RETENTION_LIMIT) { throw new CommandLine.ParameterException( commandLine, diff --git a/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java b/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java index b44fa892ab4..641e69dba64 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java @@ -1281,18 +1281,13 @@ public void bonsaiLimitTrieLogsEnabledByDefault() { } @Test - public void parsesChangesDefaultBonsaiLimitTrieLogsWhenFullSyncEnabled() { + public void parsesInvalidDefaultBonsaiLimitTrieLogsWhenFullSyncEnabled() { parseCommand("--sync-mode=FULL"); - verify(mockControllerBuilder) - .dataStorageConfiguration(dataStorageConfigurationArgumentCaptor.capture()); - - final DataStorageConfiguration dataStorageConfiguration = - dataStorageConfigurationArgumentCaptor.getValue(); - assertThat(dataStorageConfiguration.getDataStorageFormat()).isEqualTo(BONSAI); - assertThat(dataStorageConfiguration.getBonsaiLimitTrieLogsEnabled()).isFalse(); + Mockito.verifyNoInteractions(mockRunnerBuilder); assertThat(commandOutput.toString(UTF_8)).isEmpty(); - assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); + assertThat(commandErrorOutput.toString(UTF_8)) + .contains("Cannot enable --bonsai-limit-trie-logs-enabled with sync-mode FULL"); } @Test