code: func NewBlockchain(db dbm.DB, genesisDoc *genesis.GenesisDoc) *Blockchain {
  	bc := &Blockchain{
  		db:                    db,
  		genesisHash:           genesisDoc.Hash(),
  		genesisDoc:            *genesisDoc,
  		chainID:               genesisDoc.ChainID(),
  		lastBlockTime:         genesisDoc.GenesisTime,
  		appHashAfterLastBlock: genesisDoc.Hash(),
  	}
  	return bc
  }
docs: // NewBlockchain returns a pointer to blockchain state initialised from genesis