class NodeBlockProcessor implements BlockProcessor {

    @Override
    public void processBlockHashRequest(@Nonnull final MessageChannel sender, long requestId, long height) {
        logger.trace("Processing block hash request {} {} from {}", requestId, height, sender.getPeerNodeID());
        if (height == 0){
            return;
        }

        final Block block = this.getBlockFromBlockchainStore(height);

        if (block == null) {
            // Don't waste time sending an empty response.
            return;
        }

        BlockHashResponseMessage responseMessage = new BlockHashResponseMessage(requestId, block.getHash().getBytes());
        sender.sendMessage(responseMessage);
    }

    public  NodeBlockProcessor(
            @Nonnull final BlockStore store,
            @Nonnull final Blockchain blockchain,
            @Nonnull final BlockNodeInformation nodeInformation,
            @Nonnull final BlockSyncService blockSyncService,
            @Nonnull final SyncConfiguration syncConfiguration);

}