Skip to content

v0.23.0

Compare
Choose a tag to compare
@marten-seemann marten-seemann released this 20 Sep 20:46
· 653 commits to master since this release
f3f0e93

🔦 Highlights

WebTransport

go-libp2p now has experimental support for WebTransport, powered by webtransport-go. WebTransport is a brand-new transport protocol currently under development at the IETF and w3c, and already supported by Chrome. WebTransport allows browsers to establish an encrypted, stream-multiplexed connection (running on top of QUIC) to servers.

js-libp2p is currently working on a WebTransport client implementation: https://github.com/libp2p/js-libp2p-webtransport.

How to enable

Because support is still experimental, WebTransport has be explicitly enabled. When constructing a node, pass in the WebTransport transport, and configure a WebTransport listen address:

host, err := libp2p.New(
	libp2p.DefaultTransports,
	libp2p.Transport(webtransport.New),
        libp2p.ListenAddrStrings("/ip4/0.0.0.0/udp/1234/quic/webtransport"),
)

Other

  • It's now possible to disable reuseport for the QUIC transport (#1476). Note: If disabled, QUIC cannot be use for NAT hole punching.
  • If no listen addresses are specified, a libp2p now listens on TCP and QUIC (both IPv4 and IPv6).
  • Transports can now have a say in how a multiaddr is resolved: #1719. This allows transports to modify the multiaddr before the address is dialed. A transport can set the SNI field for TLS or decide to do its own domain name resolution.
  • Yamux now regularly remeasures the RTT of the underlying connection. The RTT is used to auto-tune the size of the receive buffer.
  • The QUIC and TCP transports now don't collect metrics, unless the WithMetrics option is passed to their constructor (QUIC change, TCP change).

Changelog

Contributors

Contributor Commits Lines ± Files Changed
Marten Seemann 107 +6536/-6071 405
Gus Eggert 2 +3180/-87 13
Marco Munizaga 9 +1086/-340 33
Guilhem Fanton 1 +216/-48 5
João Oliveirinha 1 +124/-38 11
Toby 1 +89/-36 4
Jorropo 6 +28/-78 11
KevinZønda 1 +81/-20 2
Benedikt Spies 1 +75/-12 8
Rod Vagg 5 +69/-9 9
Tshaka Eric Lekholoane 1 +57/-19 6
Steven Allen 1 +46/-26 8
ipfs-mgmt-read-write[bot] 2 +52/-0 2
libp2p-mgmt-read-write[bot] 1 +26/-0 1
Laurent Senta 1 +13/-6 1
mojatter 1 +9/-8 1
Marcel Gregoriadis 1 +9/-0 1
Chinmay Kousik 1 +7/-0 1
xiabin 1 +1/-1 1
fanweixiao 1 +1/-1 1
Bryan Stenson 1 +1/-1 1
Abirdcfly 1 +1/-1 1