Skip to content

Releases: libp2p/go-libp2p

v0.35.3

15 Jul 16:48
Compare
Choose a tag to compare

What's Changed

  • Fix a case where transient streams were not properly reset #2869

Full Changelog: v0.35.2...v0.35.3

v0.35.2

04 Jul 19:03
604f3ff
Compare
Choose a tag to compare

What's Changed

  • release v0.35.2
  • webtransport: close underlying h3 connection (#2862)
  • peerstore: don't intern protocols (#2860)
  • chore: Bump gorilla/websocket to 1.5.3
  • chore: Bump fx to v1.22.1 (#2857)
  • PR Comments
  • Add a transport level test to ensure we close conns after rejecting them by the rcmgr
  • Close quic conns when wrapping conn fails
  • pstoremanager: fix connectedness check

Full Changelog: v0.35.0...v0.35.2

v0.35.1

13 Jun 17:10
Compare
Choose a tag to compare

What's Changed

  • identify: Don't filter addr if remote is neither public nor private (#2820)
  • identify: fix bug in observed address handling (#2825)
  • identify: add test for observed address handling (#2828)
  • libp2phttp: workaround for ResponseWriter's CloseNotifier (#2821)
  • circuitv2: improve voucher validation (#2826)
  • webrtc: fix ufrag prefix for dialing (#2832)

Full Changelog: v0.35.0...v0.35.1

v0.35.0

24 May 20:46
f52cec1
Compare
Choose a tag to compare

⚠️ Breaking Changes ⚠️

  • Resource Manager: ConnLimitPerCIDR is now called ConnLimitPerSubnet. The field previously named BitMask is now called PrefixLength. Apologies for the churn, but the old names were vague and confusing.

πŸ”¦ Highlights

  • Resource Manager: Renames ConnLimitPerCIDR to ConnLimitPerSubnet
  • Resource Manager: Able to provide connection limits for specific IP address blocks.
    • By default we new allow unlimited connections from localhost. Should help fix tests that broke with the previous behavior of limiting to only 8 connections per IP address.

What's Changed

  • rcmgr: Support specific network prefix in conn limiter by @MarcoPolo in #2807

Full Changelog: v0.34.1...v0.35.0

v0.34.1

23 May 18:37
879faab
Compare
Choose a tag to compare

Refer to the v0.34.0 release notes for breaking changes in v0.34

What's Changed

  • rcmgr: Backwards compatibility if you wrap default impl by @MarcoPolo in #2805
  • config: fix "Insecure-security" constructor by @sukunrt in #2810

Full Changelog: v0.34.0...v0.34.1

v0.34.0

20 May 17:23
1e2adf3
Compare
Choose a tag to compare

⚠️ Breaking Changes ⚠️

  1. Transient Connections are now called Limited Connections. The prior terminology was confusing to many, and conflicted with the transient definition in the resource manager. The term actually referred to a connection that was relayed and limited in some aspect (either data or time).
  2. libp2phttp: The well-known resource for libp2p protocols has changed. See the discussion thread for context. This means that new clients will not be able to reach the well-known endpoint automatically on old servers, and new servers won't respond to the old well-known endpoint to old clients. If you do not fully control the deployment of this, you should set EnableCompatibilityWithLegacyWellKnownEndpoint in libp2phttp.Host to true to enable backwards compatibility. This is not the default behavior because libp2phttp is still experimental and things are generally permitted to break. In this case supporting backwards compatibility was simple enough and we generally don't like breaking users even on an experimental feature.
  3. ResourceManager: This probably only affects 0.01% of use cases. The resource manager is now IP aware. Meaning it will set limits for how many connections it tracks per IP address or IP Address range (CIDR subnet). Look at β€ŽWithLimitPeersPerCIDRβ€Ž for how to configure it. Almost all users will not need to touch this. If you're tests are suddenly breaking, this is might be why

πŸ”¦ Highlights

WebRTC Direct

  • We've significantly improved support for webrtc-direct transport with multiple security and performance fixes.
  • Based on the experience of webrtc-direct on v0.34 we intend to make it non experimental in v0.35

Transient Connections are now called Limited Connections

  • Connections to peers over relayed or other limited connections, previously called transient are now called limited throughout the code. Limited is more descriptive of the connection's behavior and it avoids conflict with Resource Manager's Transient scope.
  • For Connections, the Transient connection state has been renamed to Limited. This is a breaking change and you'll have to replace uses of conn.Stat().Transient with conn.Stat().Limited
  • Network context functions like network.WithUseTransient are deprecated, use their limited alternatives like network.WithUseLimited.

Limited Connectedness state

  • Peers connected to the host via relayed or any other limited connection now report their connectivity state as Limited.
  • This state is also reflected in EvtPeerConnectednessChanged event. Consumers only interested in peers connected over Unlimited connections can ignore events with Limited Connectedness. NOTE: This changes the behavior of the Connected Connectedness state. Previously it included all limited connections and now it doesn't. To keep existing behavior in your code you can replace checks connectedness == network.Connected with connectedness != network.NotConnected

What's Changed

New Contributors

Full Changelog: v0.33.0...v0.34.0

v0.33.2

28 Mar 22:53
fccfbe7
Compare
Choose a tag to compare

A patch update to bring in a fix from go-multiaddr

Full Changelog: v0.33.1...v0.33.2

v0.33.1

18 Mar 21:27
cbfd896
Compare
Choose a tag to compare

The release updates the quic-go dependency to v0.42.0. This update includes a mitigation for a memory exhaustion attack against QUIC's connection ID mechanism.

Full Changelog: v0.33.0...v0.33.1

v0.33.0

21 Feb 15:57
972278a
Compare
Choose a tag to compare

What's Changed

πŸ”¦ Highlights

TLS encryption for TCP by default

For TCP Connections, the default encryption scheme has been changed from noise to TLS for better performance. See PR for details.

Note: When making TCP connections to nodes that only support noise this will add 1 extra round trip for connection establishment. If you wish to avoid this and keep noise the default, configure your node to prefer noise over TLS like

	node, err := libp2p.New(
        ... other options
		libp2p.Security("/noise", noise.New),
		libp2p.Security("/tls/1.0.0", libp2ptls.New),
	)

Misc

  • WebRTC streams now wait for a FIN_ACK before closing data channels. For more details see the specs PR: libp2p/specs#582
  • Removed unused public function crypto.GenerateEKeyPair. This was used in SECIO which has been long deprecated.
  • This release drops support for go1.20.

Changelog

New Contributors

Full Changelog: v0.32.1...v0.33.0

v0.32.2

13 Dec 05:17
Compare
Choose a tag to compare

This release contains the quic-go fix for the Honeybadger vulnerability: https://github.com/quic-go/quic-go/releases/tag/v0.39.4

Full Changelog: v0.32.1...v0.32.2