Skip to content

Commit 9cb2557

Browse files
committed
Log BAL-related configuration
Signed-off-by: Miroslav Kovar <[email protected]>
1 parent a169adf commit 9cb2557

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2597,6 +2597,9 @@ private Boolean getDefaultVersionCompatibilityProtectionIfNotSet() {
25972597
private String generateConfigurationOverview() {
25982598
final ConfigurationOverviewBuilder builder = new ConfigurationOverviewBuilder(logger);
25992599

2600+
final BalConfiguration balConfiguration = balConfigurationOptions.toDomainObject();
2601+
builder.setBalConfiguration(balConfiguration);
2602+
26002603
if (environment != null) {
26012604
builder.setEnvironment(environment);
26022605
}

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package org.hyperledger.besu.cli;
1616

1717
import org.hyperledger.besu.ethereum.eth.transactions.TransactionPoolConfiguration;
18+
import org.hyperledger.besu.ethereum.mainnet.BalConfiguration;
1819
import org.hyperledger.besu.evm.internal.EvmConfiguration;
1920
import org.hyperledger.besu.plugin.services.storage.rocksdb.configuration.RocksDBCLIOptions;
2021
import org.hyperledger.besu.services.BesuPluginContextImpl;
@@ -23,6 +24,7 @@
2324
import org.hyperledger.besu.util.platform.PlatformDetector;
2425

2526
import java.math.BigInteger;
27+
import java.time.Duration;
2628
import java.util.ArrayList;
2729
import java.util.Collection;
2830
import java.util.List;
@@ -69,6 +71,11 @@ public class ConfigurationOverviewBuilder {
6971
private boolean isParallelTxProcessingEnabled = false;
7072
private RocksDBCLIOptions.BlobDBSettings blobDBSettings;
7173
private Long targetGasLimit;
74+
private boolean isBalOptimizationEnabled = true;
75+
private boolean isBalStateRootTrusted = false;
76+
private boolean isBalLenientOnMismatch = false;
77+
private boolean isBalApiEnabled = false;
78+
private Duration balStateRootTimeout = Duration.ofSeconds(1);
7279

7380
/**
7481
* Create a new ConfigurationOverviewBuilder.
@@ -381,6 +388,21 @@ public ConfigurationOverviewBuilder setTargetGasLimit(final Long targetGasLimit)
381388
return this;
382389
}
383390

391+
/**
392+
* Sets the BAL configuration.
393+
*
394+
* @param balConfiguration the BAL configuration
395+
* @return the builder
396+
*/
397+
public ConfigurationOverviewBuilder setBalConfiguration(final BalConfiguration balConfiguration) {
398+
this.isBalOptimizationEnabled = balConfiguration.isBalOptimisationEnabled();
399+
this.isBalStateRootTrusted = balConfiguration.isBalStateRootTrusted();
400+
this.isBalLenientOnMismatch = balConfiguration.isBalLenientOnMismatch();
401+
this.isBalApiEnabled = balConfiguration.isBalApiEnabled();
402+
this.balStateRootTimeout = balConfiguration.getBalStateRootTimeout();
403+
return this;
404+
}
405+
384406
/**
385407
* Build configuration overview.
386408
*
@@ -453,6 +475,12 @@ public String build() {
453475
lines.add("Parallel transaction processing disabled");
454476
}
455477

478+
lines.add("BAL optimizations " + (isBalOptimizationEnabled ? "enabled" : "disabled"));
479+
lines.add("BAL state root trust " + (isBalStateRootTrusted ? "enabled" : "disabled"));
480+
lines.add("BAL mismatch leniency " + (isBalLenientOnMismatch ? "enabled" : "disabled"));
481+
lines.add("BAL API " + (isBalApiEnabled ? "enabled" : "disabled"));
482+
lines.add("BAL state root timeout: " + balStateRootTimeout.toMillis() + " ms");
483+
456484
if (isLimitTrieLogsEnabled) {
457485
final StringBuilder trieLogPruningString = new StringBuilder();
458486
trieLogPruningString

app/src/test/java/org/hyperledger/besu/cli/ConfigurationOverviewBuilderTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@
2121
import static org.mockito.Mockito.mock;
2222

2323
import org.hyperledger.besu.cli.config.InternalProfileName;
24+
import org.hyperledger.besu.ethereum.mainnet.ImmutableBalConfiguration;
2425
import org.hyperledger.besu.evm.internal.EvmConfiguration;
2526

2627
import java.math.BigInteger;
28+
import java.time.Duration;
2729
import java.util.ArrayList;
2830
import java.util.Collection;
2931

@@ -278,4 +280,23 @@ void setTargetGasLimitLowerThanMillion() {
278280
assertThat(targetGasLimitSelected)
279281
.contains(String.format("%s: %s", "Target Gas Limit", targetGasLimitValue));
280282
}
283+
284+
@Test
285+
void setBalConfiguration() {
286+
builder.setBalConfiguration(
287+
ImmutableBalConfiguration.builder()
288+
.isBalOptimisationEnabled(false)
289+
.isBalStateRootTrusted(true)
290+
.isBalLenientOnMismatch(true)
291+
.isBalApiEnabled(true)
292+
.balStateRootTimeout(Duration.ofMillis(2500))
293+
.build());
294+
295+
final String configuration = builder.build();
296+
assertThat(configuration).contains("BAL optimizations disabled");
297+
assertThat(configuration).contains("BAL state root trust enabled");
298+
assertThat(configuration).contains("BAL mismatch leniency enabled");
299+
assertThat(configuration).contains("BAL API enabled");
300+
assertThat(configuration).contains("BAL state root timeout: 2500 ms");
301+
}
281302
}

0 commit comments

Comments
 (0)