@cryptotaxi247 / kubo / commits / 232ccb4e5

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 https://github.com/ipfs/go-namesys/pull/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>

Marten Seemann committed Apr 28, 2022 at 17:13 UTC 232ccb4e55e2fb8b54ebf7f52ec0e0a5b6000f44
16 files changed +310 -171
CHANGELOG.md
+4 -1
@@ -15,7 +15,10 @@
15 - `ipfs cid codecs` command
16 - it now lists codecs from https://github.com/multiformats/go-multicodec
17 - `ipfs cid codecs --supported` can be passed to only show codecs supported in various go-ipfs commands
18 -
18 +- `Swarm` configuration
19 + - Daemon will refuse to start if long-deprecated RelayV1 config key `Swarm.EnableAutoRelay` or `Swarm.DisableRelay` is set to `true`
20 + - When `Swarm.Transports.Network.Relay` is disabled, `Swarm.RelayService` and `Swarm.RelayClient` are also disabled (unless user explicitly enabled them).
21 + - If user enabled them manually, then we error on start and inform they require `Swarm.Transports.Network.Relay`
22
23 ## v0.12.2 and v0.11.1 2022-04-08
24
core/node/groups.go
+28 -22
@@ -8,7 +8,7 @@ import (
8
9 blockstore "github.com/ipfs/go-ipfs-blockstore"
10 util "github.com/ipfs/go-ipfs-util"
11 - config "github.com/ipfs/go-ipfs/config"
11 + "github.com/ipfs/go-ipfs/config"
12 "github.com/ipfs/go-log"
13 "github.com/libp2p/go-libp2p-core/peer"
14 pubsub "github.com/libp2p/go-libp2p-pubsub"
@@ -111,52 +111,57 @@ func LibP2P(bcfg *BuildCfg, cfg *config.Config) fx.Option {
111 autonat = fx.Provide(libp2p.AutoNATService(cfg.AutoNAT.Throttle))
112 }
113
114 - // If `cfg.Swarm.DisableRelay` is set and `Network.RelayTransport` isn't, use the former.
115 - enableRelayTransport := cfg.Swarm.Transports.Network.Relay.WithDefault(!cfg.Swarm.DisableRelay) // nolint
114 + enableRelayTransport := cfg.Swarm.Transports.Network.Relay.WithDefault(true) // nolint
115 + enableRelayService := cfg.Swarm.RelayService.Enabled.WithDefault(enableRelayTransport)
116 + enableRelayClient := cfg.Swarm.RelayClient.Enabled.WithDefault(enableRelayTransport)
117
117 - // Warn about a deprecated option.
118 + // Log error when relay subsystem could not be initialized due to missing dependency
119 + if !enableRelayTransport {
120 + if enableRelayService {
121 + logger.Fatal("Failed to enable `Swarm.RelayService`, it requires `Swarm.Transports.Network.Relay` to be true.")
122 + }
123 + if enableRelayClient {
124 + logger.Fatal("Failed to enable `Swarm.RelayClient`, it requires `Swarm.Transports.Network.Relay` to be true.")
125 + }
126 + }
127 +
128 + // Force users to migrate old config.
129 // nolint
130 if cfg.Swarm.DisableRelay {
120 - logger.Error("The 'Swarm.DisableRelay' config field is deprecated.")
121 - if enableRelayTransport {
122 - logger.Error("'Swarm.DisableRelay' has been overridden by 'Swarm.Transports.Network.Relay'")
123 - } else {
124 - logger.Error("Use the 'Swarm.Transports.Network.Relay' config field instead")
125 - }
131 + logger.Fatal("The 'Swarm.DisableRelay' config field was removed." +
132 + "Use the 'Swarm.Transports.Network.Relay' instead.")
133 }
134 // nolint
135 if cfg.Swarm.EnableAutoRelay {
129 - logger.Error("The 'Swarm.EnableAutoRelay' config field is deprecated.")
130 - if cfg.Swarm.RelayClient.Enabled == config.Default {
131 - logger.Error("Use the 'Swarm.AutoRelay.Enabled' config field instead")
132 - } else {
133 - logger.Error("'Swarm.EnableAutoRelay' has been overridden by 'Swarm.AutoRelay.Enabled'")
134 - }
136 + logger.Fatal("The 'Swarm.EnableAutoRelay' config field was removed." +
137 + "Use the 'Swarm.RelayClient.Enabled' instead.")
138 }
139 // nolint
140 if cfg.Swarm.EnableRelayHop {
138 - logger.Fatal("The `Swarm.EnableRelayHop` config field is ignored.\n" +
141 + logger.Fatal("The `Swarm.EnableRelayHop` config field was removed.\n" +
142 "Use `Swarm.RelayService` to configure the circuit v2 relay.\n" +
140 - "If you want to continue running a circuit v1 relay, please use the standalone relay daemon: https://github.com/libp2p/go-libp2p-relay-daemon (with RelayV1.Enabled: true)")
143 + "If you want to continue running a circuit v1 relay, please use the standalone relay daemon: https://dist.ipfs.io/#libp2p-relay-daemon (with RelayV1.Enabled: true)")
144 }
145
146 + peerChan := make(libp2p.AddrInfoChan)
147 // Gather all the options
148 opts := fx.Options(
149 BaseLibP2P,
150
151 + fx.Supply(peerChan),
152 +
153 // Services (resource management)
154 fx.Provide(libp2p.ResourceManager(cfg.Swarm)),
155 fx.Provide(libp2p.AddrFilters(cfg.Swarm.AddrFilters)),
156 fx.Provide(libp2p.AddrsFactory(cfg.Addresses.Announce, cfg.Addresses.AppendAnnounce, cfg.Addresses.NoAnnounce)),
157 fx.Provide(libp2p.SmuxTransport(cfg.Swarm.Transports)),
158 fx.Provide(libp2p.RelayTransport(enableRelayTransport)),
153 - fx.Provide(libp2p.RelayService(cfg.Swarm.RelayService.Enabled.WithDefault(true), cfg.Swarm.RelayService)),
159 + fx.Provide(libp2p.RelayService(enableRelayService, cfg.Swarm.RelayService)),
160 fx.Provide(libp2p.Transports(cfg.Swarm.Transports)),
161 fx.Invoke(libp2p.StartListening(cfg.Addresses.Swarm)),
162 fx.Invoke(libp2p.SetupDiscovery(cfg.Discovery.MDNS.Enabled, cfg.Discovery.MDNS.Interval)),
163 fx.Provide(libp2p.ForceReachability(cfg.Internal.Libp2pForceReachability)),
158 - fx.Provide(libp2p.StaticRelays(cfg.Swarm.RelayClient.StaticRelays)),
159 - fx.Provide(libp2p.HolePunching(cfg.Swarm.EnableHolePunching, cfg.Swarm.RelayClient.Enabled.WithDefault(false))),
164 + fx.Provide(libp2p.HolePunching(cfg.Swarm.EnableHolePunching, enableRelayClient)),
165
166 fx.Provide(libp2p.Security(!bcfg.DisableEncryptedConnections, cfg.Swarm.Transports)),
167
@@ -166,7 +171,8 @@ func LibP2P(bcfg *BuildCfg, cfg *config.Config) fx.Option {
171
172 maybeProvide(libp2p.BandwidthCounter, !cfg.Swarm.DisableBandwidthMetrics),
173 maybeProvide(libp2p.NatPortMap, !cfg.Swarm.DisableNatPortMap),
169 - maybeProvide(libp2p.AutoRelay(len(cfg.Swarm.RelayClient.StaticRelays) == 0), cfg.Swarm.RelayClient.Enabled.WithDefault(false)),
174 + maybeProvide(libp2p.AutoRelay(cfg.Swarm.RelayClient.StaticRelays, peerChan), enableRelayClient),
175 + maybeInvoke(libp2p.AutoRelayFeeder(cfg.Peering), enableRelayClient),
176 autonat,
177 connmgr,
178 ps,
core/node/libp2p/relay.go
+19 -23
@@ -1,10 +1,10 @@
1 package libp2p
2
3 import (
4 - config "github.com/ipfs/go-ipfs/config"
5 - "github.com/libp2p/go-libp2p-core/peer"
6 -
4 + "github.com/ipfs/go-ipfs/config"
5 "github.com/libp2p/go-libp2p"
6 + "github.com/libp2p/go-libp2p-core/peer"
7 + "github.com/libp2p/go-libp2p/p2p/host/autorelay"
8 "github.com/libp2p/go-libp2p/p2p/protocol/circuitv2/relay"
9 )
10
@@ -43,30 +43,26 @@ func RelayService(enable bool, relayOpts config.RelayService) func() (opts Libp2
43 }
44 }
45
46 -func StaticRelays(relays []string) func() (opts Libp2pOpts, err error) {
46 +func AutoRelay(staticRelays []string, peerChan <-chan peer.AddrInfo) func() (opts Libp2pOpts, err error) {
47 return func() (opts Libp2pOpts, err error) {
48 - staticRelays := make([]peer.AddrInfo, 0, len(relays))
49 - for _, s := range relays {
50 - var addr *peer.AddrInfo
51 - addr, err = peer.AddrInfoFromString(s)
52 - if err != nil {
53 - return
54 - }
55 - staticRelays = append(staticRelays, *addr)
56 - }
48 + var autoRelayOpts []autorelay.Option
49 if len(staticRelays) > 0 {
58 - opts.Opts = append(opts.Opts, libp2p.StaticRelays(staticRelays))
50 + static := make([]peer.AddrInfo, 0, len(staticRelays))
51 + for _, s := range staticRelays {
52 + var addr *peer.AddrInfo
53 + addr, err = peer.AddrInfoFromString(s)
54 + if err != nil {
55 + return
56 + }
57 + static = append(static, *addr)
58 + }
59 + autoRelayOpts = append(autoRelayOpts, autorelay.WithStaticRelays(static))
60 + autoRelayOpts = append(autoRelayOpts, autorelay.WithCircuitV1Support())
61 }
60 - return
61 - }
62 -}
63 -
64 -func AutoRelay(addDefaultRelays bool) func() (opts Libp2pOpts, err error) {
65 - return func() (opts Libp2pOpts, err error) {
66 - opts.Opts = append(opts.Opts, libp2p.EnableAutoRelay())
67 - if addDefaultRelays {
68 - opts.Opts = append(opts.Opts, libp2p.DefaultStaticRelays())
62 + if peerChan != nil {
63 + autoRelayOpts = append(autoRelayOpts, autorelay.WithPeerSource(peerChan))
64 }
65 + opts.Opts = append(opts.Opts, libp2p.EnableAutoRelay(autoRelayOpts...))
66 return
67 }
68 }
core/node/libp2p/routing.go
+87 -3
@@ -2,22 +2,27 @@ package libp2p
2
3 import (
4 "context"
5 + "fmt"
6 + "runtime/debug"
7 "sort"
8 "time"
9
10 "github.com/ipfs/go-ipfs/core/node/helpers"
11
12 + config "github.com/ipfs/go-ipfs/config"
13 "github.com/ipfs/go-ipfs/repo"
11 - host "github.com/libp2p/go-libp2p-core/host"
12 - routing "github.com/libp2p/go-libp2p-core/routing"
14 + "github.com/libp2p/go-libp2p-core/host"
15 + "github.com/libp2p/go-libp2p-core/peer"
16 + "github.com/libp2p/go-libp2p-core/routing"
17 dht "github.com/libp2p/go-libp2p-kad-dht"
18 ddht "github.com/libp2p/go-libp2p-kad-dht/dual"
19 "github.com/libp2p/go-libp2p-kad-dht/fullrt"
16 - "github.com/libp2p/go-libp2p-pubsub"
20 + pubsub "github.com/libp2p/go-libp2p-pubsub"
21 namesys "github.com/libp2p/go-libp2p-pubsub-router"
22 record "github.com/libp2p/go-libp2p-record"
23 routinghelpers "github.com/libp2p/go-libp2p-routing-helpers"
24
25 + "github.com/cenkalti/backoff/v4"
26 "go.uber.org/fx"
27 )
28
@@ -55,6 +60,8 @@ type processInitialRoutingOut struct {
60 BaseRT BaseIpfsRouting
61 }
62
63 +type AddrInfoChan chan peer.AddrInfo
64 +
65 func BaseRouting(experimentalDHTClient bool) interface{} {
66 return func(mctx helpers.MetricsCtx, lc fx.Lifecycle, in processInitialRoutingIn) (out processInitialRoutingOut, err error) {
67 var dr *ddht.DHT
@@ -179,3 +186,80 @@ func PubsubRouter(mctx helpers.MetricsCtx, lc fx.Lifecycle, in p2pPSRoutingIn) (
186 },
187 }, psRouter, nil
188 }
189 +
190 +func AutoRelayFeeder(cfgPeering config.Peering) func(fx.Lifecycle, host.Host, AddrInfoChan, *ddht.DHT) {
191 + return func(lc fx.Lifecycle, h host.Host, peerChan AddrInfoChan, dht *ddht.DHT) {
192 + ctx, cancel := context.WithCancel(context.Background())
193 + done := make(chan struct{})
194 +
195 + defer func() {
196 + if r := recover(); r != nil {
197 + fmt.Println("Recovering from unexpected error in AutoRelayFeeder:", r)
198 + debug.PrintStack()
199 + }
200 + }()
201 + go func() {
202 + defer close(done)
203 +
204 + // Feed peers more often right after the bootstrap, then backoff
205 + bo := backoff.NewExponentialBackOff()
206 + bo.InitialInterval = 15 * time.Second
207 + bo.Multiplier = 3
208 + bo.MaxInterval = 1 * time.Hour
209 + bo.MaxElapsedTime = 0 // never stop
210 + t := backoff.NewTicker(bo)
211 + defer t.Stop()
212 + for {
213 + select {
214 + case <-t.C:
215 + case <-ctx.Done():
216 + return
217 + }
218 +
219 + // Always feed trusted IDs (Peering.Peers in the config)
220 + for _, trustedPeer := range cfgPeering.Peers {
221 + if len(trustedPeer.Addrs) == 0 {
222 + continue
223 + }
224 + select {
225 + case peerChan <- trustedPeer:
226 + case <-ctx.Done():
227 + return
228 + }
229 + }
230 +
231 + // Additionally, feed closest peers discovered via DHT
232 + if dht == nil {
233 + /* noop due to missing dht.WAN. happens in some unit tests,
234 + not worth fixing as we will refactor this after go-libp2p 0.20 */
235 + continue
236 + }
237 + closestPeers, err := dht.WAN.GetClosestPeers(ctx, h.ID().String())
238 + if err != nil {
239 + // no-op: usually 'failed to find any peer in table' during startup
240 + continue
241 + }
242 + for _, p := range closestPeers {
243 + addrs := h.Peerstore().Addrs(p)
244 + if len(addrs) == 0 {
245 + continue
246 + }
247 + dhtPeer := peer.AddrInfo{ID: p, Addrs: addrs}
248 + select {
249 + case peerChan <- dhtPeer:
250 + case <-ctx.Done():
251 + return
252 + }
253 + }
254 + }
255 + }()
256 +
257 + lc.Append(fx.Hook{
258 + OnStop: func(_ context.Context) error {
259 + cancel()
260 + <-done
261 + return nil
262 + },
263 + })
264 + }
265 +}
docs/config.md
+12 -31
@@ -107,7 +107,6 @@ config file at runtime.
107 - [`Swarm.DisableBandwidthMetrics`](#swarmdisablebandwidthmetrics)
108 - [`Swarm.DisableNatPortMap`](#swarmdisablenatportmap)
109 - [`Swarm.EnableHolePunching`](#swarmenableholepunching)
110 - - [`Swarm.EnableAutoRelay`](#swarmenableautorelay)
110 - [`Swarm.RelayClient`](#swarmrelayclient)
111 - [`Swarm.RelayClient.Enabled`](#swarmrelayclientenabled)
112 - [`Swarm.RelayClient.StaticRelays`](#swarmrelayclientstaticrelays)
@@ -122,7 +121,6 @@ config file at runtime.
121 - [`Swarm.RelayService.MaxReservationsPerPeer`](#swarmrelayservicemaxreservationsperpeer)
122 - [`Swarm.RelayService.MaxReservationsPerIP`](#swarmrelayservicemaxreservationsperip)
123 - [`Swarm.RelayService.MaxReservationsPerASN`](#swarmrelayservicemaxreservationsperasn)
125 - - [`Swarm.DisableRelay`](#swarmdisablerelay)
124 - [`Swarm.EnableAutoNATService`](#swarmenableautonatservice)
125 - [`Swarm.ConnMgr`](#swarmconnmgr)
126 - [`Swarm.ConnMgr.Type`](#swarmconnmgrtype)
@@ -1376,21 +1374,9 @@ Type: `flag`
1374
1375 ### `Swarm.EnableAutoRelay`
1376
1379 -Deprecated: Set `Swarm.RelayClient.Enabled` to `true`.
1380 -
1381 -Enables "automatic relay user" mode for this node.
1382 -
1383 -Your node will automatically _use_ public relays from the network if it detects
1384 -that it cannot be reached from the public internet (e.g., it's behind a
1385 -firewall) and get a `/p2p-circuit` address from a public relay.
1386 -
1387 -This is likely the feature you're looking for, but see also:
1388 -- [`Swarm.RelayService.Enabled`](#swarmrelayserviceenabled) if your node should act as a limited relay for other peers
1389 -- Docs: [Libp2p Circuit Relay](https://docs.libp2p.io/concepts/circuit-relay/)
1390 -
1391 -Default: `false`
1377 +**REMOVED**
1378
1393 -Type: `bool`
1379 +See `Swarm.RelayClient` instead.
1380
1381 ### `Swarm.RelayClient`
1382
@@ -1408,14 +1394,14 @@ Your node will automatically _use_ public relays from the network if it detects
1394 that it cannot be reached from the public internet (e.g., it's behind a
1395 firewall) and get a `/p2p-circuit` address from a public relay.
1396
1411 -Default: `false`
1397 +Default: `true`
1398
1413 -Type: `bool`
1399 +Type: `flag`
1400
1401 #### `Swarm.RelayClient.StaticRelays`
1402
1417 -Your node will use these statically configured relay servers instead of
1418 -discovering public relays from the network.
1403 +Your node will use these statically configured relay servers (V1 or V2)
1404 +instead of discovering public relays V2 from the network.
1405
1406 Default: `[]`
1407
@@ -1438,7 +1424,7 @@ NOTE: This is the service/server part of the relay system.
1424 Disabling this will prevent this node from running as a relay server.
1425 Use [`Swarm.RelayClient.Enabled`](#swarmrelayclientenabled) for turning your node into a relay user.
1426
1441 -Default: Enabled
1427 +Default: `true`
1428
1429 Type: `flag`
1430
@@ -1536,15 +1522,9 @@ Replaced with [`Swarm.RelayService.Enabled`](#swarmrelayserviceenabled).
1522
1523 ### `Swarm.DisableRelay`
1524
1539 -Deprecated: Set `Swarm.Transports.Network.Relay` to `false`.
1540 -
1541 -Disables the p2p-circuit relay transport. This will prevent this node from
1542 -connecting to nodes behind relays, or accepting connections from nodes behind
1543 -relays.
1544 -
1545 -Default: `false`
1525 +**REMOVED**
1526
1547 -Type: `bool`
1527 +Set `Swarm.Transports.Network.Relay` to `false` instead.
1528
1529 ### `Swarm.EnableAutoNATService`
1530
@@ -1765,8 +1745,9 @@ NATs.
1745
1746 See also:
1747 - Docs: [Libp2p Circuit Relay](https://docs.libp2p.io/concepts/circuit-relay/)
1768 -- [`Swarm.EnableAutoRelay`](#swarmenableautorelay) for getting a public
1769 - `/p2p-circuit` address when behind a firewall.
1748 +- [`Swarm.RelayClient.Enabled`](#swarmrelayclientenabled) for getting a public
1749 +- `/p2p-circuit` address when behind a firewall.
1750 + - [`Swarm.EnableHolePunching`](#swarmenableholepunching) for direct connection upgrade through relay
1751 - [`Swarm.RelayService.Enabled`](#swarmrelayserviceenabled) for becoming a
1752 limited relay for other peers
1753
go.mod
+36 -36
@@ -4,6 +4,7 @@ require (
4 bazil.org/fuse v0.0.0-20200117225306-7b5117fecadc
5 contrib.go.opencensus.io/exporter/prometheus v0.4.0
6 github.com/blang/semver/v4 v4.0.0
7 + github.com/cenkalti/backoff/v4 v4.1.2
8 github.com/ceramicnetwork/go-dag-jose v0.1.0
9 github.com/cespare/xxhash v1.1.0
10 github.com/cheggaaa/pb v1.0.29
@@ -51,7 +52,7 @@ require (
52 github.com/ipfs/go-metrics-interface v0.0.1
53 github.com/ipfs/go-metrics-prometheus v0.0.2
54 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
56 github.com/ipfs/go-path v0.2.2
57 github.com/ipfs/go-pinning-service-http-client v0.1.1
58 github.com/ipfs/go-unixfs v0.3.1
@@ -67,31 +68,31 @@ require (
68 github.com/jbenet/go-temp-err-catcher v0.1.0
69 github.com/jbenet/goprocess v0.1.4
70 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
72 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
74 github.com/libp2p/go-libp2p-discovery v0.6.0
75 github.com/libp2p/go-libp2p-http v0.2.1
76 github.com/libp2p/go-libp2p-kad-dht v0.15.0
77 github.com/libp2p/go-libp2p-kbucket v0.4.7
78 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
81 github.com/libp2p/go-libp2p-peerstore v0.6.0
82 github.com/libp2p/go-libp2p-pubsub v0.6.0
83 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
85 github.com/libp2p/go-libp2p-record v0.1.3
86 github.com/libp2p/go-libp2p-resource-manager v0.3.0
87 github.com/libp2p/go-libp2p-routing-helpers v0.2.3
88 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
92 github.com/libp2p/go-socket-activation v0.1.0
93 github.com/libp2p/go-tcp-transport v0.5.1
94 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
96 github.com/mitchellh/go-homedir v1.1.0
97 github.com/multiformats/go-multiaddr v0.5.0
98 github.com/multiformats/go-multiaddr-dns v0.3.1
@@ -120,9 +121,9 @@ require (
121 go.uber.org/dig v1.14.0
122 go.uber.org/fx v1.16.0
123 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
125 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
127 )
128
129 require (
@@ -135,10 +136,9 @@ require (
136 github.com/beorn7/perks v1.0.1 // indirect
137 github.com/btcsuite/btcd v0.22.0-beta // indirect
138 github.com/cenkalti/backoff v2.2.1+incompatible // indirect
138 - github.com/cenkalti/backoff/v4 v4.1.2 // indirect
139 github.com/cespare/xxhash/v2 v2.1.2 // indirect
140 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
142 github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 // indirect
143 github.com/cskr/pubsub v1.0.2 // indirect
144 github.com/davecgh/go-spew v1.1.1 // indirect
@@ -146,7 +146,7 @@ require (
146 github.com/dgraph-io/badger v1.6.2 // indirect
147 github.com/dgraph-io/ristretto v0.0.2 // indirect
148 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
150 github.com/felixge/httpsnoop v1.0.2 // indirect
151 github.com/flynn/noise v1.0.0 // indirect
152 github.com/francoispqt/gojay v1.2.13 // indirect
@@ -155,29 +155,29 @@ require (
155 github.com/go-logr/logr v1.2.3 // indirect
156 github.com/go-logr/stdr v1.2.2 // indirect
157 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
159 github.com/gogo/protobuf v1.3.2 // indirect
160 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
161 github.com/golang/protobuf v1.5.2 // indirect
162 github.com/golang/snappy v0.0.4 // indirect
163 github.com/google/gopacket v1.1.19 // indirect
164 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
166 github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
167 github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e // indirect
168 github.com/hashicorp/errwrap v1.0.0 // indirect
169 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
171 github.com/ipfs/bbloom v0.0.4 // indirect
172 github.com/ipfs/go-bitfield v1.0.0 // indirect
173 github.com/ipfs/go-ipfs-delay v0.0.1 // indirect
174 github.com/ipfs/go-ipfs-ds-help v1.1.0 // indirect
175 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
177 github.com/ipfs/go-peertaskqueue v0.7.0 // indirect
178 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
181 github.com/koron/go-ssdp v0.0.2 // indirect
182 github.com/libp2p/go-buffer-pool v0.0.2 // indirect
183 github.com/libp2p/go-cidranger v1.1.0 // indirect
@@ -191,20 +191,20 @@ require (
191 github.com/libp2p/go-libp2p-pnet v0.2.0 // indirect
192 github.com/libp2p/go-libp2p-transport-upgrader v0.7.1 // indirect
193 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
196 github.com/libp2p/go-nat v0.1.0 // indirect
197 github.com/libp2p/go-netroute v0.2.0 // indirect
198 github.com/libp2p/go-openssl v0.0.7 // indirect
199 github.com/libp2p/go-reuseport v0.1.0 // indirect
200 github.com/libp2p/go-reuseport-transport v0.1.0 // indirect
201 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
203 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
208 github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
209 github.com/mattn/go-colorable v0.1.4 // indirect
210 github.com/mattn/go-isatty v0.0.14 // indirect
@@ -216,10 +216,10 @@ require (
216 github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect
217 github.com/minio/sha256-simd v1.0.0 // indirect
218 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
220 github.com/multiformats/go-base36 v0.1.0 // indirect
221 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
223 github.com/multiformats/go-varint v0.0.6 // indirect
224 github.com/nxadm/tail v1.4.8 // indirect
225 github.com/onsi/ginkgo v1.16.5 // indirect
@@ -251,16 +251,16 @@ require (
251 go.opentelemetry.io/otel/metric v0.28.0 // indirect
252 go.opentelemetry.io/proto/otlp v0.15.0 // indirect
253 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
255 go4.org v0.0.0-20200411211856-f5505b9728dd // indirect
256 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
259 golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect
260 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
261 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
264 google.golang.org/appengine v1.6.6 // indirect
265 google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1 // indirect
266 google.golang.org/grpc v1.45.0 // indirect
@@ -269,7 +269,7 @@ require (
269 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
270 gopkg.in/yaml.v2 v2.4.0 // indirect
271 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
273 )
274
275 go 1.17
go.sum
+79 -44
@@ -139,6 +139,7 @@ github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWR
139 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
140 github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
141 github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs=
142 +github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
143 github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
144 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
145 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
@@ -150,8 +151,9 @@ github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWH
151 github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
152 github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
153 github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
153 -github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327 h1:7grrpcfCtbZLsjtB0DgMuzs1umsJmpzaHMZ6cO6iAWw=
154 github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE=
155 +github.com/containerd/cgroups v1.0.3 h1:ADZftAkglvCiD44c77s5YmMqaP2pzVCFZvBmAlBdAP4=
156 +github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8=
157 github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
158 github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
159 github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
@@ -206,8 +208,9 @@ github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5m
208 github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
209 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
210 github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
209 -github.com/elastic/gosigar v0.12.0 h1:AsdhYCJlTudhfOYQyFNgx+fIVTfrDO0V1ST0vHgiapU=
211 github.com/elastic/gosigar v0.12.0/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs=
212 +github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4=
213 +github.com/elastic/gosigar v0.14.2/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs=
214 github.com/elgris/jsondiff v0.0.0-20160530203242-765b5c24c302 h1:QV0ZrfBLpFc2KDk+a4LJefDczXnonRwrYrQJY/9L4dA=
215 github.com/elgris/jsondiff v0.0.0-20160530203242-765b5c24c302/go.mod h1:qBlWZqWeVx9BjvqBsnC/8RUlAYpIFmPvgROcw0n1scE=
216 github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
@@ -273,8 +276,9 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
276 github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=
277 github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
278 github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
276 -github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
279 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
280 +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
281 +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
282 github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
283 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
284 github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
@@ -378,8 +382,9 @@ github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/z
382 github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
383 github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
384 github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
381 -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
385 github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
386 +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
387 +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
388 github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
389 github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
390 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
@@ -425,8 +430,9 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J
430 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
431 github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
432 github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc=
428 -github.com/huin/goupnp v1.0.2 h1:RfGLP+h3mvisuWEyybxNq5Eft3NWhHLPeUN72kpKZoI=
433 github.com/huin/goupnp v1.0.2/go.mod h1:0dxJBVBHqTMjIUMkESDTNgOOx/Mw5wYIfyFmdzSamkM=
434 +github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ=
435 +github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y=
436 github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o=
437 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
438 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
@@ -586,8 +592,9 @@ github.com/ipfs/go-log/v2 v2.1.1/go.mod h1:2v2nsGfZsvvAJz13SyFzf9ObaqwHiHxsPLEHn
592 github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g=
593 github.com/ipfs/go-log/v2 v2.3.0/go.mod h1:QqGoj30OTpnKaG/LKTGTxoP2mmQtjVMEnK72gynbe/g=
594 github.com/ipfs/go-log/v2 v2.4.0/go.mod h1:nPZnh7Cj7lwS3LpRU5Mwr2ol1c2gXIEXuF6aywqrtmo=
589 -github.com/ipfs/go-log/v2 v2.5.0 h1:+MhAooFd9XZNvR0i9FriKW6HB0ql7HNXUuflWtc0dd4=
595 github.com/ipfs/go-log/v2 v2.5.0/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI=
596 +github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY=
597 +github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI=
598 github.com/ipfs/go-merkledag v0.0.6/go.mod h1:QYPdnlvkOg7GnQRofu9XZimC5ZW5Wi3bKys/4GQQfto=
599 github.com/ipfs/go-merkledag v0.2.3/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk=
600 github.com/ipfs/go-merkledag v0.3.2/go.mod h1:fvkZNNZixVW6cKSZ/JfLlON5OlgTXNdRLz0p6QG/I2M=
@@ -600,8 +607,8 @@ github.com/ipfs/go-metrics-prometheus v0.0.2 h1:9i2iljLg12S78OhC6UAiXi176xvQGiZa
607 github.com/ipfs/go-metrics-prometheus v0.0.2/go.mod h1:ELLU99AQQNi+zX6GCGm2lAgnzdSH3u5UVlCdqSXnEks=
608 github.com/ipfs/go-mfs v0.2.1 h1:5jz8+ukAg/z6jTkollzxGzhkl3yxm022Za9f2nL5ab8=
609 github.com/ipfs/go-mfs v0.2.1/go.mod h1:Woj80iuw4ajDnIP6+seRaoHpPsc9hmL0pk/nDNDWP88=
603 -github.com/ipfs/go-namesys v0.4.0 h1:Gxg4kEWxVcHuUJl60KMNs1k8AiVB3luXbz8ZJkSGacs=
604 -github.com/ipfs/go-namesys v0.4.0/go.mod h1:jpJwzodyP8DZdWN6DShRjVZw6gaqMr4nQLBSxU5cR6E=
610 +github.com/ipfs/go-namesys v0.5.0 h1:vZEkdqxRiSnxBBJrvYTkwHYBFgibGUSpNtg9BHRyN+o=
611 +github.com/ipfs/go-namesys v0.5.0/go.mod h1:zZOme8KDAUYDl4f5MnWSiTRhoxcM7kLkZIyps/HV/S0=
612 github.com/ipfs/go-path v0.0.7/go.mod h1:6KTKmeRnBXgqrTvzFrPV3CamxcgvXX/4z79tfAd2Sno=
613 github.com/ipfs/go-path v0.0.9/go.mod h1:VpDkSBKQ9EFQOUgi54Tq/O/tGi8n1RfYNks13M3DEs8=
614 github.com/ipfs/go-path v0.1.1/go.mod h1:vC8q4AKOtrjJz2NnllIrmr2ZbGlF5fW2OKKyhV9ggb0=
@@ -696,12 +703,14 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
703 github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
704 github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
705 github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
699 -github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
706 github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
707 +github.com/klauspost/compress v1.15.1 h1:y9FcTHGyrebwfP0ZZqFiaxTaiDnUrGkJkI+f583BL1A=
708 +github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
709 github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
710 github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
703 -github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4=
711 github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
712 +github.com/klauspost/cpuid/v2 v2.0.12 h1:p9dKCg8i4gmOxtv35DvrYoWqYzQrvEVdjQ762Y0OqZE=
713 +github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c=
714 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
715 github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
716 github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk=
@@ -755,8 +764,8 @@ github.com/libp2p/go-libp2p v0.13.0/go.mod h1:pM0beYdACRfHO1WcJlp65WXyG2A6NqYM+t
764 github.com/libp2p/go-libp2p v0.14.3/go.mod h1:d12V4PdKbpL0T1/gsUNN8DfgMuRPDX8bS2QxCZlwRH0=
765 github.com/libp2p/go-libp2p v0.14.4/go.mod h1:EIRU0Of4J5S8rkockZM7eJp2S0UrCyi55m2kJVru3rM=
766 github.com/libp2p/go-libp2p v0.16.0/go.mod h1:ump42BsirwAWxKzsCiFnTtN1Yc+DuPu76fyMX364/O4=
758 -github.com/libp2p/go-libp2p v0.18.0 h1:moKKKG875KNGsCjZxTIFB75ihHiVjFeWg5I4aR1pDLk=
759 -github.com/libp2p/go-libp2p v0.18.0/go.mod h1:+veaZ9z1SZQhmc5PW78jvnnxZ89Mgvmh4cggO11ETmw=
767 +github.com/libp2p/go-libp2p v0.19.0 h1:zosskMbaobL7UDCVLEe1m5CGs1TaFNFoN/M5XLiKg0U=
768 +github.com/libp2p/go-libp2p v0.19.0/go.mod h1:Ki9jJXLO2YqrTIFxofV7Twyd3INWPT97+r8hGt7XPjI=
769 github.com/libp2p/go-libp2p-asn-util v0.0.0-20200825225859-85005c6cf052/go.mod h1:nRMRTab+kZuk0LnKZpxhOVH/ndsdr2Nr//Zltc/vwgo=
770 github.com/libp2p/go-libp2p-asn-util v0.1.0/go.mod h1:wu+AnM9Ii2KgO5jMmS1rz9dvzTdj8BXqsPR9HR0XB7I=
771 github.com/libp2p/go-libp2p-asn-util v0.2.0 h1:rg3+Os8jbnO5DxkC7K/Utdi+DkY3q/d1/1q+8WeNAsw=
@@ -817,8 +826,9 @@ github.com/libp2p/go-libp2p-core v0.10.0/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQR
826 github.com/libp2p/go-libp2p-core v0.11.0/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQRAMf0sX9mf2sbGg=
827 github.com/libp2p/go-libp2p-core v0.12.0/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQRAMf0sX9mf2sbGg=
828 github.com/libp2p/go-libp2p-core v0.13.0/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQRAMf0sX9mf2sbGg=
820 -github.com/libp2p/go-libp2p-core v0.14.0 h1:0kYSgiK/D7Eo28GTuRXo5YHsWwAisVpFCqCVPUd/vJs=
829 github.com/libp2p/go-libp2p-core v0.14.0/go.mod h1:tLasfcVdTXnixsLB0QYaT1syJOhsbrhG7q6pGrHtBg8=
830 +github.com/libp2p/go-libp2p-core v0.15.1 h1:0RY+Mi/ARK9DgG1g9xVQLb8dDaaU8tCePMtGALEfBnM=
831 +github.com/libp2p/go-libp2p-core v0.15.1/go.mod h1:agSaboYM4hzB1cWekgVReqV5M4g5M+2eNNejV+1EEhs=
832 github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE=
833 github.com/libp2p/go-libp2p-crypto v0.0.2/go.mod h1:eETI5OUfBnvARGOHrJz2eWNyTUxEGZnBxMcbUjfIj4I=
834 github.com/libp2p/go-libp2p-crypto v0.1.0/go.mod h1:sPUokVISZiy+nNuTTH/TY+leRSxnFj/2GLjtOTW90hI=
@@ -857,8 +867,8 @@ github.com/libp2p/go-libp2p-mplex v0.3.0/go.mod h1:l9QWxRbbb5/hQMECEb908GbS9Sm2U
867 github.com/libp2p/go-libp2p-mplex v0.4.0/go.mod h1:yCyWJE2sc6TBTnFpjvLuEJgTSw/u+MamvzILKdX7asw=
868 github.com/libp2p/go-libp2p-mplex v0.4.1/go.mod h1:cmy+3GfqfM1PceHTLL7zQzAAYaryDu6iPSC+CIb094g=
869 github.com/libp2p/go-libp2p-mplex v0.5.0/go.mod h1:eLImPJLkj3iG5t5lq68w3Vm5NAQ5BcKwrrb2VmOYb3M=
860 -github.com/libp2p/go-libp2p-mplex v0.6.0 h1:5ubK4/vLE2JkogKlJ2JLeXcSfA6qY6mE2HMJV9ve/Sk=
861 -github.com/libp2p/go-libp2p-mplex v0.6.0/go.mod h1:i3usuPrBbh9FD2fLZjGpotyNkwr42KStYZQY7BeTiu4=
870 +github.com/libp2p/go-libp2p-mplex v0.7.0 h1:ONTTvHIUaFCwyPO4FRkpe4OFQJq1bDkWQLbhWiD1A44=
871 +github.com/libp2p/go-libp2p-mplex v0.7.0/go.mod h1:SeeXUXh7ZkfxnmsepnFgMPEhfEyACujuTM9k1TkErpc=
872 github.com/libp2p/go-libp2p-nat v0.0.4/go.mod h1:N9Js/zVtAXqaeT99cXgTV9e75KpnWCvVOiGzlcHmBbY=
873 github.com/libp2p/go-libp2p-nat v0.0.5/go.mod h1:1qubaE5bTZMJE+E/uu2URroMbzdubFz1ChgiN79yKPE=
874 github.com/libp2p/go-libp2p-nat v0.0.6/go.mod h1:iV59LVhB3IkFvS6S6sauVTSOrNEANnINbI/fkaLimiw=
@@ -871,8 +881,9 @@ github.com/libp2p/go-libp2p-netutil v0.1.0 h1:zscYDNVEcGxyUpMd0JReUZTrpMfia8PmLK
881 github.com/libp2p/go-libp2p-netutil v0.1.0/go.mod h1:3Qv/aDqtMLTUyQeundkKsA+YCThNdbQD54k3TqjpbFU=
882 github.com/libp2p/go-libp2p-noise v0.1.1/go.mod h1:QDFLdKX7nluB7DEnlVPbz7xlLHdwHFA9HiohJRr3vwM=
883 github.com/libp2p/go-libp2p-noise v0.2.0/go.mod h1:IEbYhBBzGyvdLBoxxULL/SGbJARhUeqlO8lVSREYu2Q=
874 -github.com/libp2p/go-libp2p-noise v0.3.0 h1:NCVH7evhVt9njbTQshzT7N1S3Q6fjj9M11FCgfH5+cA=
884 github.com/libp2p/go-libp2p-noise v0.3.0/go.mod h1:JNjHbociDJKHD64KTkzGnzqJ0FEV5gHJa6AB00kbCNQ=
885 +github.com/libp2p/go-libp2p-noise v0.4.0 h1:khcMsGhHNdGqKE5LDLrnHwZvdGVMsrnD4GTkTWkwmLU=
886 +github.com/libp2p/go-libp2p-noise v0.4.0/go.mod h1:BzzY5pyzCYSyJbQy9oD8z5oP2idsafjt4/X42h9DjZU=
887 github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo=
888 github.com/libp2p/go-libp2p-peer v0.1.1/go.mod h1:jkF12jGB4Gk/IOo+yomm+7oLWxF278F7UnrYUQ1Q8es=
889 github.com/libp2p/go-libp2p-peer v0.2.0/go.mod h1:RCffaCvUyW2CJmG2gAWVqwePwW7JMgxjsHm7+J5kjWY=
@@ -903,14 +914,14 @@ github.com/libp2p/go-libp2p-quic-transport v0.11.2/go.mod h1:wlanzKtIh6pHrq+0U3p
914 github.com/libp2p/go-libp2p-quic-transport v0.13.0/go.mod h1:39/ZWJ1TW/jx1iFkKzzUg00W6tDJh73FC0xYudjr7Hc=
915 github.com/libp2p/go-libp2p-quic-transport v0.15.0/go.mod h1:wv4uGwjcqe8Mhjj7N/Ic0aKjA+/10UnMlSzLO0yRpYQ=
916 github.com/libp2p/go-libp2p-quic-transport v0.16.0/go.mod h1:1BXjVMzr+w7EkPfiHkKnwsWjPjtfaNT0q8RS3tGDvEQ=
906 -github.com/libp2p/go-libp2p-quic-transport v0.16.1 h1:N/XqYXHurphPLDfXYhll8NyqzdZYQqAF4GIr7+SmLV8=
907 -github.com/libp2p/go-libp2p-quic-transport v0.16.1/go.mod h1:1BXjVMzr+w7EkPfiHkKnwsWjPjtfaNT0q8RS3tGDvEQ=
917 +github.com/libp2p/go-libp2p-quic-transport v0.17.0 h1:yFh4Gf5MlToAYLuw/dRvuzYd1EnE2pX3Lq1N6KDiWRQ=
918 +github.com/libp2p/go-libp2p-quic-transport v0.17.0/go.mod h1:x4pw61P3/GRCcSLypcQJE/Q2+E9f4X+5aRcZLXf20LM=
919 github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q=
920 github.com/libp2p/go-libp2p-record v0.1.0/go.mod h1:ujNc8iuE5dlKWVy6wuL6dd58t0n7xI4hAIl8pE6wu5Q=
921 github.com/libp2p/go-libp2p-record v0.1.2/go.mod h1:pal0eNcT5nqZaTV7UGhqeGqxFgGdsU/9W//C8dqjQDk=
922 github.com/libp2p/go-libp2p-record v0.1.3 h1:R27hoScIhQf/A8XJZ8lYpnqh9LatJ5YbHs28kCIfql0=
923 github.com/libp2p/go-libp2p-record v0.1.3/go.mod h1:yNUff/adKIfPnYQXgp6FQmNu3gLJ6EMg7+/vv2+9pY4=
913 -github.com/libp2p/go-libp2p-resource-manager v0.1.5/go.mod h1:wJPNjeE4XQlxeidwqVY5G6DLOKqFK33u2n8blpl0I6Y=
924 +github.com/libp2p/go-libp2p-resource-manager v0.2.1/go.mod h1:K+eCkiapf+ey/LADO4TaMpMTP9/Qde/uLlrnRqV4PLQ=
925 github.com/libp2p/go-libp2p-resource-manager v0.3.0 h1:2+cYxUNi33tcydsVLt6K5Fv2E3OTiVeafltecAj15E0=
926 github.com/libp2p/go-libp2p-resource-manager v0.3.0/go.mod h1:K+eCkiapf+ey/LADO4TaMpMTP9/Qde/uLlrnRqV4PLQ=
927 github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys=
@@ -947,12 +958,14 @@ github.com/libp2p/go-libp2p-testing v0.4.0/go.mod h1:Q+PFXYoiYFN5CAEG2w3gLPEzotl
958 github.com/libp2p/go-libp2p-testing v0.4.2/go.mod h1:Q+PFXYoiYFN5CAEG2w3gLPEzotlKsNSbKQ/lImlOWF0=
959 github.com/libp2p/go-libp2p-testing v0.5.0/go.mod h1:QBk8fqIL1XNcno/l3/hhaIEn4aLRijpYOR+zVjjlh+A=
960 github.com/libp2p/go-libp2p-testing v0.7.0/go.mod h1:OLbdn9DbgdMwv00v+tlp1l3oe2Cl+FAjoWIA2pa0X6E=
950 -github.com/libp2p/go-libp2p-testing v0.8.0 h1:/te8SOIyj5sGH5Jr1Uoo+qYB00aK8O4+yHGzLgfE3kc=
951 -github.com/libp2p/go-libp2p-testing v0.8.0/go.mod h1:gRdsNxQSxAZowTgcLY7CC33xPmleZzoBpqSYbWenqPc=
961 +github.com/libp2p/go-libp2p-testing v0.9.0/go.mod h1:Td7kbdkWqYTJYQGTwzlgXwaqldraIanyjuRiAbK/XQU=
962 +github.com/libp2p/go-libp2p-testing v0.9.2 h1:dCpODRtRaDZKF8HXT9qqqgON+OMEB423Knrgeod8j84=
963 +github.com/libp2p/go-libp2p-testing v0.9.2/go.mod h1:Td7kbdkWqYTJYQGTwzlgXwaqldraIanyjuRiAbK/XQU=
964 github.com/libp2p/go-libp2p-tls v0.1.3/go.mod h1:wZfuewxOndz5RTnCAxFliGjvYSDA40sKitV4c50uI1M=
965 github.com/libp2p/go-libp2p-tls v0.3.0/go.mod h1:fwF5X6PWGxm6IDRwF3V8AVCCj/hOd5oFlg+wo2FxJDY=
954 -github.com/libp2p/go-libp2p-tls v0.3.1 h1:lsE2zYte+rZCEOHF72J1Fg3XK3dGQyKvI6i5ehJfEp0=
966 github.com/libp2p/go-libp2p-tls v0.3.1/go.mod h1:fwF5X6PWGxm6IDRwF3V8AVCCj/hOd5oFlg+wo2FxJDY=
967 +github.com/libp2p/go-libp2p-tls v0.4.1 h1:1ByJUbyoMXvYXDoW6lLsMxqMViQNXmt+CfQqlnCpY+M=
968 +github.com/libp2p/go-libp2p-tls v0.4.1/go.mod h1:EKCixHEysLNDlLUoKxv+3f/Lp90O2EXNjTr0UQDnrIw=
969 github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk=
970 github.com/libp2p/go-libp2p-transport v0.0.5/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A=
971 github.com/libp2p/go-libp2p-transport-upgrader v0.0.4/go.mod h1:RGq+tupk+oj7PzL2kn/m1w6YXxcIAYJYeI90h6BGgUc=
@@ -984,8 +997,8 @@ github.com/libp2p/go-libp2p-yamux v0.5.4/go.mod h1:tfrXbyaTqqSU654GTvK3ocnSZL3Bu
997 github.com/libp2p/go-libp2p-yamux v0.6.0/go.mod h1:MRhd6mAYnFRnSISp4M8i0ClV/j+mWHo2mYLifWGw33k=
998 github.com/libp2p/go-libp2p-yamux v0.8.0/go.mod h1:yTkPgN2ib8FHyU1ZcVD7aelzyAqXXwEPbyx+aSKm9h8=
999 github.com/libp2p/go-libp2p-yamux v0.8.1/go.mod h1:rUozF8Jah2dL9LLGyBaBeTQeARdwhefMCTQVQt6QobE=
987 -github.com/libp2p/go-libp2p-yamux v0.8.2 h1:6GKWntresp0TFxMP/oSoH96nV8XKJRdynXsdp43dn0Y=
988 -github.com/libp2p/go-libp2p-yamux v0.8.2/go.mod h1:rUozF8Jah2dL9LLGyBaBeTQeARdwhefMCTQVQt6QobE=
1000 +github.com/libp2p/go-libp2p-yamux v0.9.1 h1:oplewiRix8s45SOrI30rCPZG5mM087YZp+VYhXAh4+c=
1001 +github.com/libp2p/go-libp2p-yamux v0.9.1/go.mod h1:wRc6wvyxQINFcKe7daL4BeQ02Iyp+wxyC8WCNfngBrA=
1002 github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q=
1003 github.com/libp2p/go-maddr-filter v0.0.4/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q=
1004 github.com/libp2p/go-maddr-filter v0.0.5/go.mod h1:Jk+36PMfIqCJhAnaASRH83bdAvfDRp/w6ENFaC9bG+M=
@@ -998,14 +1011,15 @@ github.com/libp2p/go-mplex v0.1.2/go.mod h1:Xgz2RDCi3co0LeZfgjm4OgUF15+sVR8SRcu3
1011 github.com/libp2p/go-mplex v0.2.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ=
1012 github.com/libp2p/go-mplex v0.3.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ=
1013 github.com/libp2p/go-mplex v0.4.0/go.mod h1:y26Lx+wNVtMYMaPu300Cbot5LkEZ4tJaNYeHeT9dh6E=
1001 -github.com/libp2p/go-mplex v0.6.0 h1:5kKp029zrsLVJT5q6ASt4LwuZFxj3B13wXXaGmFrWg0=
1002 -github.com/libp2p/go-mplex v0.6.0/go.mod h1:y26Lx+wNVtMYMaPu300Cbot5LkEZ4tJaNYeHeT9dh6E=
1014 +github.com/libp2p/go-mplex v0.7.0 h1:BDhFZdlk5tbr0oyFq/xv/NPGfjbnrsDam1EvutpBDbY=
1015 +github.com/libp2p/go-mplex v0.7.0/go.mod h1:rW8ThnRcYWft/Jb2jeORBmPd6xuG3dGxWN/W168L9EU=
1016 github.com/libp2p/go-msgio v0.0.2/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ=
1017 github.com/libp2p/go-msgio v0.0.3/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ=
1018 github.com/libp2p/go-msgio v0.0.4/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ=
1019 github.com/libp2p/go-msgio v0.0.6/go.mod h1:4ecVB6d9f4BDSL5fqvPiC4A3KivjWn+Venn/1ALLMWA=
1007 -github.com/libp2p/go-msgio v0.1.0 h1:8Q7g/528ivAlfXTFWvWhVjTE8XG8sDTkRUKPYh9+5Q8=
1020 github.com/libp2p/go-msgio v0.1.0/go.mod h1:eNlv2vy9V2X/kNldcZ+SShFE++o2Yjxwx6RAYsmgJnE=
1021 +github.com/libp2p/go-msgio v0.2.0 h1:W6shmB+FeynDrUVl2dgFQvzfBZcXiyqY4VmpQLu9FqU=
1022 +github.com/libp2p/go-msgio v0.2.0/go.mod h1:dBVM1gW3Jk9XqHkU4eKdGvVHdLa51hoGfll6jMJMSlY=
1023 github.com/libp2p/go-nat v0.0.3/go.mod h1:88nUEt0k0JD45Bk93NIwDqjlhiOwOoV36GchpcVc1yI=
1024 github.com/libp2p/go-nat v0.0.4/go.mod h1:Nmw50VAvKuk38jUBcmNh6p9lUJLoODbJRvYAa/+KSDo=
1025 github.com/libp2p/go-nat v0.0.5/go.mod h1:B7NxsVNPZmRLvMOwiEO1scOSyjA56zxYAGv1yQgRkEU=
@@ -1082,8 +1096,9 @@ github.com/libp2p/go-yamux/v2 v2.0.0/go.mod h1:NVWira5+sVUIU6tu1JWvaRn1dRnG+cawO
1096 github.com/libp2p/go-yamux/v2 v2.2.0/go.mod h1:3So6P6TV6r75R9jiBpiIKgU/66lOarCZjqROGxzPpPQ=
1097 github.com/libp2p/go-yamux/v2 v2.3.0/go.mod h1:iTU+lOIn/2h0AgKcL49clNTwfEw+WSfDYrXe05EyKIs=
1098 github.com/libp2p/go-yamux/v3 v3.0.1/go.mod h1:s2LsDhHbh+RfCsQoICSYt58U2f8ijtPANFD8BmE74Bo=
1085 -github.com/libp2p/go-yamux/v3 v3.0.2 h1:LW0q5+A1Wy0npEsPJP9wmare2NH4ohNluN5EWVwv2mE=
1099 github.com/libp2p/go-yamux/v3 v3.0.2/go.mod h1:s2LsDhHbh+RfCsQoICSYt58U2f8ijtPANFD8BmE74Bo=
1100 +github.com/libp2p/go-yamux/v3 v3.1.1 h1:X0qSVodCZciOu/f4KTp9V+O0LAqcqP2tdaUGB0+0lng=
1101 +github.com/libp2p/go-yamux/v3 v3.1.1/go.mod h1:jeLEQgLXqE2YqX1ilAClIfCMDY+0uXQUKmmb/qp0gT4=
1102 github.com/libp2p/zeroconf/v2 v2.1.1 h1:XAuSczA96MYkVwH+LqqqCUZb2yH3krobMJ1YE+0hG2s=
1103 github.com/libp2p/zeroconf/v2 v2.1.1/go.mod h1:fuJqLnUwZTshS3U/bMRJ3+ow/v9oid1n0DmyYyNO1Xs=
1104 github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
@@ -1092,8 +1107,9 @@ github.com/lucas-clemente/quic-go v0.19.3/go.mod h1:ADXpNbTQjq1hIzCpB+y/k5iz4n4z
1107 github.com/lucas-clemente/quic-go v0.21.2/go.mod h1:vF5M1XqhBAHgbjKcJOXY3JZz3GP0T3FQhz/uyOUS38Q=
1108 github.com/lucas-clemente/quic-go v0.23.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0=
1109 github.com/lucas-clemente/quic-go v0.24.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0=
1095 -github.com/lucas-clemente/quic-go v0.25.0 h1:K+X9Gvd7JXsOHtU0N2icZ2Nw3rx82uBej3mP4CLgibc=
1110 github.com/lucas-clemente/quic-go v0.25.0/go.mod h1:YtzP8bxRVCBlO77yRanE264+fY/T2U9ZlW1AaHOsMOg=
1111 +github.com/lucas-clemente/quic-go v0.27.0 h1:v6WY87q9zD4dKASbG8hy/LpzAVNzEQzw8sEIeloJsc4=
1112 +github.com/lucas-clemente/quic-go v0.27.0/go.mod h1:AzgQoPda7N+3IqMMMkywBKggIFo2KT6pfnlrQ2QieeI=
1113 github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
1114 github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
1115 github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
@@ -1104,13 +1120,16 @@ github.com/marten-seemann/qtls v0.10.0/go.mod h1:UvMd1oaYDACI99/oZUYLzMCkBXQVT0a
1120 github.com/marten-seemann/qtls-go1-15 v0.1.1/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I=
1121 github.com/marten-seemann/qtls-go1-15 v0.1.4/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I=
1122 github.com/marten-seemann/qtls-go1-15 v0.1.5/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I=
1107 -github.com/marten-seemann/qtls-go1-16 v0.1.4 h1:xbHbOGGhrenVtII6Co8akhLEdrawwB2iHl5yhJRpnco=
1123 github.com/marten-seemann/qtls-go1-16 v0.1.4/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk=
1124 +github.com/marten-seemann/qtls-go1-16 v0.1.5 h1:o9JrYPPco/Nukd/HpOHMHZoBDXQqoNtUCmny98/1uqQ=
1125 +github.com/marten-seemann/qtls-go1-16 v0.1.5/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk=
1126 github.com/marten-seemann/qtls-go1-17 v0.1.0-rc.1/go.mod h1:fz4HIxByo+LlWcreM4CZOYNuz3taBQ8rN2X6FqvaWo8=
1110 -github.com/marten-seemann/qtls-go1-17 v0.1.0 h1:P9ggrs5xtwiqXv/FHNwntmuLMNq3KaSIG93AtAZ48xk=
1127 github.com/marten-seemann/qtls-go1-17 v0.1.0/go.mod h1:fz4HIxByo+LlWcreM4CZOYNuz3taBQ8rN2X6FqvaWo8=
1112 -github.com/marten-seemann/qtls-go1-18 v0.1.0-beta.1 h1:EnzzN9fPUkUck/1CuY1FlzBaIYMoiBsdwTNmNGkwUUM=
1128 +github.com/marten-seemann/qtls-go1-17 v0.1.1 h1:DQjHPq+aOzUeh9/lixAGunn6rIOQyWChPSI4+hgW7jc=
1129 +github.com/marten-seemann/qtls-go1-17 v0.1.1/go.mod h1:C2ekUKcDdz9SDWxec1N/MvcXBpaX9l3Nx67XaR84L5s=
1130 github.com/marten-seemann/qtls-go1-18 v0.1.0-beta.1/go.mod h1:PUhIQk19LoFt2174H4+an8TYvWOGjb/hHwphBeaDHwI=
1131 +github.com/marten-seemann/qtls-go1-18 v0.1.1 h1:qp7p7XXUFL7fpBvSS1sWD+uSqPvzNQK43DH+/qEkj0Y=
1132 +github.com/marten-seemann/qtls-go1-18 v0.1.1/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4=
1133 github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk=
1134 github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU=
1135 github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
@@ -1139,8 +1158,9 @@ github.com/miekg/dns v1.1.12/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3N
1158 github.com/miekg/dns v1.1.28/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
1159 github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
1160 github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
1142 -github.com/miekg/dns v1.1.43 h1:JKfpVSCB84vrAmHzyrsxB5NAr5kLoMXZArPSw7Qlgyg=
1161 github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
1162 +github.com/miekg/dns v1.1.48 h1:Ucfr7IIVyMBz4lRE8qmGUuZ4Wt3/ZGu9hmcMT3Uu4tQ=
1163 +github.com/miekg/dns v1.1.48/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME=
1164 github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c h1:bzE/A84HN25pxAuk9Eej1Kz9OUelF97nAc82bDquQI8=
1165 github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c/go.mod h1:0SQS9kMwD2VsyFEB++InYyBJroV/FRmBgcydeSUcJms=
1166 github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc=
@@ -1176,8 +1196,9 @@ github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjW
1196 github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
1197 github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
1198 github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
1179 -github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI=
1199 github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA=
1200 +github.com/multiformats/go-base32 v0.0.4 h1:+qMh4a2f37b4xTNs6mqitDinryCI+tfO2dRVMN9mjSE=
1201 +github.com/multiformats/go-base32 v0.0.4/go.mod h1:jNLFzjPZtp3aIARHbJRZIaPuspdH0J6q39uUM5pnABM=
1202 github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4=
1203 github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM=
1204 github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44=
@@ -1237,8 +1258,9 @@ github.com/multiformats/go-multistream v0.1.0/go.mod h1:fJTiDfXJVmItycydCnNx4+wS
1258 github.com/multiformats/go-multistream v0.1.1/go.mod h1:KmHZ40hzVxiaiwlj3MEbYgK9JFk2/9UktWZAF54Du38=
1259 github.com/multiformats/go-multistream v0.2.0/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k=
1260 github.com/multiformats/go-multistream v0.2.1/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k=
1240 -github.com/multiformats/go-multistream v0.2.2 h1:TCYu1BHTDr1F/Qm75qwYISQdzGcRdC21nFgQW7l7GBo=
1261 github.com/multiformats/go-multistream v0.2.2/go.mod h1:UIcnm7Zuo8HKG+HkWgfQsGL+/MIEhyTqbODbIUwSXKs=
1262 +github.com/multiformats/go-multistream v0.3.0 h1:yX1v4IWseLPmr0rmnDo148wWJbNx40JxBZGmQb5fUP4=
1263 +github.com/multiformats/go-multistream v0.3.0/go.mod h1:ODRoqamLUsETKS9BNcII4gcRsJBU5VAwRIv7O39cEXg=
1264 github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
1265 github.com/multiformats/go-varint v0.0.2/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
1266 github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
@@ -1527,6 +1549,7 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
1549 github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
1550 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
1551 github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
1552 +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
1553 go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
1554 go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
1555 go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=
@@ -1598,8 +1621,9 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/
1621 go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
1622 go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
1623 go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
1601 -go.uber.org/multierr v1.7.0 h1:zaiO/rmgFjbmCXdSYJWQcdvOCsthmdaHfr3Gm2Kx4Ec=
1624 go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
1625 +go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
1626 +go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
1627 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
1628 go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
1629 go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
@@ -1649,8 +1673,9 @@ golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5
1673 golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
1674 golang.org/x/crypto v0.0.0-20210813211128-0a44fdfbc16e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
1675 golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
1652 -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
1676 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
1677 +golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 h1:kUhD7nTDoI3fVd9G4ORWrbV5NY0liEs/Jg2pv5f+bBA=
1678 +golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
1679 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
1680 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
1681 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -1687,8 +1712,9 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
1712 golang.org/x/mod v0.1.1-0.20191209134235-331c550502dd/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
1713 golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
1714 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
1690 -golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
1715 golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
1716 +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o=
1717 +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
1718 golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1719 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1720 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1744,11 +1770,15 @@ golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT
1770 golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
1771 golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
1772 golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
1773 +golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
1774 golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
1775 golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
1776 +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
1777 +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
1778 golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
1750 -golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=
1779 golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
1780 +golang.org/x/net v0.0.0-20220418201149-a630d4f3e7a2 h1:6mzvA99KwZxbOrxww4EvWVQUnN1+xEu9tafK5ZxkYeA=
1781 +golang.org/x/net v0.0.0-20220418201149-a630d4f3e7a2/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
1782 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
1783 golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
1784 golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -1858,10 +1888,11 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
1888 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1889 golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1890 golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1891 +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1892 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1893 golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1863 -golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f h1:8w7RhxzTVgUzw/AH/9mUV5q0vMgy40SQRursCcfmkCw=
1864 -golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1894 +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad h1:ntjMns5wyP/fN65tdBD4g8J5w8n015+iIIs9rtjXkY0=
1895 +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1896 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
1897 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
1898 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
@@ -1937,13 +1968,16 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f
1968 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
1969 golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
1970 golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
1940 -golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
1971 golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
1972 +golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
1973 +golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20=
1974 +golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
1975 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
1976 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
1977 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
1945 -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
1978 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
1979 +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f h1:GGU+dLjvlC3qDwqYgL6UgRmHXhOOgns0bZu2Ty5mm6U=
1980 +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
1981 google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
1982 google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
1983 google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y=
@@ -2096,8 +2130,9 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt
2130 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
2131 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
2132 honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
2099 -lukechampine.com/blake3 v1.1.6 h1:H3cROdztr7RCfoaTpGZFQsrqvweFLrqS73j7L7cmR5c=
2133 lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA=
2134 +lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0=
2135 +lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA=
2136 pgregory.net/rapid v0.4.7 h1:MTNRktPuv5FNqOO151TM9mDTa+XHcX6ypYeISDVD14g=
2137 pgregory.net/rapid v0.4.7/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU=
2138 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
test/sharness/.gitignore
+1
@@ -2,3 +2,4 @@ lib/sharness/
2 test-results/
3 trash directory.*.sh/
4 plugins
5 +*.DS_Store
test/sharness/t0060-daemon.sh
+19 -4
@@ -125,11 +125,26 @@ test_expect_success "ipfs help output looks good" '
125 test_fsh cat help.txt
126 '
127
128 -# check transport is encrypted
129 -test_expect_success SOCAT "transport should be encrypted ( needs socat )" '
130 - socat - tcp:localhost:$SWARM_PORT,connect-timeout=1 > swarmnc < ../t0060-data/mss-ls &&
128 +# check transport is encrypted by default and no plaintext is allowed
129 +
130 +test_expect_success SOCAT "default transport should support encryption (TLS, needs socat )" '
131 + socat - tcp:localhost:$SWARM_PORT,connect-timeout=1 > swarmnc < ../t0060-data/mss-tls &&
132 grep -q "/tls" swarmnc &&
132 - test_must_fail grep -q "/plaintext/1.0.0" swarmnc ||
133 + test_must_fail grep -q "na" swarmnc ||
134 + test_fsh cat swarmnc
135 +'
136 +
137 +test_expect_success SOCAT "default transport should support encryption (Noise, needs socat )" '
138 + socat - tcp:localhost:$SWARM_PORT,connect-timeout=1 > swarmnc < ../t0060-data/mss-noise &&
139 + grep -q "/noise" swarmnc &&
140 + test_must_fail grep -q "na" swarmnc ||
141 + test_fsh cat swarmnc
142 +'
143 +
144 +test_expect_success SOCAT "default transport should not support plaintext (needs socat )" '
145 + socat - tcp:localhost:$SWARM_PORT,connect-timeout=1 > swarmnc < ../t0060-data/mss-plaintext &&
146 + grep -q "na" swarmnc &&
147 + test_must_fail grep -q "/plaintext" swarmnc ||
148 test_fsh cat swarmnc
149 '
150
test/sharness/t0060-data/mss-noise renamed
+1 -1
@@ -1,2 +1,2 @@
1 /multistream/1.0.0
2 -ls
2 +/noise
test/sharness/t0060-data/mss-plaintext new
+2
@@ -0,0 +1,2 @@
1 +/multistream/1.0.0
2 +/plaintext/2.0.0
test/sharness/t0060-data/mss-tls new
+2
@@ -0,0 +1,2 @@
1 +/multistream/1.0.0
2 + /tls/1.0.0
test/sharness/t0061-daemon-opts.sh
+3 -2
@@ -18,8 +18,9 @@ apiaddr=$API_ADDR
18
19 # Odd. this fails here, but the inverse works on t0060-daemon.
20 test_expect_success SOCAT 'transport should be unencrypted ( needs socat )' '
21 - socat - tcp:localhost:$SWARM_PORT,connect-timeout=1 > swarmnc < ../t0060-data/mss-ls &&
22 - grep -q "/plaintext" swarmnc ||
21 + socat - tcp:localhost:$SWARM_PORT,connect-timeout=1 > swarmnc < ../t0060-data/mss-plaintext &&
22 + grep -q "/plaintext" swarmnc &&
23 + test_must_fail grep -q "na" swarmnc ||
24 test_fsh cat swarmnc
25 '
26
test/sharness/t0160-resolve.sh
+1 -1
@@ -125,7 +125,7 @@ test_resolve_cmd_b32() {
125 local self_hash_b32libp2pkey=$(echo $self_hash | ipfs cid format -v 1 -b b --codec libp2p-key)
126 test_expect_success "resolve of /ipns/{cidv1} with multicodec other than libp2p-key returns a meaningful error" '
127 test_expect_code 1 ipfs resolve /ipns/$self_hash_b32protobuf 2>cidcodec_error &&
128 - grep "Error: peer ID represented as CIDv1 require libp2p-key multicodec: retry with /ipns/$self_hash_b32libp2pkey" cidcodec_error
128 + test_should_contain "Error: peer ID represented as CIDv1 require libp2p-key multicodec: retry with /ipns/$self_hash_b32libp2pkey" cidcodec_error
129 '
130 }
131
test/sharness/t0182-circuit-relay.sh
+16 -3
@@ -31,8 +31,14 @@ test_expect_success 'configure the relay node as a static relay for node A' '
31 '
32
33 test_expect_success 'configure the relay node' '
34 - ipfsi 1 config --json Addresses.Swarm "$relayaddrs" &&
35 - ipfsi 1 config Internal.Libp2pForceReachability public
34 + ipfsi 1 config Internal.Libp2pForceReachability public &&
35 + ipfsi 1 config --json Swarm.RelayService.Enabled true &&
36 + ipfsi 1 config --json Addresses.Swarm "$relayaddrs"
37 +'
38 +
39 +test_expect_success 'configure the node B' '
40 + ipfsi 2 config Internal.Libp2pForceReachability private &&
41 + ipfsi 2 config --json Swarm.RelayClient.Enabled true
42 '
43
44 test_expect_success 'restart nodes' '
@@ -50,7 +56,14 @@ test_expect_success 'connect B <-> Relay' '
56 '
57
58 test_expect_success 'wait until relay is ready to do work' '
53 - sleep 1
59 + while ! ipfsi 2 swarm connect /p2p/$PEERID_1/p2p-circuit/p2p/$PEERID_0; do
60 + iptb stop &&
61 + iptb_wait_stop &&
62 + iptb start -wait -- --routing=none &&
63 + iptb connect 0 1 &&
64 + iptb connect 2 1 &&
65 + sleep 5
66 + done
67 '
68
69 test_expect_success 'connect A <-Relay-> B' '
test/sharness/t0280-plugin-dag-jose.sh