code: func (p *BlockPuller) HeightsByEndpoints() (map[string]uint64, error) {
  	endpointsInfo := p.probeEndpoints(0)
  	res := make(map[string]uint64)
  	for endpoint, endpointInfo := range endpointsInfo.byEndpoints() {
  		endpointInfo.conn.Close()
  		res[endpoint] = endpointInfo.lastBlockSeq + 1
  	}
  	p.Logger.Info("Returning the heights of OSNs mapped by endpoints", res)
  	return res, endpointsInfo.err
  }
docs: // HeightsByEndpoints returns the block heights by endpoints of orderers