code: func makeHeaderChain(parent *types.Header, n int, engine consensus.Engine, db ethdb.Database, seed int) []*types.Header {
  	blocks := makeBlockChain(types.NewBlockWithHeader(parent), n, engine, db, seed)
  	headers := make([]*types.Header, len(blocks))
  	for i, block := range blocks {
  		headers[i] = block.Header()
  	}
  	return headers
  }
docs: // makeHeaderChain creates a deterministic chain of headers rooted at parent.