Commit Graph

85 Commits

Author SHA1 Message Date
Prem Chaitanya Prathi
8864d1c33e feat:add contexts to all peerstore methods (#2312) 2023-06-03 02:24:50 -07:00
Marco Munizaga
e89814c520 swarm: Dedup addresses to dial (#2322)
* Dedup addresses to dial

Co-authored-by: Aayush Rajasekaran <arajasek94@gmail.com>

* Move DedupAddrs test

* Typo

---------

Co-authored-by: Aayush Rajasekaran <arajasek94@gmail.com>
2023-06-02 13:26:28 -07:00
Marco Munizaga
fbf11bc5c0 Infer public webtransport addrs from quic-v1 addrs. (#2251)
* Infer external webtransport addrs from external quic addrs

* Infer external webtransport addrs from external quic addrs is now pure

* Remove ConnManager method

* Nits

* Dedupe addrs

* Revert "Dedupe addrs"

This reverts commit b63155f4a3997d7adfebc337d0262defca329c15.

* Assume input is deduped
2023-04-12 14:44:48 -07:00
Marten Seemann
7dc3b81a0a basichost: don't allocate when deduplicating multiaddrs (#2206)
* basichost: don't allocate when deduplicating multiaddrs

* fix sort.Slice less comparison

Co-authored-by: Marco Munizaga <git@marcopolo.io>

* interop: don't send loopback addrs

---------

Co-authored-by: Marco Munizaga <git@marcopolo.io>
2023-04-12 11:51:01 -07:00
Marten Seemann
0119e9a2b6 basichost: remove stray print statement in test (#2249) 2023-04-08 11:31:10 -07:00
Marco Munizaga
3b3f8baf93 correctly handle WebTransport addresses without certhashes (#2239)
* Add helpers to transform webtransport multiaddrs in AddrsFactory

* Remove unused line

* PR nits

* Add wrapper around AddrsFactory to fill in missing certhash

* PR nits

* Handle WebTransport multiaddrs in observed addr manager

* Remove unneccessary change

* Remove unused func

* Use SplitLast

* Add comment

* Clone multiaddr before splitting last

* Revert "Clone multiaddr before splitting last"

This reverts commit f168a8e8b6.

* Wait for certmanager to be instantiated

* Copy addrs slice before modifying

* Fix stalled test
2023-04-05 23:45:54 -07:00
Marco Munizaga
5330570d1c identify: Fix IdentifyWait when Connected events happen out of order (#2173)
* Add test case

* Id works even if Connected notifications happen out of order

* Add IsClosed shim

* Call basichost `.Start()` for all tests
2023-03-06 19:55:47 -08:00
Marco Munizaga
29785d22b3 basic_host: Fix flaky tests (#2136) 2023-02-24 09:53:42 -08:00
Marco Munizaga
32f2f25529 Revert mistaken "Bump timeout"
This reverts commit f00c9507c3.
2023-02-17 23:04:59 +00:00
Marco Munizaga
f00c9507c3 Bump timeout 2023-02-17 23:00:49 +00:00
Marten Seemann
235f25b487 identify: refactor sending of Identify pushes (#1984)
* identify: cache the snapshot

* identify: refactor sending of Identify pushes

* identify: fix concurrency when sending pushes

* identify: fix timestamp handling

* identify: remove unneeded pushSemaphore

* identify: improve logging

* identify: use a sequence number instead of a timestamp

* identify: start with an empty snapshot

* identify: wait until we've actually finished setting up
2023-02-08 14:44:33 -08:00
Sukun
6b9c11680e consistently use protocol.ID instead of strings (#2004)
* Change PeerStore interface to use protocol.ID

This reduces the string to protocol.ID translations happening
at various places in the code

* Fix misc cases of protocol.ID conversion

* Merge multistream changes

* Use protocol.ID in network.ConnectionState

* don't update examples

* fix error message tests

* merge new go-multistream changes

* update test-plans go mod

* change transport back to string
2023-01-27 01:39:59 -08:00
Marten Seemann
aa1f32484a identify: remove support for Identify Delta 2023-01-07 14:41:27 +13:00
Marco Munizaga
f654b4bd69 Add Resolver interface to transport (#1719)
* Add Resolver interface to transport

* Move resolve test to swarm_dial_test

* Use proper peer id in test

* Only import go-multiaddr once

* Cleanup

* Use SNI in websocket

* Update go-multiaddr

* Update p2p/net/swarm/swarm.go

Co-authored-by: Marten Seemann <martenseemann@gmail.com>

* PR comments on websocket.go

* Use unresolved/resolved map

* Set sni

* Refactor websocket multiaddr parsing code, add server test

* Delete superflous helpers

* Update callsites

* Fix typo in p2p/transport/websocket/websocket.go

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-09-13 09:36:26 -07:00
Marten Seemann
4623690009 switch from github.com/libp2p/go-libp2p-core to core 2022-08-17 17:13:02 +03:00
Marten Seemann
40727b1b00 switch from github.com/libp2p/go-eventbus to p2p/host/eventbus 2022-08-17 12:20:25 +03:00
Marten Seemann
6631bfb011 basichost: remove usage of MultistreamServerMatcher in test (#1680) 2022-08-17 02:08:40 -07:00
web3-bot
eff72c4afa sync: update CI config files (#1678)
* bump go.mod to Go 1.18 and run go fix

* bump go.mod to Go 1.18 and run go fix

* bump go.mod to Go 1.18 and run go fix

* bump go.mod to Go 1.18 and run go fix

* run gofmt -s

* update .github/workflows/go-test.yml

* update .github/workflows/go-check.yml

* stop using the deprecated io/ioutil package

Co-authored-by: web3-bot <web3-bot@users.noreply.github.com>
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-08-17 01:05:51 -07:00
Marten Seemann
d8c4f163a3 chore: use the new multiaddr.Contains function (#1618) 2022-06-28 01:35:22 -07:00
Marco Munizaga
3517eae205 autonat: fix flaky TestAutoNATPrivate (#1581)
* Use expectEvent and scale duration for CI

* Use 3 seconds
2022-06-02 02:44:02 -07:00
Marten Seemann
fd697bb605 basichost: fix flaky TestSignedPeerRecordWithNoListenAddrs (#1559) 2022-06-01 04:10:41 -07:00
Marten Seemann
5c218cf55e basichost: fix flaky TestSignedPeerRecordWithNoListenAddrs (#1488) 2022-05-16 11:50:39 -07:00
Marten Seemann
3effab121a switch from github.com/libp2p/go-libp2p-swarm to p2p/net/swarm 2022-04-21 13:35:04 +01:00
Andrew Gillis
e8d3df92f7 Resolve addresses when creating a new stream (#1342)
* Resolve addresses when creating a new stream

BasicHost.NewStream will try to establish a connection if one doesn't already exist.  This will fail if the hosts addresses have not yet been resolved.  This PR resolves the hosts addresses before creating the stream and possible new connection.

Fixes #1302

* Changes from review comments
2022-03-31 02:45:20 -07:00
Marten Seemann
741348ec9c update import paths to use p2p/host/autonat 2021-12-22 13:26:20 +04:00
Marten Seemann
bf0203c6d3 fix flaky BasicHost tests 2021-09-26 16:00:50 +01:00
Marten Seemann
b7bee3855c remove the context from the libp2p and from the Host contructor 2021-09-18 14:06:56 +02:00
Marten Seemann
29da01af70 update go-libp2p-core to v0.10.0 2021-09-17 18:50:15 +02:00
Marten Seemann
2d07a0d973 chore: update go-libp2p-autonat to v0.5.0 2021-08-30 10:57:52 +01:00
Marten Seemann
82a43f7abd remove deprecated basichost.New constructor 2021-08-16 16:49:28 +02:00
Louis Thibault
fbcfca7ac3 Make BasicHost.evtLocalAddrsUpdated event emitter stateful. 2021-08-02 10:16:19 -04:00
Steven Allen
c7902333be test: deflake TestProtoDowngrade
1. Don't write "nil". Not all writers handle this well.
2. Write/read an entire string.
3. Improve debuggability.
4. Move the sleep. We _don't_ need to wait for disconnect notifications.
   We _do_ need to wait for the protocol event change to propagate.
2021-04-30 17:30:36 -07:00
Steven Allen
a6747e5b72 test: deflake tests 2021-04-29 22:20:44 -07:00
web3-bot
218f33bc62 run gofmt -s 2021-04-29 21:35:37 +00:00
vyzo
a78f048d9c fix tests 2021-04-12 13:40:10 +03:00
Will Scott
c2c5918483 fix autonat race
fix #7947
move `BasicHost.AutoNat` to a private field (it has no public method and shouldn't be accessed afaik.
Instead add a setter for config that sets it while holding the address mutex to prevent reads of the
field at the same time.
2021-02-26 23:21:36 -08:00
Steven Allen
024f1af9ae fix: obey new stream timeout 2020-12-08 14:35:58 -08:00
Will
7cfc4e645e Bump Autonat version & validate fixed call loop in .Addrs (#988)
* add test for host address with attached autonat
* bump autonat release
2020-08-03 14:33:21 -04:00
Steven Allen
9cd6aaa9ea Fix address advertisement bugs (#974)
* fix: use all interface addresses when we can't find the default route
* fix: don't add advertise unspecified addresses
* fix: resolve addresses before looking up observed addresses
* fix: only advertise global unicast
* fix: filter link-local addresses from advertisement
* test: fix basic host addr tests
2020-07-07 16:41:45 -07:00
Aarsh Shah
3a1d20b748 Filter Interface Addresses (#936)
* Filter Host Addresses
2020-05-29 19:46:58 +05:30
Yusef Napora
82c11bce2a sleep longer in test 2020-05-19 16:15:28 -04:00
Yusef Napora
bd9e7b59ce detect listen addr changes in BasicHost 2020-05-19 16:12:56 -04:00
Yusef Napora
3364dccbbf make test fail to demonstrate issue 2020-05-19 14:38:25 -04:00
Yusef Napora
0d6e02e95b add test to demo missing peer records after listen 2020-05-19 14:20:24 -04:00
Raúl Kripalani
d9d18512ca fix a compilation error introduced in 077a818. (#919) 2020-05-12 17:24:58 +01:00
Yusef Napora
077a81814f exchange signed routing records in identify (#747)
*  Exchange signed routing records in identify


Co-authored-by: Aarsh Shah <aarshkshah1992@gmail.com>
2020-04-30 11:06:31 +05:30
Steven Allen
bd040ba050 fix: refactor logic for identifying connections
0. NEVER call `peerstore.SetProtocols(p)` (clear the protocol set). Given the
   new identify events, if someone looked in the peerstore at the wrong time, they
   could decide that the peer no longer speaks some protocol.
1. Reliably wait for identify before trying to open a stream. The old logic was
   _really_ racy.
2. Avoids potentially calling identify on the same connection multiple times.
3. Calls identify as early as possible. Previously, we'd invoke identify on
   inbound connections using an event that was only invoked _after_ all `Connected`
   event handlers completed. Now we invoke identify from a `Connected` handler.
2020-04-24 19:05:22 -07:00
Aarsh Shah
615f125342 Remove goprocess from Host (#865)
* remove goprocess from Host
2020-04-06 11:34:45 +05:30
Aarsh Shah
82be3ee46f signal address change 2020-03-25 00:10:23 +05:30
Aarsh Shah
ed4646f711 local addr updated event 2020-03-19 19:05:15 +05:30