Here are the examples of the java api class com.google.bitcoin.store.BlockStore taken from open source projects.
1. MultiBitService#createBlockStore()
Project: multibit
File: MultiBitService.java
File: MultiBitService.java
private BlockStore createBlockStore(Date checkpointDate, boolean createNew) throws BlockStoreException, IOException { BlockStore blockStore = null; String filePrefix = getFilePrefix(); log.debug("filePrefix = " + filePrefix); if ("".equals(controller.getApplicationDataDirectoryLocator().getApplicationDataDirectory())) { blockchainFilename = filePrefix + SPV_BLOCKCHAIN_SUFFIX; checkpointsFilename = filePrefix + CHECKPOINTS_SUFFIX; } else { blockchainFilename = controller.getApplicationDataDirectoryLocator().getApplicationDataDirectory() + File.separator + filePrefix + SPV_BLOCKCHAIN_SUFFIX; checkpointsFilename = controller.getApplicationDataDirectoryLocator().getApplicationDataDirectory() + File.separator + filePrefix + CHECKPOINTS_SUFFIX; } File blockStoreFile = new File(blockchainFilename); boolean blockStoreCreatedNew = !blockStoreFile.exists(); // Ensure there is a checkpoints file. File checkpointsFile = new File(checkpointsFilename); if (!checkpointsFile.exists()) { bitcoinController.getFileHandler().copyCheckpointsFromInstallationDirectory(checkpointsFilename); } // Use the larger of the installed checkpoints file and the user data checkpoint file (larger = more recent). ApplicationDataDirectoryLocator applicationDataDirectoryLocator = new ApplicationDataDirectoryLocator(); String installedCheckpointsFilename = applicationDataDirectoryLocator.getInstallationDirectory() + File.separator + MultiBitService.getFilePrefix() + MultiBitService.CHECKPOINTS_SUFFIX; log.debug("Installed checkpoints file = '" + installedCheckpointsFilename + "'."); File installedCheckpointsFile = new File(installedCheckpointsFilename); long sizeOfUserDataCheckpointsFile = 0; if (checkpointsFile.exists()) { sizeOfUserDataCheckpointsFile = checkpointsFile.length(); } if (installedCheckpointsFile.exists() && installedCheckpointsFile.length() > sizeOfUserDataCheckpointsFile) { // The installed checkpoints file is longer (more checkpoints) so use that. checkpointsFilename = installedCheckpointsFilename; checkpointsFile = installedCheckpointsFile; log.debug("Using installed checkpoints file as it is longer than user data checkpoints - " + installedCheckpointsFile.length() + " bytes versus " + sizeOfUserDataCheckpointsFile + " bytes."); } else { log.debug("Using user data checkpoints file as it is longer/same size as installed checkpoints - " + sizeOfUserDataCheckpointsFile + " bytes versus " + installedCheckpointsFile.length() + " bytes."); } // or its size is 0 bytes delete the file so that it is recreated fresh (fix for issue 165). if (createNew || blockStoreFile.length() == 0) { // Garbage collect any closed references to the blockchainFile. System.gc(); blockStoreFile.setWritable(true); boolean deletedOk = blockStoreFile.delete(); log.debug("Deleting SPV block store '{}' from disk.1", blockchainFilename + ", deletedOk = " + deletedOk); blockStoreCreatedNew = true; } log.debug("Opening / Creating SPV block store '{}' from disk", blockchainFilename); try { blockStore = new SPVBlockStore(networkParameters, blockStoreFile); } catch (BlockStoreException bse) { try { log.error("Failed to open/ create SPV block store '{}' from disk", blockchainFilename); System.gc(); blockStoreFile.setWritable(true); boolean deletedOk = blockStoreFile.delete(); log.debug("Deleting SPV block store '{}' from disk.2", blockchainFilename + ", deletedOk = " + deletedOk); blockStoreCreatedNew = true; blockStore = new SPVBlockStore(networkParameters, blockStoreFile); } catch (BlockStoreException bse2) { bse2.printStackTrace(); log.error("Unrecoverable failure in opening block store. This is bad."); throw bse2; } } // Load the existing checkpoint file and checkpoint from today. if (blockStore != null && checkpointsFile.exists()) { FileInputStream stream = null; try { stream = new FileInputStream(checkpointsFile); if (checkpointDate == null) { if (blockStoreCreatedNew) { // Brand new block store - checkpoint from today. This // will go back to the last checkpoint. CheckpointManager.checkpoint(networkParameters, stream, blockStore, (new Date()).getTime() / 1000); } } else { // Use checkpoint date (block replay). CheckpointManager.checkpoint(networkParameters, stream, blockStore, checkpointDate.getTime() / 1000); } } finally { if (stream != null) { stream.close(); stream = null; } } } return blockStore; }