### Question:
EthHashBlockCreator extends AbstractBlockCreator { public Optional<Long> getHashesPerSecond() { return nonceSolver.hashesPerSecond(); } EthHashBlockCreator(
      final Address coinbase,
      final ExtraDataCalculator extraDataCalculator,
      final PendingTransactions pendingTransactions,
      final ProtocolContext protocolContext,
      final ProtocolSchedule protocolSchedule,
      final GasLimitCalculator gasLimitCalculator,
      final EthHashSolver nonceSolver,
      final Wei minTransactionGasPrice,
      final Double minBlockOccupancyRatio,
      final BlockHeader parentHeader); Optional<EthHashSolverInputs> getWorkDefinition(); Optional<Long> getHashesPerSecond(); boolean submitWork(final EthHashSolution solution); @Override void cancel();  }### Answer:
@Test public void createMainnetBlock1() throws IOException { final ExecutionContextTestFixture executionContextTestFixture = ExecutionContextTestFixture.builder() .protocolSchedule( new ProtocolScheduleBuilder( GenesisConfigFile.DEFAULT.getConfigOptions(), BigInteger.valueOf(42), Function.identity(), PrivacyParameters.DEFAULT, false) .createProtocolSchedule()) .build(); final EthHashSolver solver = new EthHashSolver( Lists.newArrayList(BLOCK_1_NONCE), new EthHasher.Light(), false, Subscribers.none()); final PendingTransactions pendingTransactions = new PendingTransactions( TransactionPoolConfiguration.DEFAULT_TX_RETENTION_HOURS, 1, 5, TestClock.fixed(), metricsSystem, executionContextTestFixture.getProtocolContext().getBlockchain()::getChainHeadHeader, Optional.empty(), TransactionPoolConfiguration.DEFAULT_PRICE_BUMP); final EthHashBlockCreator blockCreator = new EthHashBlockCreator( BLOCK_1_COINBASE, parent -> BLOCK_1_EXTRA_DATA, pendingTransactions, executionContextTestFixture.getProtocolContext(), executionContextTestFixture.getProtocolSchedule(), gasLimit -> gasLimit, solver, Wei.ZERO, 0.8, executionContextTestFixture.getBlockchain().getChainHeadHeader()); assertThat(blockCreator.getHashesPerSecond().isPresent()).isFalse(); final Block actualBlock = blockCreator.createBlock(BLOCK_1_TIMESTAMP); final Block expectedBlock = ValidationTestUtils.readBlock(1); assertThat(actualBlock).isEqualTo(expectedBlock); assertThat(blockCreator.getHashesPerSecond().isPresent()).isTrue(); }