code: func (b *BlockChain) HeaderByHash(hash *chainhash.Hash) (wire.BlockHeader, error) {
  	node := b.index.LookupNode(hash)
  	if node == nil {
  		err := fmt.Errorf("block %s is not known", hash)
  		return wire.BlockHeader{}, err
  	}
  
  	return node.Header(), nil
  }
docs: // HeaderByHash returns the block header identified by the given hash or an
  // error if it doesn't exist. Note that this will return headers from both the
  // main and side chains.