v0.36.1
⚠️ Breaking Changes ⚠️
Conn.NewStream
,Network.NewStream
andHost.NewStream
timeout after 15 seconds, if no deadline is specified on the providedctx
.
🔦 Highlights
AutoNAT v2
- This release ships with an autonat-v2 service. The service allows users to check their rechability for individual addresses.
- For more details of the protocol, refer to the specs:
- BasicHost doesn't use autonat-v2 right now for verifying reachability. Once there are enough autonat-v2 servers in the IPFS network, we will use autonat-v2 to infer the node's reachability, and deprecate autonat-v1.
- AutoNAT v2 is disabled by default. To enable, use the
EnableAutoNATV2
option.
WebRTC
WebRTC Direct transport is now Non-Experimental
/webrtc-direct
is now enabled by default.- We will provide patch releases for any bug fixes or security vulnerabilities in WebRTC just like other transports.
Share listening port with QUIC
- WebRTC Direct nodes, like WebTransport nodes can use the same port as the QUIC transport.
h, err = libp2p.New(
libp2p.ListenAddrStrings(
"/ip4/0.0.0.0/udp/4242/quic-v1",
"/ip4/0.0.0.0/udp/4242/webrtc-direct"),
)
- Servers now don't need to open an extra port in their firewalls. This also enables WebRTC Direct nodes to infer their publicly visible address on machines behind a NAT.
What's Changed
- Remove out-dated code in example readme by @MarcoPolo in #2818
- upgrade checkout action to version with node20 by @cario-dev in #2790
- limit ping duration to 30s by @vyzo in #1358
- chore: Update fx by @MarcoPolo in #2819
- identify: Don't filter addr if remote is neither public nor private by @MarcoPolo in #2820
- identify: fix observed address handling by @ivan4th in #2825
- identify: add test for observed address handling by @ivan4th in #2828
- Add go-spacemesh to the list of notable users by @lrettig in #2830
- libp2phttp: workaround for ResponseWriter's CloseNotifier by @MarcoPolo in #2821
- circuitv2: improve voucher validation by @sukunrt in #2826
- webrtc: fix ufrag prefix for dialing by @sukunrt in #2832
- webrtc: add a test for establishing many connections by @sukunrt in #2801
- autonatv2: implement autonatv2 spec by @sukunrt in #2469
- pstoremanager: fix connectedness check by @sukunrt in #2845
- swarm: improve dial worker performance for common case by @sukunrt in #2844
- libp2phttp.Host implements RoundTripper by @MarcoPolo in #2840
- metricshelper: improve checks for ip and transport by @sukunrt in #2849
- libp2p: use rcmgr for autonat dials by @sukunrt in #2842
- fix: Close conn in quic listener when wrapping fails by @MarcoPolo in #2852
- autonatv2: add server metrics for dial requests by @sukunrt in #2848
- chore: Bump fx to v1.22.1 by @MarcoPolo in #2857
- chore: Bump gorilla/websocket to 1.5.3 by @MarcoPolo in #2861
- peerstore: don't intern protocols by @sukunrt in #2860
- webtransport: close underlying h3 connection by @sukunrt in #2862
- Test that the conn attempt is dropped when the rcmgr blocks it for WebRTC by @MarcoPolo in #2856
- basichost: reset new stream if rcmgr blocks by @sukunrt in #2869
- Adding tau to
Notable Users
in README.md by @samyfodil in #2870 - websocket: don't return transport.ErrListenerClosed on closing listener by @sukunrt in #2867
- Updated readme as per latest MultiversX rename by @sstanculeanu in #2874
- feat: libp2phttp
/http-path
by @MarcoPolo in #2850 - basichost: reset stream if SetProtocol fails by @sukunrt in #2875
- chore: /quic → /quic-v1 by @lidel in #2888
- config: fix AddrFactory for AutoNAT by @sukunrt in #2868
- webrtc: remove experimental tag, enable by default by @sukunrt in #2887
- quic: add support for quic-go metrics by @sukunrt in #2823
- chore: update protobufs by @sukunrt in #2893
- fix(discovery): allow FindPeers limit to be 0 by @guillaumemichel in #2894
- examples/chat-with-mdns: default to a random port by @Jorropo in #2896
- feat: WebRTC reuse QUIC conn by @MarcoPolo in #2889
- ObsAddrManager: Infer external addresses for transports that share the same listening address. by @MarcoPolo in #2892
- Chore: bump deps by @MarcoPolo in #2902
- udpmux: Don't log an error if canceled because of shutdown by @MarcoPolo in #2903
- chore: update pion/sctp by @sukunrt in #2906
- swarm: add a default timeout to conn.NewStream by @sukunrt in #2907
- Release v0.36.0 by @MarcoPolo in #2905
New Contributors
- @cario-dev made their first contribution in #2790
- @ivan4th made their first contribution in #2825
- @lrettig made their first contribution in #2830
- @samyfodil made their first contribution in #2870
- @sstanculeanu made their first contribution in #2874
- @lidel made their first contribution in #2888
- @guillaumemichel made their first contribution in #2894
Full Changelog: v0.35.0...v0.36.1