// NewChecksumReader creates a new ChecksumReader for the given block. func NewChecksumReader(block *hdfs.LocatedBlockProto) *ChecksumReader { locs := block.GetLocs() datanodes := make([]string, len(locs)) for i, loc := range locs { dn := loc.GetId() datanodes[i] = fmt.Sprintf("%s:%d", dn.GetIpAddr(), dn.GetXferPort()) } return &ChecksumReader{ block: block, datanodes: newDatanodeFailover(datanodes), } }