v0.32.0
🔦 Highlights
WebRTC Direct
This release adds support for WebRTC Direct. WebRTC Direct allows browser nodes to connect to go-libp2p directly, without any configuration (e.g. TLS certificates) needed on the go-libp2p side. This is useful for browser nodes that aren’t able to use Webtransport. Note that WebRTC Direct cannot be used to connect a browser node to a go-libp2p node behind a NAT / firewall. This requires using WebRTC, which is currently being worked on #2009.
Happy Eyeballs for TCP
In the last couple of releases we’ve shipped Smart Dialing and Black hole Detection. This release continues our effort to improve the dial prioritisation logic to avoid spurious dials with the introduction of Happy Eyeballs for TCP addresses. As recommended by RFC 8305, when dialing a peer’s TCP addresses, we now dial the IPv6 address first and only dial the peer’s IPv4 address if we have not established the IPv6 TCP connection within 250ms.
Misc
host.NewStream
now waits for a hole punched connection to be available rather than returningnetwork.ErrTransientConn
immediately.- go-libp2p now works on riscv64 architectures.
Changelog
- chore: update examples to v0.31 by @p-shahi in #2544
- libp2phttp: don't initialise ServeMux if not nil by @sukunrt in #2548
- basichost: handle the SetProtocol error in NewStream by @marten-seemann in #2555
- swarm: don't dial unspecified addresses by @sukunrt in #2560
- examples: stop using deprecated peer.ID.Pretty by @Icarus9913 in #2563
- upgrader: drop support for multistream simultaneous open by @marten-seemann in #2557
- WebRTC Direct transport implementation by @marten-seemann in #2337
- mock: use go.uber.org/mock by @sukunrt in #2540
- core/peer: remove deprecated Encode function by @marten-seemann in #2566
- core/peer: remove deprecated ID.Pretty method by @marten-seemann in #2565
- websocket: don't resolve /dnsaddr addresses by @marten-seemann in #2571
- swarm: fix DialPeer behaviour for transient connections by @sukunrt in #2547
- webrtc: fail Write early if deadline has exceeded before the call by @sukunrt in #2578
- webrtc: put buffer back to pool by @sukunrt in #2574
- webrtc: fix deadlock on connection close by @sukunrt in #2580
- update gomock to v0.3.0 by @marten-seemann in #2581
- config: warn if connmgr limits conflict with rcmgr by @piersy in #2527
- quicreuse: remove QUIC metrics tracer by @marten-seemann in #2582
- interop: fix redis env var by @sukunrt in #2585
- libp2phttp: don't strip
/
suffix when mounting handler by @sukunrt in #2552 - Fix typos by @vuittont60 in #2600
- swarm: add loopback to low timeout filter by @dennis-tra in #2595
- webrtc: correctly report incoming packet address on muxed connection by @sukunrt in #2586
- Spell Check: Fix typos by @tkzktk in #2604
- swarm: wait for transient connections to upgrade for NewStream by @sukunrt in #2542
- Fix missing deprecation tag by @librick in #2605
- tcp: fix build on riscv64 by @marten-seemann in #2590
- webrtc: fix race in TestMuxedConnection by @sukunrt in #2607
- swarm: use happy eyeballs ranking for TCP dials by @sukunrt in #2573
- circuitv2: don't check ASN for private addrs by @sukunrt in #2611
- swarm: cleanup stream handler goroutine by @sukunrt in #2610
- swarm: use typed atomics by @marten-seemann in #2612
- test/basichost: fix flaky test due to rcmgr by @marten-seemann in #2613
- update quic-go to v0.39.1, set a static resumption token generator key by @marten-seemann in #2572
- ci: migrate to renamed interop test action by @thomaseizinger in #2617
- swarm: fix recursive resolving of DNS multiaddrs by @marten-seemann in #2564
- webrtc: fix race in TestRemoveConnByUfrag by @sukunrt in #2620
- identify: don't filter dns addresses based on remote addr type by @sukunrt in #2553
- chore: update dependencies for v0.32 release by @sukunrt in #2621
- chore: update js-libp2p examples repo by @sukunrt in #2624
New Contributors
- @Icarus9913 made their first contribution in #2563
- @piersy made their first contribution in #2527
- @vuittont60 made their first contribution in #2600
- @tkzktk made their first contribution in #2604
- @librick made their first contribution in #2605
Full Changelog: v0.31.0...v0.32.0