code: func (lc *LightChain) GetAncestor(hash common.Hash, number, ancestor uint64, maxNonCanonical *uint64) (common.Hash, uint64) {
  	lc.chainmu.RLock()
  	defer lc.chainmu.RUnlock()
  
  	return lc.hc.GetAncestor(hash, number, ancestor, maxNonCanonical)
  }
docs: // GetAncestor retrieves the Nth ancestor of a given block. It assumes that either the given block or
  // a close ancestor of it is canonical. maxNonCanonical points to a downwards counter limiting the
  // number of blocks to be individually checked before we reach the canonical chain.
  //
  // Note: ancestor == 0 returns the same block, 1 returns its parent and so on.