Commit Graph

5058 Commits

Author SHA1 Message Date
Marco Munizaga 8e90ed8c2c
fix: autorelay: treat static relays as just another peer source (#1875)
* Treat static relays as just another peer source

* Actually call the options in WithStaticRelays

* Increase timeout for CI
2022-11-17 13:09:36 -08:00
Marco Munizaga 0b4867c117
feat: quic,webtransport: enable both quic-draft29 and quic-v1 addrs on quic. only quic-v1 on webtransport (#1881)
* transport.Listener  returns a list of multiaddrs

* Support both QUIC versions in QUIC transport

* Support only QUIC v1 in webtransport

* Update dialMatcher

* Update tests

* Only use draft 29 when dialing if the server is a draft 29 server

* Removes QUIC draft 29 addrs if we have a QUIC v1 addr

* Lint fix

* Add changes to deterministic certhashes after rebase

* Update p2p/transport/quic/options.go

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

* Update p2p/transport/quic/listener.go

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

* Update p2p/transport/quic/quic_multiaddr.go

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

* Stylize QUIC correctly

* Update doc around ListenClose

* Preallocate a bit extra to avoid paying for an allocation later

* Keep a list of multiaddrs, then join

* PR nits

* Close transport or listener just once

* Update go-multiaddr

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-11-17 10:01:19 -08:00
Dennis Trautwein f4ddf5933a
holepunch: add multiaddress filter (#1839)
* feat: add holepunch address filter option

* fix: exit early if all addresses were filtered out

* incorporate PR feedback

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

* remove: holepunch default filter

* fix: hole punch failing test

* holepunch: fix race condition in test when adding holepunch service

* improve holepunch filter interface comments

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-11-17 02:58:46 -08:00
Marten Seemann 84ded7d47a
README: remove broken links from table of contents (#1893) 2022-11-16 18:55:10 -08:00
Marten Seemann 8a05c48665
quic: update quic-go to v0.31.0 (#1882) 2022-11-16 16:26:31 -08:00
Marten Seemann da9005d783
Merge pull request #1887 from libp2p/muxer-integration-test
add an integration test for muxer selection
2022-11-16 18:23:40 -06:00
Marten Seemann d813808745 upgrader: pass values through a channel instead of sharing state 2022-11-17 12:42:54 +13:00
Michele Mastrogiovanni 7357a00623
core/network: fix typo 2022-11-16 15:24:05 -08:00
Marten Seemann 4b74c6553f add an integration test for muxer selection 2022-11-17 12:03:28 +13:00
Marten Seemann 9a5faceca1 upgrader: expose the negotiated stream muxer via the ConnState 2022-11-17 12:03:28 +13:00
Marten Seemann 133f002117 config: supply the host ID to fx
This is needed to construct the insecure transport.
2022-11-17 12:03:28 +13:00
Marten Seemann 090a084aea
Merge pull request #1888 from libp2p/early-muxer-negotiation-preferences
tls / noise: prefer the client's muxer preferences
2022-11-16 17:02:11 -06:00
Marten Seemann 0957a9d212 noise: prefer the client's muxer preference 2022-11-17 11:10:50 +13:00
Marten Seemann c1e0c7b757 tls: prefer the client's muxer preference 2022-11-17 11:10:49 +13:00
Marten Seemann 04a43b13a9
upgrader: absorb the muxer_multistream.Transport into the upgrader (#1885) 2022-11-16 14:09:21 -08:00
Neel Virdy d8d2efafdd
Apply service peer default (#1878) 2022-11-15 14:56:58 -08:00
Marco Munizaga a0432e70af
webtransport: use deterministic TLS certificates (#1833)
* Use deterministic TLS certificates for webtransport

* Update test to work with buckets

* Make sure to overlap and use a random offset

* Fixup mistaken change in other test

* Add QuickCheck tests for cert behavior

* Lint fix

* Add more tests

* Add webtransport integration test

* Use same key

* Actually offset by at least clockSkew

* Use seeded key for certs after reboot test

* PR comments

* Remove debug code

* Fix calculation for cert having been valid

Fixes the logic that a cert has been valid for a clockSkew by
subtracting the clockSkew from the start time rather than incorporating
it into the offset. The offset should be used to shift the buckets.

* Update comment

* Lint fix

* Update TestGetCurrentBucketStartTimeIsWithinBounds to include clockSkew calculation

* Rebase fixes
2022-11-14 07:44:25 -08:00
Marten Seemann c48e78f073
remove deprecated StaticRelays option (#1868) 2022-11-11 00:23:28 -08:00
Marten Seemann bdb840fba2
autorelay: remove the default static relay option (#1867)
These relays were decomissioned recently.
2022-11-10 23:30:49 -08:00
Marten Seemann 8a43c6b1ae
core/protocol: remove deprecated Negotiator.NegotiateLazy (#1869) 2022-11-10 23:30:13 -08:00
Marten Seemann e538b40615
Merge pull request #1858 from libp2p/fx
config: use fx dependency injection to construct transports
2022-11-10 18:50:19 +00:00
Marten Seemann b90b74f3a5 check the options passed to transport constructor match 2022-11-10 12:42:10 +00:00
Marten Seemann d0704fdc7e config: forward fx output to the logger 2022-11-10 10:09:50 +00:00
Marten Seemann 7d0b6ba933 refactor the transport constructor code to remove TransportWithOptions 2022-11-10 10:09:48 +00:00
Marten Seemann 479dbb93c4 restrict the Muxer option to already constructed network.Multiplexers 2022-11-10 10:09:47 +00:00
Marten Seemann cbe50095f3 config: use fx to construct security transports 2022-11-10 10:09:45 +00:00
Marten Seemann f7c8c0247b config: use fx to construct the transport upgrader 2022-11-10 10:09:38 +00:00
Marten Seemann 30e59560d3 upgrader: simplify the constructor 2022-11-10 10:07:17 +00:00
Marten Seemann 1367a62d52 use fx dependency injection to construct transports 2022-11-10 10:07:15 +00:00
Chinmay Kousik c334288f8f
noise: add an option to allow unknown peer ID in SecureOutbound (#1823) 2022-11-09 04:10:32 -08:00
Marco Munizaga 0575c19f91
Add some guard rails and docs (#1863) 2022-11-08 17:12:28 -08:00
Marco Munizaga da3adbc438
Fix concurrent map access in connmgr (#1860) 2022-11-08 17:06:38 -08:00
Dennis Trautwein 2d28a045fe
fix: return filtered addrs (#1855) 2022-11-08 14:52:43 -08:00
Håvard Anda Estensen 21dc42bd72
chore: preallocate slices (#1842)
* Preallocate slices

* Move slice allocs to right before they're used

* Revert slice assignments to append

* Don't preallocate for tests or deprecated code

* Don't preallocate too much
2022-11-06 04:48:40 -08:00
Marco Munizaga 14a37349c0
Close ping stream when we exit the loop (#1853) 2022-11-02 15:55:11 -07:00
Marten Seemann 277b96e421
tls: don't set the deprecated tls.Config.PreferServerCipherSuites field (#1845)
The field has been deprecated since Go 1.17.
2022-11-01 13:44:06 +00:00
Dennis Trautwein 24e7508536
routed host: search for new multi addresses upon connect failure (#1835)
* feat: search for new multi addresses upon connect failure

* test: add routed host obsolete maddr test

* incorporate pr feedback
2022-10-31 14:41:58 -07:00
Marten Seemann 4a556c8422
core/peerstore: removed unused provider addr ttl constant (#1848)
Co-authored-by: Dennis Trautwein <git@dtrautwein.eu>
2022-10-31 14:41:35 -07:00
Marten Seemann cbb0761f1a
basichost: improve protocol negotiation debug message (#1846) 2022-10-31 20:31:43 +00:00
julian88110 7465a509d0
noise: use Noise Extension to negotiate the muxer during the handshake (#1813)
* Muxer early selection over Noise protocol

* Address review points round 2

* Muxer selection according responder's preference

* Address some review points again.

* noise: regenerate the protobuf

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-10-25 10:11:19 -07:00
Marten Seemann c33f9104d4
Merge pull request #1832 from libp2p/webtransport-rcmgr
webtransport: use the rcmgr to control flow control window increases
2022-10-24 16:39:36 +01:00
Marten Seemann b50b4609ab webtransport: use the rcmgr to control flow control window increases 2022-10-24 13:24:06 +01:00
Marten Seemann c0a0aa010e rcmgr: make it possible to embed the NullResourceManager 2022-10-24 13:24:04 +01:00
Marten Seemann 012b8ddac4
chore: update quic-go to v0.30.0 (#1838) 2022-10-23 03:37:27 -07:00
Prithvi Shahi ff2240b9a7
roadmap: reorder priority, reorganize sections (#1831) 2022-10-20 15:55:30 -07:00
Marco Munizaga 3e156d0813
websocket: set the HTTP host header in WSS(#1834)
* Send host header

Co-authored-by: Thibault Meunier <thibault@cloudflare.com>

* Add comment and use splithostport

* Return error

* Defer the close

Co-authored-by: Thibault Meunier <thibault@cloudflare.com>
2022-10-20 02:51:05 -07:00
Marten Seemann 828486ea04
Merge pull request #1828 from libp2p/webtransport-qlogging
webtransport: make it possible to record qlogs (controlled by QLOGDIR env)
2022-10-14 20:49:25 +02:00
Jc0803kevin a401276e68
ipfs /api/v0/id is post (#1819) 2022-10-13 09:08:58 -07:00
Marten Seemann 28ca6e5139 quicutils: make the package internal 2022-10-12 19:48:05 +02:00
Marten Seemann ead3e4f981 webtransport: simplify listener constructor 2022-10-12 19:46:49 +02:00