func loadProvSet(dstore ds.Datastore, k key.Key) (*providerSet, error) { res, err := dstore.Query(dsq.Query{Prefix: mkProvKey(k).String()}) if err != nil { return nil, err } out := newProviderSet() for e := range res.Next() { if e.Error != nil { log.Error("got an error: ", e.Error) continue } parts := strings.Split(e.Key, "/") if len(parts) != 4 { log.Warning("incorrectly formatted key: ", e.Key) continue } decstr, err := base32.RawStdEncoding.DecodeString(parts[len(parts)-1]) if err != nil { log.Error("base32 decoding error: ", err) continue } pid := peer.ID(decstr) t, err := readTimeValue(e.Value) if err != nil { log.Warning("parsing providers record from disk: ", err) continue } out.setVal(pid, t) } return out, nil }