diff --git a/app/src/main/java/org/hyperledger/besu/cli/options/SynchronizerOptions.java b/app/src/main/java/org/hyperledger/besu/cli/options/SynchronizerOptions.java index d4a2eb048a5..04d5b478ccf 100644 --- a/app/src/main/java/org/hyperledger/besu/cli/options/SynchronizerOptions.java +++ b/app/src/main/java/org/hyperledger/besu/cli/options/SynchronizerOptions.java @@ -374,13 +374,6 @@ private void setCheckpointPostMergeSyncEnabled(final Boolean enabled) { CHECKPOINT_POST_MERGE_FLAG); } - @CommandLine.Option( - names = {"--Xpeertask-system-enabled"}, - hidden = true, - description = - "Temporary feature toggle to enable using the new peertask system (default: ${DEFAULT-VALUE})") - private final Boolean isPeerTaskSystemEnabled = false; - @CommandLine.Option( names = SNAP_TRANSACTION_INDEXING_ENABLED_FLAG, paramLabel = "", @@ -436,15 +429,6 @@ public boolean isSnapsyncServerEnabled() { return snapsyncServerEnabled; } - /** - * Flag to indicate whether the peer task system should be used where available - * - * @return true if the peer task system should be used where available - */ - public boolean isPeerTaskSystemEnabled() { - return isPeerTaskSystemEnabled; - } - /** * Create synchronizer options. * @@ -543,7 +527,6 @@ public SynchronizerConfiguration.Builder toDomainObject() { .isSnapServerEnabled(snapsyncServerEnabled) .isSnapSyncTransactionIndexingEnabled(snapTransactionIndexingEnabled) .build()); - builder.isPeerTaskSystemEnabled(isPeerTaskSystemEnabled); builder.snapSyncSavePreCheckpointHeadersOnlyEnabled( snapSyncSavePreCheckpointHeadersOnlyEnabled); builder.receiptsDownloadStepTimeoutMillis(receiptsDownloadStepTimeoutMillis); diff --git a/app/src/test/java/org/hyperledger/besu/RunnerTest.java b/app/src/test/java/org/hyperledger/besu/RunnerTest.java index 002cc84148d..14b8e17ce12 100644 --- a/app/src/test/java/org/hyperledger/besu/RunnerTest.java +++ b/app/src/test/java/org/hyperledger/besu/RunnerTest.java @@ -154,7 +154,7 @@ public void fullSyncFromGenesis() throws Exception { // set merge flag to false, otherwise this test can fail if a merge test runs first MergeConfiguration.setMergeEnabled(false); - syncFromGenesis(SyncMode.FULL, getFastSyncGenesis(), false); + syncFromGenesis(SyncMode.FULL, getFastSyncGenesis()); } @Test @@ -162,11 +162,10 @@ public void fullSyncFromGenesisUsingPeerTaskSystem() throws Exception { // set merge flag to false, otherwise this test can fail if a merge test runs first MergeConfiguration.setMergeEnabled(false); - syncFromGenesis(SyncMode.FULL, getFastSyncGenesis(), true); + syncFromGenesis(SyncMode.FULL, getFastSyncGenesis()); } - private void syncFromGenesis( - final SyncMode mode, final GenesisConfig genesisConfig, final boolean isPeerTaskSystemEnabled) + private void syncFromGenesis(final SyncMode mode, final GenesisConfig genesisConfig) throws Exception { final Path dataDirAhead = Files.createTempDirectory(temp, "db-ahead"); final Path dbAhead = dataDirAhead.resolve("database"); @@ -174,10 +173,7 @@ private void syncFromGenesis( final NodeKey aheadDbNodeKey = NodeKeyUtils.createFrom(KeyPairUtil.loadKeyPair(dataDirAhead)); final NodeKey behindDbNodeKey = NodeKeyUtils.generate(); final SynchronizerConfiguration syncConfigAhead = - SynchronizerConfiguration.builder() - .syncMode(SyncMode.FULL) - .isPeerTaskSystemEnabled(isPeerTaskSystemEnabled) - .build(); + SynchronizerConfiguration.builder().syncMode(SyncMode.FULL).build(); final ObservableMetricsSystem noOpMetricsSystem = new NoOpMetricsSystem(); final var miningParameters = MiningConfiguration.newDefault(); final var dataStorageConfiguration = DataStorageConfiguration.DEFAULT_FOREST_CONFIG; diff --git a/app/src/test/java/org/hyperledger/besu/cli/EphemeryTest.java b/app/src/test/java/org/hyperledger/besu/cli/EphemeryTest.java index dab692d5d0e..2e49dd151cf 100644 --- a/app/src/test/java/org/hyperledger/besu/cli/EphemeryTest.java +++ b/app/src/test/java/org/hyperledger/besu/cli/EphemeryTest.java @@ -102,10 +102,7 @@ public class EphemeryTest extends CommandTestAbstract { private final Vertx vertx = Vertx.vertx(); private final ObservableMetricsSystem noOpMetricsSystem = new NoOpMetricsSystem(); final SynchronizerConfiguration syncConfig = - SynchronizerConfiguration.builder() - .syncMode(SyncMode.SNAP) - .isPeerTaskSystemEnabled(false) - .build(); + SynchronizerConfiguration.builder().syncMode(SyncMode.SNAP).build(); Field cycleIdField; BigInteger initialCycleId; diff --git a/app/src/test/resources/everything_config.toml b/app/src/test/resources/everything_config.toml index 0c1f19ad3cd..d236e4b71d7 100644 --- a/app/src/test/resources/everything_config.toml +++ b/app/src/test/resources/everything_config.toml @@ -234,7 +234,6 @@ Xsecp256k1-native-enabled=false Xaltbn128-native-enabled=false snapsync-server-enabled=true Xbonsai-full-flat-db-enabled=true -Xpeertask-system-enabled=false era1-import-prepipeline-enabled=true era1-data-uri="mainnet.era1.nimbus.team/" era1-import-prepipeline-concurrency=4 diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/SynchronizerConfiguration.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/SynchronizerConfiguration.java index 2931586f243..a43d68b7279 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/SynchronizerConfiguration.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/SynchronizerConfiguration.java @@ -94,7 +94,6 @@ public class SynchronizerConfiguration { private final long receiptsDownloadStepTimeoutMillis; private final long backwardHeadersDownloadStepTimeoutMillis; private final long bodiesDownloadStepTimeoutMillis; - private final boolean isPeerTaskSystemEnabled; private final boolean snapSyncSavePreCheckpointHeadersOnlyEnabled; // ERA1 import prepipeline config @@ -128,7 +127,6 @@ private SynchronizerConfiguration( final long receiptsDownloadStepTimeoutMillis, final long backwardHeadersDownloadStepTimeoutMillis, final long bodiesDownloadStepTimeoutMillis, - final boolean isPeerTaskSystemEnabled, final boolean snapSyncSavePreCheckpointHeadersOnlyEnabled, final boolean era1ImportPrepipelineEnabled, final URI era1DataUri, @@ -158,7 +156,6 @@ private SynchronizerConfiguration( this.receiptsDownloadStepTimeoutMillis = receiptsDownloadStepTimeoutMillis; this.backwardHeadersDownloadStepTimeoutMillis = backwardHeadersDownloadStepTimeoutMillis; this.bodiesDownloadStepTimeoutMillis = bodiesDownloadStepTimeoutMillis; - this.isPeerTaskSystemEnabled = isPeerTaskSystemEnabled; this.snapSyncSavePreCheckpointHeadersOnlyEnabled = snapSyncSavePreCheckpointHeadersOnlyEnabled; this.era1ImportPrepipelineEnabled = era1ImportPrepipelineEnabled; this.era1DataUri = era1DataUri; @@ -300,10 +297,6 @@ public long getBodiesDownloadStepTimeoutMillis() { return bodiesDownloadStepTimeoutMillis; } - public boolean isPeerTaskSystemEnabled() { - return isPeerTaskSystemEnabled; - } - public boolean isSnapSyncSavePreCheckpointHeadersOnlyEnabled() { return snapSyncSavePreCheckpointHeadersOnlyEnabled; } @@ -347,7 +340,6 @@ public static class Builder { DEFAULT_WORLD_STATE_MAX_REQUESTS_WITHOUT_PROGRESS; private long worldStateMinMillisBeforeStalling = DEFAULT_WORLD_STATE_MIN_MILLIS_BEFORE_STALLING; private int worldStateTaskCacheSize = DEFAULT_WORLD_STATE_TASK_CACHE_SIZE; - private boolean isPeerTaskSystemEnabled = false; private boolean snapSyncSavePreCheckpointHeadersOnlyEnabled = true; private boolean era1ImportPrepipelineEnabled = DEFAULT_ERA1_IMPORT_PREPIPELINE_ENABLED; private URI era1DataUri = DEFAULT_ERA1_DATA_URI; @@ -493,11 +485,6 @@ public Builder bodiesDownloadStepTimeoutMillis(final long bodiesDownloadStepTime return this; } - public Builder isPeerTaskSystemEnabled(final boolean isPeerTaskSystemEnabled) { - this.isPeerTaskSystemEnabled = isPeerTaskSystemEnabled; - return this; - } - public Builder snapSyncSavePreCheckpointHeadersOnlyEnabled( final boolean snapSyncSavePreCheckpointHeadersOnlyEnabled) { this.snapSyncSavePreCheckpointHeadersOnlyEnabled = @@ -547,7 +534,6 @@ public SynchronizerConfiguration build() { receiptsDownloadStepTimeoutMillis, backwardHeadersDownloadStepTimeoutMillis, bodiesDownloadStepTimeoutMillis, - isPeerTaskSystemEnabled, snapSyncSavePreCheckpointHeadersOnlyEnabled, era1ImportPrepipelineEnabled, era1DataUri, diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/ForwardSyncStep.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/ForwardSyncStep.java index 914a85d7bdd..3eeaec99de6 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/ForwardSyncStep.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/ForwardSyncStep.java @@ -19,8 +19,6 @@ import org.hyperledger.besu.ethereum.eth.manager.peertask.PeerTaskExecutorResponseCode; import org.hyperledger.besu.ethereum.eth.manager.peertask.PeerTaskExecutorResult; import org.hyperledger.besu.ethereum.eth.manager.peertask.task.GetBodiesFromPeerTask; -import org.hyperledger.besu.ethereum.eth.manager.task.AbstractPeerTask; -import org.hyperledger.besu.ethereum.eth.manager.task.RetryingGetBlocksFromPeersTask; import java.util.Comparator; import java.util.List; @@ -79,47 +77,32 @@ public CompletableFuture possibleRequestBodies(final List blo @VisibleForTesting protected CompletableFuture> requestBodies(final List blockHeaders) { - CompletableFuture> blocksFuture; - if (context.getSynchronizerConfiguration().isPeerTaskSystemEnabled()) { - blocksFuture = - context - .getEthContext() - .getScheduler() - .scheduleServiceTask( - () -> { - GetBodiesFromPeerTask task = - new GetBodiesFromPeerTask( - blockHeaders, - context.getProtocolSchedule(), - context.getEthContext().getEthPeers().peerCount()); - PeerTaskExecutorResult> taskResult = - context.getEthContext().getPeerTaskExecutor().execute(task); - if (taskResult.responseCode() == PeerTaskExecutorResponseCode.SUCCESS - && taskResult.result().isPresent()) { - return CompletableFuture.completedFuture(taskResult.result().get()); - } else { - return CompletableFuture.failedFuture( - new RuntimeException(taskResult.responseCode().toString())); - } - }); - } else { - final RetryingGetBlocksFromPeersTask getBodiesFromPeerTask = - RetryingGetBlocksFromPeersTask.forHeaders( - context.getProtocolSchedule(), - context.getEthContext(), - context.getMetricsSystem(), - context.getEthContext().getEthPeers().peerCount(), - blockHeaders); - - blocksFuture = - getBodiesFromPeerTask.run().thenApply(AbstractPeerTask.PeerTaskResult::getResult); - } - return blocksFuture.thenApply( - blocks -> { - LOG.debug("Got {} blocks from peers", blocks.size()); - blocks.sort(Comparator.comparing(block -> block.getHeader().getNumber())); - return blocks; - }); + return context + .getEthContext() + .getScheduler() + .scheduleServiceTask( + () -> { + GetBodiesFromPeerTask task = + new GetBodiesFromPeerTask( + blockHeaders, + context.getProtocolSchedule(), + context.getEthContext().getEthPeers().peerCount()); + PeerTaskExecutorResult> taskResult = + context.getEthContext().getPeerTaskExecutor().execute(task); + if (taskResult.responseCode() == PeerTaskExecutorResponseCode.SUCCESS + && taskResult.result().isPresent()) { + return CompletableFuture.completedFuture(taskResult.result().get()); + } else { + return CompletableFuture.failedFuture( + new RuntimeException(taskResult.responseCode().toString())); + } + }) + .thenApply( + blocks -> { + LOG.debug("Got {} blocks from peers", blocks.size()); + blocks.sort(Comparator.comparing(block -> block.getHeader().getNumber())); + return blocks; + }); } @VisibleForTesting diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/RangeHeadersFetcherTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/RangeHeadersFetcherTest.java index 0433e2de086..0a06c7ccfb7 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/RangeHeadersFetcherTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/RangeHeadersFetcherTest.java @@ -121,7 +121,7 @@ public void setUpTest() { @Test public void shouldRequestHeadersFromPeerAndExcludeExistingHeader() { - final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(true); + final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(); Mockito.when( peerTaskExecutor.executeAgainstPeer( @@ -138,7 +138,7 @@ public void shouldRequestHeadersFromPeerAndExcludeExistingHeader() { @Test public void shouldNotRequestHeadersBeyondTargetWhenTargetIsMultipleOfSegmentSize() { - final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(header(11), true); + final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(header(11)); Mockito.when( peerTaskExecutor.executeAgainstPeer( @@ -155,7 +155,7 @@ public void shouldNotRequestHeadersBeyondTargetWhenTargetIsMultipleOfSegmentSize @Test public void shouldNotRequestHeadersBeyondTargetWhenTargetIsNotAMultipleOfSegmentSize() { - final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(header(15), true); + final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(header(15)); Mockito.when( peerTaskExecutor.executeAgainstPeer( @@ -172,7 +172,7 @@ public void shouldNotRequestHeadersBeyondTargetWhenTargetIsNotAMultipleOfSegment @Test public void shouldReturnOnlyTargetHeaderWhenLastHeaderIsTheRangeBeforeTarget() { - final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(header(15), false); + final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(header(15)); final CompletableFuture> result = rangeHeaderFetcher.getNextRangeHeaders(respondingPeer.getEthPeer(), header(11)); @@ -182,7 +182,7 @@ public void shouldReturnOnlyTargetHeaderWhenLastHeaderIsTheRangeBeforeTarget() { @Test public void shouldReturnEmptyListWhenLastHeaderIsTarget() { - final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(header(15), false); + final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(header(15)); final CompletableFuture> result = rangeHeaderFetcher.getNextRangeHeaders(respondingPeer.getEthPeer(), header(15)); @@ -191,7 +191,7 @@ public void shouldReturnEmptyListWhenLastHeaderIsTarget() { @Test public void shouldReturnEmptyListWhenLastHeaderIsAfterTarget() { - final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(header(15), false); + final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(header(15)); final CompletableFuture> result = rangeHeaderFetcher.getNextRangeHeaders(respondingPeer.getEthPeer(), header(16)); @@ -201,7 +201,7 @@ public void shouldReturnEmptyListWhenLastHeaderIsAfterTarget() { @Test public void nextRangeShouldEndAtChainHeadWhenNextRangeHeaderIsAfterHead() { final long remoteChainHeight = blockchain.getChainHeadBlockNumber(); - final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(false); + final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(); assertThat( rangeHeaderFetcher.nextRangeEndsAtChainHead( @@ -213,7 +213,7 @@ public void nextRangeShouldEndAtChainHeadWhenNextRangeHeaderIsAfterHead() { public void nextRangeShouldNotEndAtChainHeadWhenAFinalRangeHeaderIsSpecified() { final long remoteChainHeight = blockchain.getChainHeadBlockNumber(); final RangeHeadersFetcher rangeHeaderFetcher = - createRangeHeaderFetcher(header(remoteChainHeight), false); + createRangeHeaderFetcher(header(remoteChainHeight)); assertThat( rangeHeaderFetcher.nextRangeEndsAtChainHead( @@ -224,7 +224,7 @@ public void nextRangeShouldNotEndAtChainHeadWhenAFinalRangeHeaderIsSpecified() { @Test public void shouldReturnRemoteChainHeadWhenNextRangeHeaderIsTheRemoteHead() { final long remoteChainHeight = blockchain.getChainHeadBlockNumber(); - final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(true); + final RangeHeadersFetcher rangeHeaderFetcher = createRangeHeaderFetcher(); Mockito.when( peerTaskExecutor.executeAgainstPeer( @@ -245,26 +245,23 @@ public void shouldReturnRemoteChainHeadWhenNextRangeHeaderIsTheRemoteHead() { assertThat(result).isCompletedWithValue(singletonList(header(remoteChainHeight))); } - private RangeHeadersFetcher createRangeHeaderFetcher(final boolean isPeerTaskSystemEnabled) { + private RangeHeadersFetcher createRangeHeaderFetcher() { final EthContext ethContext = ethProtocolManager.ethContext(); return new RangeHeadersFetcher( SynchronizerConfiguration.builder() .downloaderChainSegmentSize(SEGMENT_SIZE) .downloaderHeadersRequestSize(3) - .isPeerTaskSystemEnabled(isPeerTaskSystemEnabled) .build(), protocolSchedule, ethContext); } - private RangeHeadersFetcher createRangeHeaderFetcher( - final BlockHeader targetHeader, final boolean isPeerTaskSystemEnabled) { + private RangeHeadersFetcher createRangeHeaderFetcher(final BlockHeader targetHeader) { final EthContext ethContext = ethProtocolManager.ethContext(); return new RangeHeadersFetcher( SynchronizerConfiguration.builder() .downloaderChainSegmentSize(SEGMENT_SIZE) .downloaderHeadersRequestSize(3) - .isPeerTaskSystemEnabled(isPeerTaskSystemEnabled) .build(), protocolSchedule, ethContext, diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/BackwardSyncStepTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/BackwardSyncStepTest.java index 238ac4b146b..aa28372f34d 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/BackwardSyncStepTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/BackwardSyncStepTest.java @@ -42,7 +42,6 @@ import org.hyperledger.besu.ethereum.eth.manager.peertask.PeerTaskExecutorResult; import org.hyperledger.besu.ethereum.eth.manager.peertask.task.GetHeadersFromPeerTask; import org.hyperledger.besu.ethereum.eth.manager.peertask.task.GetHeadersFromPeerTaskExecutorAnswer; -import org.hyperledger.besu.ethereum.eth.sync.SynchronizerConfiguration; import org.hyperledger.besu.ethereum.mainnet.BalConfiguration; import org.hyperledger.besu.ethereum.mainnet.MainnetBlockHeaderFunctions; import org.hyperledger.besu.ethereum.mainnet.MainnetProtocolSchedule; @@ -170,8 +169,6 @@ public void setup() { public void shouldFindHeaderWhenRequested() throws Exception { final BackwardChain backwardChain = createBackwardChain(LOCAL_HEIGHT + 3); when(context.getBatchSize()).thenReturn(5); - when(context.getSynchronizerConfiguration()) - .thenReturn(SynchronizerConfiguration.builder().isPeerTaskSystemEnabled(true).build()); BackwardSyncStep step = spy(new BackwardSyncStep(context, backwardChain)); final RespondingEthPeer.Responder responder = @@ -186,8 +183,6 @@ public void shouldFindHeaderWhenRequested() throws Exception { @Test public void shouldFindHashToSync() { final BackwardChain backwardChain = createBackwardChain(REMOTE_HEIGHT - 4, REMOTE_HEIGHT); - when(context.getSynchronizerConfiguration()) - .thenReturn(SynchronizerConfiguration.builder().isPeerTaskSystemEnabled(true).build()); BackwardSyncStep step = new BackwardSyncStep(context, backwardChain); final Hash hash = step.possibleRestoreOldNodes(backwardChain.getFirstAncestorHeader().orElseThrow()); @@ -196,8 +191,6 @@ public void shouldFindHashToSync() { @Test public void shouldRequestHeaderWhenAsked() throws Exception { - when(context.getSynchronizerConfiguration()) - .thenReturn(SynchronizerConfiguration.builder().isPeerTaskSystemEnabled(true).build()); BackwardSyncStep step = new BackwardSyncStep(context, createBackwardChain(REMOTE_HEIGHT - 1)); final Block lookingForBlock = getBlockByNumber(REMOTE_HEIGHT - 2); @@ -214,8 +207,6 @@ public void shouldRequestHeaderWhenAsked() throws Exception { @Test public void shouldNotRequestHeaderIfAlreadyPresent() throws Exception { - when(context.getSynchronizerConfiguration()) - .thenReturn(SynchronizerConfiguration.builder().isPeerTaskSystemEnabled(true).build()); BackwardSyncStep step = new BackwardSyncStep(context, createBackwardChain(REMOTE_HEIGHT - 1)); final Block lookingForBlock = getBlockByNumber(LOCAL_HEIGHT); @@ -230,8 +221,6 @@ public void shouldNotRequestHeaderIfAlreadyPresent() throws Exception { @Test public void shouldRequestHeaderBeforeCurrentHeight() throws Exception { - when(context.getSynchronizerConfiguration()) - .thenReturn(SynchronizerConfiguration.builder().isPeerTaskSystemEnabled(true).build()); extendBlockchain(REMOTE_HEIGHT + 1, context.getProtocolContext().getBlockchain()); BackwardSyncStep step = new BackwardSyncStep(context, createBackwardChain(REMOTE_HEIGHT - 1)); @@ -250,8 +239,6 @@ public void shouldRequestHeaderBeforeCurrentHeight() throws Exception { @Test public void shouldThrowWhenResponseIsEmptyWhenRequestingHeader() { - when(context.getSynchronizerConfiguration()) - .thenReturn(SynchronizerConfiguration.builder().isPeerTaskSystemEnabled(true).build()); Mockito.reset(peerTaskExecutor); when(peerTaskExecutor.execute(any(GetHeadersFromPeerTask.class))) .thenReturn( @@ -275,8 +262,6 @@ public void shouldThrowWhenResponseIsEmptyWhenRequestingHeader() { @Test public void shouldSaveHeaderDelegatesProperly() { - when(context.getSynchronizerConfiguration()) - .thenReturn(SynchronizerConfiguration.builder().isPeerTaskSystemEnabled(true).build()); final BackwardChain chain = Mockito.mock(BackwardChain.class); final BlockHeader header = Mockito.mock(BlockHeader.class); diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/ForwardSyncStepTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/ForwardSyncStepTest.java index 43f446e9a06..6325795ed8c 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/ForwardSyncStepTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/ForwardSyncStepTest.java @@ -188,32 +188,6 @@ public void setup() { @Test public void shouldExecuteForwardSyncWhenPossible() throws Exception { - when(syncConfig.isPeerTaskSystemEnabled()).thenReturn(false); - final BackwardChain backwardChain = createBackwardChain(LOCAL_HEIGHT, LOCAL_HEIGHT + 3); - ForwardSyncStep step = new ForwardSyncStep(context, backwardChain); - - final RespondingEthPeer.Responder responder = - RespondingEthPeer.blockchainResponder(remoteBlockchain); - - final CompletableFuture completableFuture = step.executeAsync(); - - peer.respondWhile( - responder, - () -> { - try { - Thread.sleep(5); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - return !completableFuture.isDone(); - }); - - completableFuture.get(); - } - - @Test - public void shouldExecuteForwardSyncWhenPossibleUsingPeerTaskSystem() throws Exception { - when(syncConfig.isPeerTaskSystemEnabled()).thenReturn(true); final BackwardChain backwardChain = createBackwardChain(LOCAL_HEIGHT, LOCAL_HEIGHT + 3); ForwardSyncStep step = new ForwardSyncStep(context, backwardChain); @@ -239,24 +213,6 @@ public void shouldFindBlockWhenRequested() throws Exception { ForwardSyncStep step = new ForwardSyncStep(context, createBackwardChain(LOCAL_HEIGHT + 1, LOCAL_HEIGHT + 3)); - final RespondingEthPeer.Responder responder = - RespondingEthPeer.blockchainResponder(remoteBlockchain); - - final CompletableFuture> future = - step.requestBodies(List.of(getBlockByNumber(LOCAL_HEIGHT + 1).getHeader())); - peer.respondWhile(responder, () -> !future.isDone()); - final List blocks = future.get(); - Assertions.assertThat(blocks) - .hasSize(1) - .containsExactlyInAnyOrder(getBlockByNumber(LOCAL_HEIGHT + 1)); - } - - @Test - public void shouldFindBlockWhenRequestedUsingPeerTaskSystem() throws Exception { - when(syncConfig.isPeerTaskSystemEnabled()).thenReturn(true); - ForwardSyncStep step = - new ForwardSyncStep(context, createBackwardChain(LOCAL_HEIGHT + 1, LOCAL_HEIGHT + 3)); - final CompletableFuture> future = step.requestBodies(List.of(getBlockByNumber(LOCAL_HEIGHT + 1).getHeader())); final List blocks = future.get(); diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/common/PivotSyncActionsTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/common/PivotSyncActionsTest.java index 3dc728430ca..28c803ba33c 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/common/PivotSyncActionsTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/common/PivotSyncActionsTest.java @@ -87,19 +87,14 @@ public Stream provideArguments(final ExtensionContext conte } } - public void setUp(final DataStorageFormat storageFormat, final boolean isPeerTaskSystemEnabled) { - setUp(storageFormat, isPeerTaskSystemEnabled, Optional.empty()); + public void setUp(final DataStorageFormat storageFormat) { + setUp(storageFormat, Optional.empty()); } public void setUp( - final DataStorageFormat storageFormat, - final boolean isPeerTaskSystemEnabled, - final Optional syncMinimumPeers) { + final DataStorageFormat storageFormat, final Optional syncMinimumPeers) { SynchronizerConfiguration.Builder syncConfigBuilder = - new SynchronizerConfiguration.Builder() - .syncMode(SyncMode.SNAP) - .syncPivotDistance(1000) - .isPeerTaskSystemEnabled(isPeerTaskSystemEnabled); + new SynchronizerConfiguration.Builder().syncMode(SyncMode.SNAP).syncPivotDistance(1000); syncMinimumPeers.ifPresent(syncConfigBuilder::syncMinimumPeerCount); syncConfig = syncConfigBuilder.build(); when(worldStateStorageCoordinator.getDataStorageFormat()).thenReturn(storageFormat); @@ -128,7 +123,7 @@ public void setUp( @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void waitForPeersShouldSucceedIfEnoughPeersAreFound( final DataStorageFormat storageFormat) { - setUp(storageFormat, false); + setUp(storageFormat); for (int i = 0; i < syncConfig.getSyncMinimumPeerCount(); i++) { EthProtocolManagerTestUtil.createPeer( ethProtocolManager, syncConfig.getSyncPivotDistance() + i + 1); @@ -141,7 +136,7 @@ public void waitForPeersShouldSucceedIfEnoughPeersAreFound( @ParameterizedTest @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void returnTheSamePivotBlockIfAlreadySelected(final DataStorageFormat storageFormat) { - setUp(storageFormat, false); + setUp(storageFormat); final BlockHeader pivotHeader = new BlockHeaderTestFixture().number(1024).buildHeader(); final PivotSyncState fastSyncState = new PivotSyncState(pivotHeader, false); final CompletableFuture result = @@ -154,7 +149,7 @@ public void returnTheSamePivotBlockIfAlreadySelected(final DataStorageFormat sto @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void selectPivotBlockShouldUseExistingPivotBlockIfAvailable( final DataStorageFormat storageFormat) { - setUp(storageFormat, false); + setUp(storageFormat); final BlockHeader pivotHeader = new BlockHeaderTestFixture().number(1024).buildHeader(); EthProtocolManagerTestUtil.createPeer(ethProtocolManager, 5000); @@ -168,7 +163,7 @@ public void selectPivotBlockShouldUseExistingPivotBlockIfAvailable( @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void selectPivotBlockShouldSelectBlockPivotDistanceFromBestPeer( final DataStorageFormat storageFormat) { - setUp(storageFormat, false, Optional.of(1)); + setUp(storageFormat, Optional.of(1)); pivotSyncActions = createPivotSyncActions( @@ -186,7 +181,7 @@ public void selectPivotBlockShouldSelectBlockPivotDistanceFromBestPeer( @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void selectPivotBlockShouldConsiderTotalDifficultyWhenSelectingBestPeer( final DataStorageFormat storageFormat) { - setUp(storageFormat, false, Optional.of(1)); + setUp(storageFormat, Optional.of(1)); pivotSyncActions = createPivotSyncActions( syncConfig, new PivotSelectorFromPeers(ethContext, syncConfig, syncState)); @@ -204,7 +199,7 @@ public void selectPivotBlockShouldConsiderTotalDifficultyWhenSelectingBestPeer( @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void selectPivotBlockShouldWaitAndRetryUntilMinHeightEstimatesAreAvailable( final DataStorageFormat storageFormat) { - setUp(storageFormat, false, Optional.of(2)); + setUp(storageFormat, Optional.of(2)); pivotSyncActions = createPivotSyncActions( syncConfig, new PivotSelectorFromPeers(ethContext, syncConfig, syncState)); @@ -231,7 +226,7 @@ public void selectPivotBlockShouldWaitAndRetryUntilMinHeightEstimatesAreAvailabl @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void selectPivotBlockShouldRetryIfPivotBlockSelectorReturnsEmptyOptional( final DataStorageFormat storageFormat) { - setUp(storageFormat, false, Optional.of(3)); + setUp(storageFormat, Optional.of(3)); PivotBlockSelector pivotBlockSelector = mock(PivotBlockSelector.class); pivotSyncActions = createPivotSyncActions(syncConfig, pivotBlockSelector); @@ -257,14 +252,14 @@ public void selectPivotBlockShouldRetryIfPivotBlockSelectorReturnsEmptyOptional( @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void selectPivotBlockUsesBestPeerWithHeightEstimate( final DataStorageFormat storageFormat) { - setUp(storageFormat, false, Optional.of(3)); + setUp(storageFormat, Optional.of(3)); selectPivotBlockUsesBestPeerMatchingRequiredCriteria(true, false); } @ParameterizedTest @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void selectPivotBlockUsesBestPeerThatIsValidated(final DataStorageFormat storageFormat) { - setUp(storageFormat, false, Optional.of(3)); + setUp(storageFormat, Optional.of(3)); selectPivotBlockUsesBestPeerMatchingRequiredCriteria(false, true); } @@ -272,7 +267,7 @@ public void selectPivotBlockUsesBestPeerThatIsValidated(final DataStorageFormat @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void selectPivotBlockUsesBestPeerThatIsValidatedAndHasHeightEstimate( final DataStorageFormat storageFormat) { - setUp(storageFormat, false, Optional.of(3)); + setUp(storageFormat, Optional.of(3)); selectPivotBlockUsesBestPeerMatchingRequiredCriteria(true, true); } @@ -326,7 +321,7 @@ private void selectPivotBlockUsesBestPeerMatchingRequiredCriteria( @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void selectPivotBlockShouldWaitAndRetryIfBestPeerChainIsShorterThanPivotDistance( final DataStorageFormat storageFormat) { - setUp(storageFormat, false, Optional.of(1)); + setUp(storageFormat, Optional.of(1)); pivotSyncActions = createPivotSyncActions( syncConfig, new PivotSelectorFromPeers(ethContext, syncConfig, syncState)); @@ -352,7 +347,7 @@ public void selectPivotBlockShouldWaitAndRetryIfBestPeerChainIsShorterThanPivotD @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void selectPivotBlockShouldRetryIfBestPeerChainIsEqualToPivotDistance( final DataStorageFormat storageFormat) { - setUp(storageFormat, false); + setUp(storageFormat); final long pivotDistance = syncConfig.getSyncPivotDistance(); EthProtocolManagerTestUtil.disableEthSchedulerAutoRun(ethProtocolManager); // Create peers with chains that are too short @@ -377,7 +372,7 @@ public void selectPivotBlockShouldRetryIfBestPeerChainIsEqualToPivotDistance( @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void downloadPivotBlockHeaderShouldUseExistingPivotBlockHeaderIfPresent( final DataStorageFormat storageFormat) { - setUp(storageFormat, false); + setUp(storageFormat); final BlockHeader pivotHeader = new BlockHeaderTestFixture().number(1024).buildHeader(); final PivotSyncState expected = new PivotSyncState(pivotHeader, false); assertThat(pivotSyncActions.downloadPivotBlockHeader(expected)).isCompletedWithValue(expected); @@ -387,7 +382,7 @@ public void downloadPivotBlockHeaderShouldUseExistingPivotBlockHeaderIfPresent( @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void downloadPivotBlockHeaderShouldRetrievePivotBlockHeader( final DataStorageFormat storageFormat) { - setUp(storageFormat, false, Optional.of(1)); + setUp(storageFormat, Optional.of(1)); pivotSyncActions = createPivotSyncActions( syncConfig, new PivotSelectorFromPeers(ethContext, syncConfig, syncState)); @@ -412,7 +407,7 @@ public void downloadPivotBlockHeaderShouldRetrievePivotBlockHeader( @ArgumentsSource(PivotSyncActionsTest.PivotSyncActionsTestArguments.class) public void downloadPivotBlockHeaderShouldRetrievePivotBlockHash( final DataStorageFormat storageFormat) { - setUp(storageFormat, false, Optional.of(1)); + setUp(storageFormat, Optional.of(1)); GenesisConfigOptions genesisConfig = mock(GenesisConfigOptions.class); when(genesisConfig.getTerminalBlockNumber()).thenReturn(OptionalLong.of(10L));