func SetupIpfs() (*core.IpfsNode, error) { // Assume the user has run 'ipfs init' r := fsrepo.At("~/.ipfs") if err := r.Open(); err != nil { return nil, err } builder := core.NewNodeBuilder().Online().SetRepo(r) return builder.Build(context.Background()) }
func main() { if len(os.Args) < 2 { fmt.Println("Please give a peer ID as an argument") return } target, err := peer.IDB58Decode(os.Args[1]) if err != nil { panic(err) } // Basic ipfsnode setup r := fsrepo.At("~/.ipfs") if err := r.Open(); err != nil { panic(err) } nb := core.NewNodeBuilder().Online() nb.SetRepo(r) ctx, cancel := context.WithCancel(context.Background()) defer cancel() nd, err := nb.Build(ctx) if err != nil { panic(err) } fmt.Printf("I am peer %s dialing %s\n", nd.Identity, target) con, err := corenet.Dial(nd, target, "/app/whyrusleeping") if err != nil { fmt.Println(err) return } io.Copy(os.Stdout, con) }