func main() { l := len(os.Args) if l != 2 && l != 3 { usageError() } countuint64, err := humanize.ParseBytes(os.Args[1]) if err != nil { usageError() } count := int64(countuint64) if l == 2 { err = random.WriteRandomBytes(count, os.Stdout) } else { seed, err2 := strconv.ParseInt(os.Args[2], 10, 64) if err2 != nil { usageError() } err = random.WritePseudoRandomBytes(count, os.Stdout, seed) } if err != nil { die(err) } }
func runFileAddingWorker(n *core.IpfsNode) error { errs := make(chan error) go func() { var i int64 for i = 1; i < math.MaxInt32; i++ { piper, pipew := io.Pipe() go func() { defer pipew.Close() if err := random.WritePseudoRandomBytes(sizeOfIthFile(i), pipew, *seed); err != nil { errs <- err } }() k, err := coreunix.Add(n, piper) if err != nil { errs <- err } log.Println("added file", "seed", *seed, "#", i, "key", k, "size", unit.Information(sizeOfIthFile(i))) time.Sleep(1 * time.Second) } }() var i int64 for i = 0; i < math.MaxInt32; i++ { err := <-errs if err != nil { log.Fatal(err) } } return nil }
func runFileCattingWorker(ctx context.Context, n *core.IpfsNode) error { conf, err := config.Init(ioutil.Discard, *nBitsForKeypair) if err != nil { return err } r := &repo.Mock{ D: ds2.CloserWrap(syncds.MutexWrap(datastore.NewMapDatastore())), C: *conf, } dummy, err := core.NewNode(ctx, &core.BuildCfg{ Repo: r, }) if err != nil { return err } errs := make(chan error) go func() { defer dummy.Close() var i int64 = 1 for { buf := new(bytes.Buffer) if err := random.WritePseudoRandomBytes(sizeOfIthFile(i), buf, *seed); err != nil { errs <- err } // add to a dummy node to discover the key k, err := coreunix.Add(dummy, bytes.NewReader(buf.Bytes())) if err != nil { errs <- err } e := elog.EventBegin(ctx, "cat", logging.LoggableF(func() map[string]interface{} { return map[string]interface{}{ "key": k, "localPeer": n.Identity, } })) if r, err := coreunix.Cat(ctx, n, k); err != nil { e.Done() log.Printf("failed to cat file. seed: %d #%d key: %s err: %s", *seed, i, k, err) } else { log.Println("found file", "seed", *seed, "#", i, "key", k, "size", unit.Information(sizeOfIthFile(i))) io.Copy(ioutil.Discard, r) e.Done() log.Println("catted file", "seed", *seed, "#", i, "key", k, "size", unit.Information(sizeOfIthFile(i))) i++ } time.Sleep(time.Second) } }() err = <-errs if err != nil { log.Fatal(err) } return nil }
func RandomBytes(n int64) []byte { data := new(bytes.Buffer) random.WritePseudoRandomBytes(n, data, kSeed) return data.Bytes() }
func NewReader(bufsize int) (*Reader, error) { buf := bytes.NewBuffer(nil) err := random.WritePseudoRandomBytes(int64(bufsize), buf, rand.Int63()) return &Reader{Buf: buf.Bytes()}, err }