private void createNewStore(NetworkParameters params) throws BlockStoreException {
   try {
     // Set up the genesis block. When we start out fresh, it is by
     // definition the top of the chain.
     StoredBlock storedGenesisHeader =
         new StoredBlock(
             params.getGenesisBlock().cloneAsHeader(), params.getGenesisBlock().getWork(), 0);
     // The coinbase in the genesis block is not spendable. This is because of how the reference
     // client inits
     // its database - the genesis transaction isn't actually in the db so its spent flags can
     // never be updated.
     List<Transaction> genesisTransactions = Lists.newLinkedList();
     StoredUndoableBlock storedGenesis =
         new StoredUndoableBlock(params.getGenesisBlock().getHash(), genesisTransactions);
     put(storedGenesisHeader, storedGenesis);
     setChainHead(storedGenesisHeader);
     setVerifiedChainHead(storedGenesisHeader);
   } catch (VerificationException e) {
     throw new RuntimeException(e); // Cannot happen.
   }
 }
Пример #2
0
 private void initNewStore(NetworkParameters params) throws Exception {
   byte[] header;
   header = HEADER_MAGIC.getBytes("US-ASCII");
   buffer.put(header);
   // Insert the genesis block.
   lock.lock();
   try {
     setRingCursor(buffer, FILE_PROLOGUE_BYTES);
   } finally {
     lock.unlock();
   }
   Block genesis = params.getGenesisBlock().cloneAsHeader();
   StoredBlock storedGenesis = new StoredBlock(genesis, genesis.getWork(), 0);
   put(storedGenesis);
   setChainHead(storedGenesis);
 }