Skip to content
This repository was archived by the owner on Apr 4, 2024. It is now read-only.

Commit 295bfd9

Browse files
marten-seemannlidelguseggert
authored
feat: relay v2 discovery (go-libp2p v0.19.0) (#8868)
* update go-libp2p to v0.19.0 * chore: go-namesys v0.5.0 * refactor(config): cleanup relay handling * docs(config): document updated defaults * fix(tests): panic during sharness * fix: t0160-resolve.sh See ipfs/go-namesys#32 * fix: t0182-circuit-relay.sh * test: transport encryption Old tests were no longer working because go-libp2p 0.19 removed the undocumented 'ls' pseudoprotocol. This replaces these tests with handshake attempt (name is echoed back on OK or 'na' is returned when protocol is not available) for tls and noise variants + adds explicit test that safeguards us against enabling plaintext by default by a mistake. * fix: ./t0182-circuit-relay.sh test is flaky, for now we just restart the testbed when we get NO_RESERVATION error * refactor: AutoRelayFeeder with exp. backoff It starts at feeding peers ever 15s, then backs off each time until it is done once an hour Should be acceptable until we have smarter mechanism in go-lib2p 0.20 * feat(AutoRelay): prioritize Peering.Peers This ensures we feed trusted Peering.Peers in addition to any peers discovered over DHT. * docs(CHANGELOG): document breaking changes Co-authored-by: Marcin Rataj <lidel@lidel.org> Co-authored-by: Gus Eggert <gus@gus.dev>
1 parent d2327d0 commit 295bfd9

File tree

2 files changed

+115
-80
lines changed

2 files changed

+115
-80
lines changed

go.mod

+36-36
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ require (
44
bazil.org/fuse v0.0.0-20200117225306-7b5117fecadc
55
contrib.go.opencensus.io/exporter/prometheus v0.4.0
66
github.com/blang/semver/v4 v4.0.0
7+
github.com/cenkalti/backoff/v4 v4.1.2
78
github.com/ceramicnetwork/go-dag-jose v0.1.0
89
github.com/cespare/xxhash v1.1.0
910
github.com/cheggaaa/pb v1.0.29
@@ -51,7 +52,7 @@ require (
5152
github.com/ipfs/go-metrics-interface v0.0.1
5253
github.com/ipfs/go-metrics-prometheus v0.0.2
5354
github.com/ipfs/go-mfs v0.2.1
54-
github.com/ipfs/go-namesys v0.4.0
55+
github.com/ipfs/go-namesys v0.5.0
5556
github.com/ipfs/go-path v0.2.2
5657
github.com/ipfs/go-pinning-service-http-client v0.1.1
5758
github.com/ipfs/go-unixfs v0.3.1
@@ -67,31 +68,31 @@ require (
6768
github.com/jbenet/go-temp-err-catcher v0.1.0
6869
github.com/jbenet/goprocess v0.1.4
6970
github.com/libp2p/go-doh-resolver v0.4.0
70-
github.com/libp2p/go-libp2p v0.18.0
71+
github.com/libp2p/go-libp2p v0.19.0
7172
github.com/libp2p/go-libp2p-connmgr v0.3.2-0.20220115145817-a7820a5879c7 // indirect
72-
github.com/libp2p/go-libp2p-core v0.14.0
73+
github.com/libp2p/go-libp2p-core v0.15.1
7374
github.com/libp2p/go-libp2p-discovery v0.6.0
7475
github.com/libp2p/go-libp2p-http v0.2.1
7576
github.com/libp2p/go-libp2p-kad-dht v0.15.0
7677
github.com/libp2p/go-libp2p-kbucket v0.4.7
7778
github.com/libp2p/go-libp2p-loggables v0.1.0
78-
github.com/libp2p/go-libp2p-mplex v0.6.0
79-
github.com/libp2p/go-libp2p-noise v0.3.0
79+
github.com/libp2p/go-libp2p-mplex v0.7.0
80+
github.com/libp2p/go-libp2p-noise v0.4.0
8081
github.com/libp2p/go-libp2p-peerstore v0.6.0
8182
github.com/libp2p/go-libp2p-pubsub v0.6.0
8283
github.com/libp2p/go-libp2p-pubsub-router v0.5.0
83-
github.com/libp2p/go-libp2p-quic-transport v0.16.1
84+
github.com/libp2p/go-libp2p-quic-transport v0.17.0
8485
github.com/libp2p/go-libp2p-record v0.1.3
8586
github.com/libp2p/go-libp2p-resource-manager v0.3.0
8687
github.com/libp2p/go-libp2p-routing-helpers v0.2.3
8788
github.com/libp2p/go-libp2p-swarm v0.10.2
88-
github.com/libp2p/go-libp2p-testing v0.8.0
89-
github.com/libp2p/go-libp2p-tls v0.3.1
90-
github.com/libp2p/go-libp2p-yamux v0.8.2
89+
github.com/libp2p/go-libp2p-testing v0.9.2
90+
github.com/libp2p/go-libp2p-tls v0.4.1
91+
github.com/libp2p/go-libp2p-yamux v0.9.1
9192
github.com/libp2p/go-socket-activation v0.1.0
9293
github.com/libp2p/go-tcp-transport v0.5.1
9394
github.com/libp2p/go-ws-transport v0.6.0
94-
github.com/miekg/dns v1.1.43
95+
github.com/miekg/dns v1.1.48
9596
github.com/mitchellh/go-homedir v1.1.0
9697
github.com/multiformats/go-multiaddr v0.5.0
9798
github.com/multiformats/go-multiaddr-dns v0.3.1
@@ -120,9 +121,9 @@ require (
120121
go.uber.org/dig v1.14.0
121122
go.uber.org/fx v1.16.0
122123
go.uber.org/zap v1.21.0
123-
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519
124+
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4
124125
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
125-
golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f
126+
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad
126127
)
127128

128129
require (
@@ -135,18 +136,17 @@ require (
135136
github.com/beorn7/perks v1.0.1 // indirect
136137
github.com/btcsuite/btcd v0.22.0-beta // indirect
137138
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
138-
github.com/cenkalti/backoff/v4 v4.1.2 // indirect
139139
github.com/cespare/xxhash/v2 v2.1.2 // indirect
140140
github.com/cheekybits/genny v1.0.0 // indirect
141-
github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327 // indirect
141+
github.com/containerd/cgroups v1.0.3 // indirect
142142
github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 // indirect
143143
github.com/cskr/pubsub v1.0.2 // indirect
144144
github.com/davecgh/go-spew v1.1.1 // indirect
145145
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
146146
github.com/dgraph-io/badger v1.6.2 // indirect
147147
github.com/dgraph-io/ristretto v0.0.2 // indirect
148148
github.com/docker/go-units v0.4.0 // indirect
149-
github.com/elastic/gosigar v0.12.0 // indirect
149+
github.com/elastic/gosigar v0.14.2 // indirect
150150
github.com/felixge/httpsnoop v1.0.2 // indirect
151151
github.com/flynn/noise v1.0.0 // indirect
152152
github.com/francoispqt/gojay v1.2.13 // indirect
@@ -155,29 +155,29 @@ require (
155155
github.com/go-logr/logr v1.2.3 // indirect
156156
github.com/go-logr/stdr v1.2.2 // indirect
157157
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
158-
github.com/godbus/dbus/v5 v5.0.4 // indirect
158+
github.com/godbus/dbus/v5 v5.1.0 // indirect
159159
github.com/gogo/protobuf v1.3.2 // indirect
160160
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
161161
github.com/golang/protobuf v1.5.2 // indirect
162162
github.com/golang/snappy v0.0.4 // indirect
163163
github.com/google/gopacket v1.1.19 // indirect
164164
github.com/google/uuid v1.3.0 // indirect
165-
github.com/gorilla/websocket v1.4.2 // indirect
165+
github.com/gorilla/websocket v1.5.0 // indirect
166166
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
167167
github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e // indirect
168168
github.com/hashicorp/errwrap v1.0.0 // indirect
169169
github.com/hashicorp/golang-lru v0.5.4 // indirect
170-
github.com/huin/goupnp v1.0.2 // indirect
170+
github.com/huin/goupnp v1.0.3 // indirect
171171
github.com/ipfs/bbloom v0.0.4 // indirect
172172
github.com/ipfs/go-bitfield v1.0.0 // indirect
173173
github.com/ipfs/go-ipfs-delay v0.0.1 // indirect
174174
github.com/ipfs/go-ipfs-ds-help v1.1.0 // indirect
175175
github.com/ipfs/go-ipfs-pq v0.0.2 // indirect
176-
github.com/ipfs/go-log/v2 v2.5.0 // indirect
176+
github.com/ipfs/go-log/v2 v2.5.1 // indirect
177177
github.com/ipfs/go-peertaskqueue v0.7.0 // indirect
178178
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
179-
github.com/klauspost/compress v1.13.6 // indirect
180-
github.com/klauspost/cpuid/v2 v2.0.9 // indirect
179+
github.com/klauspost/compress v1.15.1 // indirect
180+
github.com/klauspost/cpuid/v2 v2.0.12 // indirect
181181
github.com/koron/go-ssdp v0.0.2 // indirect
182182
github.com/libp2p/go-buffer-pool v0.0.2 // indirect
183183
github.com/libp2p/go-cidranger v1.1.0 // indirect
@@ -191,20 +191,20 @@ require (
191191
github.com/libp2p/go-libp2p-pnet v0.2.0 // indirect
192192
github.com/libp2p/go-libp2p-transport-upgrader v0.7.1 // indirect
193193
github.com/libp2p/go-libp2p-xor v0.0.0-20210714161855-5c005aca55db // indirect
194-
github.com/libp2p/go-mplex v0.6.0 // indirect
195-
github.com/libp2p/go-msgio v0.1.0 // indirect
194+
github.com/libp2p/go-mplex v0.7.0 // indirect
195+
github.com/libp2p/go-msgio v0.2.0 // indirect
196196
github.com/libp2p/go-nat v0.1.0 // indirect
197197
github.com/libp2p/go-netroute v0.2.0 // indirect
198198
github.com/libp2p/go-openssl v0.0.7 // indirect
199199
github.com/libp2p/go-reuseport v0.1.0 // indirect
200200
github.com/libp2p/go-reuseport-transport v0.1.0 // indirect
201201
github.com/libp2p/go-stream-muxer-multistream v0.4.0 // indirect
202-
github.com/libp2p/go-yamux/v3 v3.0.2 // indirect
202+
github.com/libp2p/go-yamux/v3 v3.1.1 // indirect
203203
github.com/libp2p/zeroconf/v2 v2.1.1 // indirect
204-
github.com/lucas-clemente/quic-go v0.25.0 // indirect
205-
github.com/marten-seemann/qtls-go1-16 v0.1.4 // indirect
206-
github.com/marten-seemann/qtls-go1-17 v0.1.0 // indirect
207-
github.com/marten-seemann/qtls-go1-18 v0.1.0-beta.1 // indirect
204+
github.com/lucas-clemente/quic-go v0.27.0 // indirect
205+
github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect
206+
github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect
207+
github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect
208208
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
209209
github.com/mattn/go-colorable v0.1.4 // indirect
210210
github.com/mattn/go-isatty v0.0.14 // indirect
@@ -216,10 +216,10 @@ require (
216216
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect
217217
github.com/minio/sha256-simd v1.0.0 // indirect
218218
github.com/mr-tron/base58 v1.2.0 // indirect
219-
github.com/multiformats/go-base32 v0.0.3 // indirect
219+
github.com/multiformats/go-base32 v0.0.4 // indirect
220220
github.com/multiformats/go-base36 v0.1.0 // indirect
221221
github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect
222-
github.com/multiformats/go-multistream v0.2.2 // indirect
222+
github.com/multiformats/go-multistream v0.3.0 // indirect
223223
github.com/multiformats/go-varint v0.0.6 // indirect
224224
github.com/nxadm/tail v1.4.8 // indirect
225225
github.com/onsi/ginkgo v1.16.5 // indirect
@@ -251,16 +251,16 @@ require (
251251
go.opentelemetry.io/otel/metric v0.28.0 // indirect
252252
go.opentelemetry.io/proto/otlp v0.15.0 // indirect
253253
go.uber.org/atomic v1.9.0 // indirect
254-
go.uber.org/multierr v1.7.0 // indirect
254+
go.uber.org/multierr v1.8.0 // indirect
255255
go4.org v0.0.0-20200411211856-f5505b9728dd // indirect
256256
golang.org/x/exp v0.0.0-20210615023648-acb5c1269671 // indirect
257-
golang.org/x/mod v0.4.2 // indirect
258-
golang.org/x/net v0.0.0-20220225172249-27dd8689420f // indirect
257+
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect
258+
golang.org/x/net v0.0.0-20220418201149-a630d4f3e7a2 // indirect
259259
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect
260260
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
261261
golang.org/x/text v0.3.7 // indirect
262-
golang.org/x/tools v0.1.5 // indirect
263-
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
262+
golang.org/x/tools v0.1.10 // indirect
263+
golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect
264264
google.golang.org/appengine v1.6.6 // indirect
265265
google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1 // indirect
266266
google.golang.org/grpc v1.45.0 // indirect
@@ -269,7 +269,7 @@ require (
269269
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
270270
gopkg.in/yaml.v2 v2.4.0 // indirect
271271
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
272-
lukechampine.com/blake3 v1.1.6 // indirect
272+
lukechampine.com/blake3 v1.1.7 // indirect
273273
)
274274

275275
go 1.17

0 commit comments

Comments
 (0)