Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
pull/7806/head
stefan.pingel@consensys.net 1 month ago
parent 512ee0b264
commit 39542bb86d
  1. 15
      ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/checkpointsync/CheckpointDownloadBlockStep.java

@ -84,10 +84,15 @@ public class CheckpointDownloadBlockStep {
final PeerTaskResult<Block> peerTaskResult) { final PeerTaskResult<Block> peerTaskResult) {
final Block block = peerTaskResult.getResult(); final Block block = peerTaskResult.getResult();
if (synchronizerConfiguration.isPeerTaskSystemEnabled()) { if (synchronizerConfiguration.isPeerTaskSystemEnabled()) {
return ethContext.getScheduler().scheduleServiceTask(() -> { return ethContext
.getScheduler()
.scheduleServiceTask(
() -> {
GetReceiptsFromPeerTask task = GetReceiptsFromPeerTask task =
new GetReceiptsFromPeerTask( new GetReceiptsFromPeerTask(
List.of(block.getHeader()), new BodyValidator(), currentProtocolSpecSupplier); List.of(block.getHeader()),
new BodyValidator(),
currentProtocolSpecSupplier);
PeerTaskExecutorResult<Map<BlockHeader, List<TransactionReceipt>>> executorResult = PeerTaskExecutorResult<Map<BlockHeader, List<TransactionReceipt>>> executorResult =
peerTaskExecutor.execute(task); peerTaskExecutor.execute(task);
@ -98,12 +103,14 @@ public class CheckpointDownloadBlockStep {
.map((map) -> map.get(block.getHeader())) .map((map) -> map.get(block.getHeader()))
.orElseThrow( .orElseThrow(
() -> () ->
new IllegalStateException("PeerTask response code was success, but empty")); new IllegalStateException(
"PeerTask response code was success, but empty"));
if (block.getBody().getTransactions().size() != transactionReceipts.size()) { if (block.getBody().getTransactions().size() != transactionReceipts.size()) {
throw new IllegalStateException( throw new IllegalStateException(
"PeerTask response code was success, but incorrect number of receipts returned"); "PeerTask response code was success, but incorrect number of receipts returned");
} }
BlockWithReceipts blockWithReceipts = new BlockWithReceipts(block, transactionReceipts); BlockWithReceipts blockWithReceipts =
new BlockWithReceipts(block, transactionReceipts);
return CompletableFuture.completedFuture(Optional.of(blockWithReceipts)); return CompletableFuture.completedFuture(Optional.of(blockWithReceipts));
} else { } else {
return CompletableFuture.completedFuture(Optional.empty()); return CompletableFuture.completedFuture(Optional.empty());

Loading…
Cancel
Save