libp2p host: add secio as alternative, do not rewrap host
Only use QUIC for tests, as TCP+TLS has proven very unreliable.
This commit is contained in:
parent
56ef75b50c
commit
669e75aefc
|
@ -877,8 +877,8 @@ func (c *Cluster) Join(ctx context.Context, addr ma.Multiaddr) error {
|
|||
|
||||
logger.Debugf("Join(%s)", addr)
|
||||
|
||||
// Add peer to peerstore so we can talk to it (and connect)
|
||||
pid, err := c.peerManager.ImportPeer(addr, true, peerstore.PermanentAddrTTL)
|
||||
// Add peer to peerstore so we can talk to it
|
||||
pid, err := c.peerManager.ImportPeer(addr, false, peerstore.PermanentAddrTTL)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ import (
|
|||
pnet "github.com/libp2p/go-libp2p-pnet"
|
||||
pubsub "github.com/libp2p/go-libp2p-pubsub"
|
||||
libp2pquic "github.com/libp2p/go-libp2p-quic-transport"
|
||||
tls "github.com/libp2p/go-libp2p-tls"
|
||||
secio "github.com/libp2p/go-libp2p-secio"
|
||||
libp2ptls "github.com/libp2p/go-libp2p-tls"
|
||||
routedhost "github.com/libp2p/go-libp2p/p2p/host/routed"
|
||||
)
|
||||
|
||||
|
@ -38,12 +39,15 @@ func NewClusterHost(
|
|||
relayOpts = append(relayOpts, relay.OptHop)
|
||||
}
|
||||
|
||||
var idht *dht.IpfsDHT
|
||||
var err error
|
||||
opts := []libp2p.Option{
|
||||
libp2p.ListenAddrs(cfg.ListenAddr...),
|
||||
libp2p.NATPortMap(),
|
||||
libp2p.ConnectionManager(connman),
|
||||
libp2p.Routing(func(h host.Host) (routing.PeerRouting, error) {
|
||||
return dht.New(ctx, h)
|
||||
idht, err = newDHT(ctx, h)
|
||||
return idht, err
|
||||
}),
|
||||
libp2p.EnableRelay(relayOpts...),
|
||||
libp2p.EnableAutoRelay(),
|
||||
|
@ -65,13 +69,7 @@ func NewClusterHost(
|
|||
return nil, nil, nil, err
|
||||
}
|
||||
|
||||
idht, err := newDHT(ctx, h)
|
||||
if err != nil {
|
||||
h.Close()
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
|
||||
return routedHost(h, idht), psub, idht, nil
|
||||
return h, psub, idht, nil
|
||||
}
|
||||
|
||||
func newHost(ctx context.Context, secret []byte, priv crypto.PrivKey, opts ...libp2p.Option) (host.Host, error) {
|
||||
|
@ -91,8 +89,14 @@ func newHost(ctx context.Context, secret []byte, priv crypto.PrivKey, opts ...li
|
|||
finalOpts := []libp2p.Option{
|
||||
libp2p.Identity(priv),
|
||||
libp2p.PrivateNetwork(prot),
|
||||
libp2p.Security(tls.ID, tls.New),
|
||||
libp2p.ChainOptions(libp2p.Transport(libp2pquic.NewTransport), libp2p.DefaultTransports),
|
||||
libp2p.ChainOptions(
|
||||
libp2p.Security(libp2ptls.ID, libp2ptls.New),
|
||||
libp2p.Security(secio.ID, secio.New),
|
||||
),
|
||||
libp2p.ChainOptions(
|
||||
libp2p.Transport(libp2pquic.NewTransport),
|
||||
libp2p.DefaultTransports,
|
||||
),
|
||||
}
|
||||
finalOpts = append(finalOpts, opts...)
|
||||
|
||||
|
|
3
go.mod
3
go.mod
|
@ -56,8 +56,9 @@ require (
|
|||
github.com/libp2p/go-libp2p-pnet v0.1.0
|
||||
github.com/libp2p/go-libp2p-protocol v0.1.0
|
||||
github.com/libp2p/go-libp2p-pubsub v0.1.1
|
||||
github.com/libp2p/go-libp2p-quic-transport v0.1.2-0.20190830164807-17543aa14ed2
|
||||
github.com/libp2p/go-libp2p-quic-transport v0.1.1
|
||||
github.com/libp2p/go-libp2p-raft v0.1.3
|
||||
github.com/libp2p/go-libp2p-secio v0.2.0
|
||||
github.com/libp2p/go-libp2p-tls v0.1.1
|
||||
github.com/libp2p/go-ws-transport v0.1.2
|
||||
github.com/multiformats/go-multiaddr v0.1.1
|
||||
|
|
15
go.sum
15
go.sum
|
@ -498,10 +498,11 @@ github.com/libp2p/go-libp2p-protocol v0.1.0 h1:HdqhEyhg0ToCaxgMhnOmUO8snQtt/kQlc
|
|||
github.com/libp2p/go-libp2p-protocol v0.1.0/go.mod h1:KQPHpAabB57XQxGrXCNvbL6UEXfQqUgC/1adR2Xtflk=
|
||||
github.com/libp2p/go-libp2p-pubsub v0.1.1 h1:phDnQvO3H3hAgaEEQi6yt3LILqIYVXaw05bxzezrEwQ=
|
||||
github.com/libp2p/go-libp2p-pubsub v0.1.1/go.mod h1:ZwlKzRSe1eGvSIdU5bD7+8RZN/Uzw0t1Bp9R1znpR/Q=
|
||||
github.com/libp2p/go-libp2p-raft v0.1.4 h1:mE/RH6Q/QjwXXl1eWkbSpF6EjuD4pt2E9f94rkMalUE=
|
||||
github.com/libp2p/go-libp2p-raft v0.1.4/go.mod h1:+JGEXVP5ziDLtdDDRqvFjWN3Vsa6ahdLZNvFmTiN9gc=
|
||||
github.com/libp2p/go-libp2p-quic-transport v0.1.2-0.20190830164807-17543aa14ed2 h1:KP4b2LodGnu82AvQrwjWGAZfTFPPBcVvYQCboLVEk7g=
|
||||
github.com/libp2p/go-libp2p-quic-transport v0.1.2-0.20190830164807-17543aa14ed2/go.mod h1:h9PVZIZFhyPugM4FC5sVTnSCa2LudHBxtmW7Zj8eQVgithub.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw=
|
||||
github.com/libp2p/go-libp2p-quic-transport v0.1.1 h1:MFMJzvsxIEDEVKzO89BnB/FgvMj9WI4GDGUW2ArDPUA=
|
||||
github.com/libp2p/go-libp2p-quic-transport v0.1.1/go.mod h1:wqG/jzhF3Pu2NrhJEvE+IE0NTHNXslOPn9JQzyCAxzU=
|
||||
github.com/libp2p/go-libp2p-raft v0.1.3 h1:XcrMI3XZqZSHQWnsG8eqM1pQGoiztAj1VG1om6os1Vs=
|
||||
github.com/libp2p/go-libp2p-raft v0.1.3/go.mod h1:JzLdxSiY4UR7WcVSFWcfPyDKf+9wlXFyNS5Z59eHoBA=
|
||||
github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw=
|
||||
github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q=
|
||||
github.com/libp2p/go-libp2p-record v0.1.0 h1:wHwBGbFzymoIl69BpgwIu0O6ta3TXGcMPvHUAcodzRc=
|
||||
github.com/libp2p/go-libp2p-record v0.1.0/go.mod h1:ujNc8iuE5dlKWVy6wuL6dd58t0n7xI4hAIl8pE6wu5Q=
|
||||
|
@ -604,9 +605,8 @@ github.com/lucas-clemente/quic-go v0.12.0 h1:dYHUyB50gEQlK3KqytmNySzuyzAcaQ3iuI2
|
|||
github.com/lucas-clemente/quic-go v0.12.0/go.mod h1:UXJJPE4RfFef/xPO5wQm0tITK8gNfqwTxjbE7s3Vb8s=
|
||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/marten-seemann/qpack v0.1.0/go.mod h1:LFt1NU/Ptjip0C2CPkhimBz5CGE3WGDAUWqna+CNTrI=
|
||||
github.com/marten-seemann/qtls v0.3.2 h1:O7awy4bHEzSX/K3h+fZig3/Vo03s/RxlxgsAk9sYamI=
|
||||
github.com/marten-seemann/qtls v0.3.2/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk=
|
||||
github.com/marten-seemann/qtls v0.2.3 h1:0yWJ43C62LsZt08vuQJDK1uC1czUc3FJeCLPoNAI4vA=
|
||||
github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk=
|
||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg=
|
||||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
||||
|
@ -872,7 +872,6 @@ golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73r
|
|||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190227160552-c95aed5357e7 h1:C2F/nMkR/9sfUTpvR3QrjBuTdvMUC/cFajkphs1YLQo=
|
||||
golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190228165749-92fc7df08ae7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
|
||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
|
|
|
@ -297,7 +297,9 @@ func createHosts(t *testing.T, clusterSecret []byte, nClusters int) ([]host.Host
|
|||
pubsubs := make([]*pubsub.PubSub, nClusters, nClusters)
|
||||
dhts := make([]*dht.IpfsDHT, nClusters, nClusters)
|
||||
|
||||
addr, _ := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/0")
|
||||
// Avoid tcp+tls testing for the moment:
|
||||
// https://github.com/libp2p/go-libp2p/issues/732
|
||||
// tcpaddr, _ := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/0")
|
||||
quicAddr, _ := ma.NewMultiaddr("/ip4/127.0.0.1/udp/0/quic")
|
||||
for i := range hosts {
|
||||
priv, _, err := crypto.GenerateKeyPair(crypto.RSA, 2048)
|
||||
|
@ -305,7 +307,7 @@ func createHosts(t *testing.T, clusterSecret []byte, nClusters int) ([]host.Host
|
|||
t.Fatal(err)
|
||||
}
|
||||
|
||||
h, p, d := createHost(t, priv, clusterSecret, []ma.Multiaddr{addr, quicAddr})
|
||||
h, p, d := createHost(t, priv, clusterSecret, []ma.Multiaddr{quicAddr})
|
||||
hosts[i] = h
|
||||
dhts[i] = d
|
||||
pubsubs[i] = p
|
||||
|
@ -377,7 +379,6 @@ func createClusters(t *testing.T) ([]*Cluster, []*test.IpfsMock) {
|
|||
clusters[0] = createCluster(t, hosts[0], dhts[0], cfgs[0], stores[0], cons[0], apis[0], ipfss[0], trackers[0], mons[0], allocs[0], infs[0], tracers[0])
|
||||
<-clusters[0].Ready()
|
||||
bootstrapAddr := clusterAddr(clusters[0])
|
||||
|
||||
// Start the rest and join
|
||||
for i := 1; i < nClusters; i++ {
|
||||
clusters[i] = createCluster(t, hosts[i], dhts[i], cfgs[i], stores[i], cons[i], apis[i], ipfss[i], trackers[i], mons[i], allocs[i], infs[i], tracers[i])
|
||||
|
|
Loading…
Reference in New Issue
Block a user