diff --git a/CHANGELOG.md b/CHANGELOG.md index e95e9d9c239..dce18aaeaeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,10 +12,10 @@ * Ibft2 will discard any received messages targeting a chain height <= current head - this resolves some corner cases in system correctness directly following block import. [#1575](https://github.com/hyperledger/besu/pull/1575) * EvmTool now throws `UnsupportedForkException` when there is an unknown fork and is YOLOv2 compatible [\#1584](https://github.com/hyperledger/besu/pull/1584) * `eth_newFilter` now supports `blockHash` parameter as per the spec [\#1548](https://github.com/hyperledger/besu/issues/1540). (`blockhash` is also still supported.) +* Fixed an issue that caused loss of peers and desynchronization when eth65 was enabled [\#1601](https://github.com/hyperledger/besu/pull/1601) #### Previously identified known issues -- [Eth/65 loses peers](KNOWN_ISSUES.md#eth65-loses-peers) - [Fast sync when running Besu on cloud providers](KNOWN_ISSUES.md#fast-sync-when-running-besu-on-cloud-providers) - [Privacy users with private transactions created using v1.3.4 or earlier](KNOWN_ISSUES.md#privacy-users-with-private-transactions-created-using-v134-or-earlier) diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md index 659ffbd2f79..89c67789eda 100644 --- a/KNOWN_ISSUES.md +++ b/KNOWN_ISSUES.md @@ -5,14 +5,6 @@ in the current release are provided in the [Changelog](CHANGELOG.md). Known issues are open issues categorized as [Very High or High impact](https://wiki.hyperledger.org/display/BESU/Defect+Prioritisation+Policy). -## Eth/65 loses peers - -From v1.4.4, `eth/65` is [disabled by default](https://github.com/hyperledger/besu/pull/741). - -If enabled, peers will slowly drop off and eventually Besu will fall out of sync or stop syncing. - -A fix for this issue is being actively worked on. - ## Fast sync when running Besu on cloud providers A known [RocksDB issue](https://github.com/facebook/rocksdb/issues/6435) causes fast sync to fail diff --git a/acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/ThreadBesuNodeRunner.java b/acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/ThreadBesuNodeRunner.java index 5d6c2851bc3..48fe97eb98a 100644 --- a/acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/ThreadBesuNodeRunner.java +++ b/acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/ThreadBesuNodeRunner.java @@ -156,7 +156,7 @@ public void startNode(final BesuNode node) { .privacyParameters(node.getPrivacyParameters()) .nodeKey(new NodeKey(new KeyPairSecurityModule(KeyPairUtil.loadKeyPair(dataDir)))) .metricsSystem(metricsSystem) - .transactionPoolConfiguration(TransactionPoolConfiguration.builder().build()) + .transactionPoolConfiguration(TransactionPoolConfiguration.DEFAULT) .ethProtocolConfiguration(EthProtocolConfiguration.defaultConfig()) .clock(Clock.systemUTC()) .isRevertReasonEnabled(node.isRevertReasonEnabled()) 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 6c813828b96..f3460f8d089 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java @@ -146,6 +146,7 @@ import org.hyperledger.besu.util.NetworkUtility; import org.hyperledger.besu.util.PermissioningConfigurationValidator; import org.hyperledger.besu.util.number.Fraction; +import org.hyperledger.besu.util.number.Percentage; import org.hyperledger.besu.util.number.PositiveNumber; import java.io.File; @@ -2077,7 +2078,7 @@ private TransactionPoolConfiguration buildTransactionPoolConfiguration() { .txPoolMaxSize(txPoolMaxSize) .pooledTransactionHashesSize(pooledTransactionHashesSize) .pendingTxRetentionPeriod(pendingTxRetentionPeriod) - .priceBump(priceBump) + .priceBump(Percentage.fromInt(priceBump)) .txFeeCap(txFeeCap) .build(); } diff --git a/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/TransactionPoolOptions.java b/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/TransactionPoolOptions.java index bcb33d9a945..cbfa263af43 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/TransactionPoolOptions.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/options/unstable/TransactionPoolOptions.java @@ -16,17 +16,23 @@ import org.hyperledger.besu.cli.options.CLIOptions; import org.hyperledger.besu.cli.options.OptionParser; +import org.hyperledger.besu.ethereum.eth.transactions.ImmutableTransactionPoolConfiguration; import org.hyperledger.besu.ethereum.eth.transactions.TransactionPoolConfiguration; +import java.time.Duration; import java.util.Arrays; import java.util.List; import picocli.CommandLine; -public class TransactionPoolOptions implements CLIOptions { +public class TransactionPoolOptions + implements CLIOptions { private static final String TX_MESSAGE_KEEP_ALIVE_SEC_FLAG = "--Xincoming-tx-messages-keep-alive-seconds"; + private static final String ETH65_TX_ANNOUNCED_BUFFERING_PERIOD_FLAG = + "--Xeth65-tx-announced-buffering-period-milliseconds"; + @CommandLine.Option( names = {TX_MESSAGE_KEEP_ALIVE_SEC_FLAG}, paramLabel = "", @@ -37,6 +43,16 @@ public class TransactionPoolOptions implements CLIOptions