|
20 | 20 | import org.hyperledger.besu.ethereum.eth.manager.peertask.PeerTaskExecutorResult; |
21 | 21 | import org.hyperledger.besu.ethereum.eth.manager.peertask.task.GetHeadersFromPeerTask; |
22 | 22 | import org.hyperledger.besu.ethereum.eth.manager.peertask.task.GetHeadersFromPeerTask.Direction; |
23 | | -import org.hyperledger.besu.ethereum.eth.manager.task.RetryingGetHeadersEndingAtFromPeerByHashTask; |
24 | 23 |
|
25 | 24 | import java.util.List; |
26 | 25 | import java.util.Optional; |
@@ -73,57 +72,37 @@ protected CompletableFuture<List<BlockHeader>> requestHeaders(final Hash hash) { |
73 | 72 | final int batchSize = context.getBatchSize(); |
74 | 73 | LOG.trace("Requesting headers for hash {}, with batch size {}", hash, batchSize); |
75 | 74 |
|
76 | | - CompletableFuture<List<BlockHeader>> headersResult; |
77 | | - if (context.getSynchronizerConfiguration().isPeerTaskSystemEnabled()) { |
78 | | - headersResult = |
79 | | - context |
80 | | - .getEthContext() |
81 | | - .getScheduler() |
82 | | - .scheduleServiceTask( |
83 | | - () -> { |
84 | | - GetHeadersFromPeerTask task = |
85 | | - new GetHeadersFromPeerTask( |
86 | | - hash, |
87 | | - 0, |
88 | | - batchSize, |
89 | | - 0, |
90 | | - Direction.REVERSE, |
91 | | - context.getEthContext().getEthPeers().peerCount(), |
92 | | - context.getProtocolSchedule()); |
93 | | - PeerTaskExecutorResult<List<BlockHeader>> taskResult = |
94 | | - context.getEthContext().getPeerTaskExecutor().execute(task); |
95 | | - if (taskResult.responseCode() != PeerTaskExecutorResponseCode.SUCCESS |
96 | | - || taskResult.result().isEmpty()) { |
97 | | - throw new RuntimeException("Unable to retrieve headers"); |
98 | | - } |
99 | | - return CompletableFuture.completedFuture(taskResult.result().get()); |
100 | | - }); |
101 | | - } else { |
102 | | - final RetryingGetHeadersEndingAtFromPeerByHashTask |
103 | | - retryingGetHeadersEndingAtFromPeerByHashTask = |
104 | | - RetryingGetHeadersEndingAtFromPeerByHashTask.endingAtHash( |
105 | | - context.getProtocolSchedule(), |
106 | | - context.getEthContext(), |
107 | | - hash, |
108 | | - 0, |
109 | | - batchSize, |
110 | | - context.getMetricsSystem(), |
111 | | - context.getEthContext().getEthPeers().peerCount()); |
112 | | - headersResult = |
113 | | - context |
114 | | - .getEthContext() |
115 | | - .getScheduler() |
116 | | - .scheduleSyncWorkerTask(retryingGetHeadersEndingAtFromPeerByHashTask::run); |
117 | | - } |
118 | | - return headersResult.thenApply( |
119 | | - blockHeaders -> { |
120 | | - LOG.atDebug() |
121 | | - .setMessage("Got headers {} -> {}") |
122 | | - .addArgument(blockHeaders.get(0)::getNumber) |
123 | | - .addArgument(blockHeaders.get(blockHeaders.size() - 1)::getNumber) |
124 | | - .log(); |
125 | | - return blockHeaders; |
126 | | - }); |
| 75 | + return context |
| 76 | + .getEthContext() |
| 77 | + .getScheduler() |
| 78 | + .scheduleServiceTask( |
| 79 | + () -> { |
| 80 | + GetHeadersFromPeerTask task = |
| 81 | + new GetHeadersFromPeerTask( |
| 82 | + hash, |
| 83 | + 0, |
| 84 | + batchSize, |
| 85 | + 0, |
| 86 | + Direction.REVERSE, |
| 87 | + context.getEthContext().getEthPeers().peerCount(), |
| 88 | + context.getProtocolSchedule()); |
| 89 | + PeerTaskExecutorResult<List<BlockHeader>> taskResult = |
| 90 | + context.getEthContext().getPeerTaskExecutor().execute(task); |
| 91 | + if (taskResult.responseCode() != PeerTaskExecutorResponseCode.SUCCESS |
| 92 | + || taskResult.result().isEmpty()) { |
| 93 | + throw new RuntimeException("Unable to retrieve headers"); |
| 94 | + } |
| 95 | + return CompletableFuture.completedFuture(taskResult.result().get()); |
| 96 | + }) |
| 97 | + .thenApply( |
| 98 | + blockHeaders -> { |
| 99 | + LOG.atDebug() |
| 100 | + .setMessage("Got headers {} -> {}") |
| 101 | + .addArgument(blockHeaders.get(0)::getNumber) |
| 102 | + .addArgument(blockHeaders.get(blockHeaders.size() - 1)::getNumber) |
| 103 | + .log(); |
| 104 | + return blockHeaders; |
| 105 | + }); |
127 | 106 | } |
128 | 107 |
|
129 | 108 | @VisibleForTesting |
|
0 commit comments