diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactory.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactory.java index 6b71266f7bf..a19ea1db0de 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactory.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactory.java @@ -123,9 +123,12 @@ public Function> createSelector( return bodyBuilder -> { final Eth1Data eth1Data = eth1DataCache.getEth1Vote(blockSlotState); + final long start = System.nanoTime(); final SszList attestations = attestationPool.getAttestationsForBlock( blockSlotState, new AttestationForkChecker(spec, blockSlotState)); + System.out.println("getAttestationsForBlock: " + (System.nanoTime() - start) / 1_000_000 + "ms"); + // Collect slashings to include final Set exitedValidators = new HashSet<>(); diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPool.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPool.java index 5030b4cc6ce..b76a9d5be04 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPool.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/attestation/AggregatingAttestationPool.java @@ -246,6 +246,9 @@ public synchronized SszList getAttestationsForBlock( final AtomicInteger prevEpochCount = new AtomicInteger(0); + dataHashBySlot.descendingMap().forEach( + (slot, dataHashes) -> System.out.println("slot: " + slot + ", dataHashes: " + dataHashes.size())); + return dataHashBySlot // We can immediately skip any attestations from the block slot or later .headMap(stateAtBlockSlot.getSlot(), false)