Class BlockFileLoader

  • All Implemented Interfaces:
    java.lang.Iterable<Block>

    public class BlockFileLoader
    extends java.lang.Object
    implements java.lang.Iterable<Block>

    This class reads block files stored in the Bitcoin Core format. This is simply a way to concatenate blocks together. Importing block data with this tool can be a lot faster than syncing over the network, if you have the files available.

    In order to comply with Iterable, BlockFileLoader.BlockFileIterator swallows a lot of IOExceptions, which may result in a few blocks being missed followed by a huge set of orphan blocks.

    To blindly import all files which can be found in Bitcoin Core (version 0.8 or higher) datadir automatically, try this code fragment: BlockFileLoader loader = new BlockFileLoader(BlockFileLoader.getReferenceClientBlockFileList()); for (Block block : loader) { try { chain.add(block); } catch (Exception e) { } }

    • Constructor Detail

      • BlockFileLoader

        public BlockFileLoader​(Network network,
                               java.io.File blocksDir)
      • BlockFileLoader

        public BlockFileLoader​(Network network,
                               java.util.List<java.io.File> files)
      • BlockFileLoader

        @Deprecated
        public BlockFileLoader​(NetworkParameters params,
                               java.io.File blocksDir)
        Deprecated.
      • BlockFileLoader

        @Deprecated
        public BlockFileLoader​(NetworkParameters params,
                               java.util.List<java.io.File> files)
        Deprecated.
    • Method Detail

      • getReferenceClientBlockFileList

        public static java.util.List<java.io.File> getReferenceClientBlockFileList​(java.io.File blocksDir)
        Gets the list of files which contain blocks from Bitcoin Core.
      • getReferenceClientBlockFileList

        public static java.util.List<java.io.File> getReferenceClientBlockFileList()
      • defaultBlocksDir

        public static java.io.File defaultBlocksDir()
      • iterator

        public java.util.Iterator<Block> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<Block>
      • stream

        public java.util.stream.Stream<Block> stream()
      • streamBuffers

        public java.util.stream.Stream<java.nio.ByteBuffer> streamBuffers()
      • fileBlockStream

        protected java.util.stream.Stream<java.nio.ByteBuffer> fileBlockStream​(java.io.File file)
      • fileBlockSpliterator

        protected java.util.Spliterator<java.nio.ByteBuffer> fileBlockSpliterator​(java.io.File file)