diff --git a/go.mod b/go.mod index e6469cf153..9d11c2ea4e 100644 --- a/go.mod +++ b/go.mod @@ -22,6 +22,7 @@ require ( github.com/ipfs/interface-go-ipfs-core v0.2.6 github.com/juju/fslock v0.0.0-20160525022230-4d5c94c67b4b github.com/libp2p/go-libp2p v0.7.4 + github.com/libp2p/go-libp2p-circuit v0.2.1 github.com/libp2p/go-libp2p-core v0.5.1 github.com/libp2p/go-libp2p-discovery v0.3.0 github.com/libp2p/go-libp2p-kad-dht v0.6.2 diff --git a/go/cmd/berty/main.go b/go/cmd/berty/main.go index 61e13f83f4..70c44c3c75 100644 --- a/go/cmd/berty/main.go +++ b/go/cmd/berty/main.go @@ -52,7 +52,7 @@ import ( // Default ipfs bootstrap & rendezvous point server -const RendezVousServer = "/ip4/163.172.143.28/tcp/4040/p2p/QmeMTMQoLxmMwGZQ5YyuPQn6cE9DbHucwZQk7TaoKodMcY" +const RendezVousServer = "/ip4/167.99.223.55/tcp/4040/p2p/QmTo3RS6Uc8aCS5Cxx8EBHkNCe4C7vKRanbMEboxkA92Cn" var DefaultBootstrap = ipfs_cfg.DefaultBootstrapAddresses @@ -194,14 +194,15 @@ func main() { monitorPeers(ctx, logger, node.PeerHost, rdvpeer.ID) }() - for { - if err := node.PeerHost.Connect(ctx, *rdvpeer); err != nil { - logger.Error("cannot dial rendez-vous point: %v", zap.Error(err)) - } else { - break - } - time.Sleep(time.Second) - } + // uncomment this to force connection with rdvp + // for { + // if err := node.PeerHost.Connect(ctx, *rdvpeer); err != nil { + // logger.Error("cannot dial rendez-vous point: %v", zap.Error(err)) + // } else { + // break + // } + // time.Sleep(time.Second) + // } routing := <-crouting defer routing.IpfsDHT.Close() diff --git a/go/cmd/rdvp/main.go b/go/cmd/rdvp/main.go index 47946a388c..951e5aa20a 100644 --- a/go/cmd/rdvp/main.go +++ b/go/cmd/rdvp/main.go @@ -15,6 +15,7 @@ import ( "berty.tech/berty/v2/go/internal/ipfsutil" "berty.tech/berty/v2/go/pkg/errcode" libp2p "github.com/libp2p/go-libp2p" + libp2p_cicuit "github.com/libp2p/go-libp2p-circuit" libp2p_ci "github.com/libp2p/go-libp2p-core/crypto" // nolint:staticcheck libp2p_host "github.com/libp2p/go-libp2p-core/host" libp2p_peer "github.com/libp2p/go-libp2p-core/peer" @@ -128,9 +129,19 @@ func main() { // init p2p host host, err := libp2p.New(ctx, + // default tpt + quic libp2p.DefaultTransports, libp2p.Transport(libp2p_quic.NewTransport), + + // Nat & Relay service + libp2p.EnableNATService(), + libp2p.DefaultStaticRelays(), + libp2p.EnableRelay(libp2p_cicuit.OptHop), + + // swarm listeners libp2p.ListenAddrs(listeners...), + + // identity libp2p.Identity(priv), ) if err != nil { diff --git a/go/internal/ipfsutil/cfg.go b/go/internal/ipfsutil/cfg.go index 1e1265fa7a..1f76686d83 100644 --- a/go/internal/ipfsutil/cfg.go +++ b/go/internal/ipfsutil/cfg.go @@ -82,6 +82,7 @@ func CreateRepo(dstore ipfs_datastore.Batching, opts *BuildOpts) (ipfs_repo.Repo fmt.Printf("IPFS listening on %s\n", strings.Join(c.Addresses.Swarm, ", ")) + c.Experimental.QUIC = true c.Identity.PeerID = pid.Pretty() c.Identity.PrivKey = base64.StdEncoding.EncodeToString(privkeyb) c.Discovery.MDNS.Enabled = true @@ -90,9 +91,7 @@ func CreateRepo(dstore ipfs_datastore.Batching, opts *BuildOpts) (ipfs_repo.Repo c.Swarm.EnableAutoNATService = true c.Swarm.EnableAutoRelay = true - if !opts.ClientMode { - c.Swarm.EnableRelayHop = true - } + c.Swarm.EnableRelayHop = false return &ipfs_repo.Mock{ D: dstore,