Skip to content

Releases: libp2p/go-libp2p

v0.38.1

19 Dec 00:01
7ce9c50
Compare
Choose a tag to compare

What's Changed

  • fix(autorelay): Move relayFinder peer disconnect cleanup to separate goroutine by @MarcoPolo in #3105
  • ci: Install specific protoc version when generating protobufs by @MarcoPolo in #3112
  • fix(httpauth): Correctly handle concurrent requests on server by @MarcoPolo in #3111

Refer the the release notes in v0.38.0 for all things new in v0.38.

Full Changelog: v0.38.0...v0.38.1

v0.38.0

18 Dec 19:22
88ae979
Compare
Choose a tag to compare

Highlights

  • You can now use the same port for TCP and WebSocket. Refer to the
    TestSharedTCPAddr for an example on how to enable this. Currently this is
    opt-in. In a future release, we may enable this as default behavior when you
    leave the port unspecified or when you explicitly set the same port.

  • The eventbus will now log error messages when it detects slow consumers. It's
    important for slow consumers to not stall the eventbus, as this can cause the
    core libp2p node to stall. Previously this was visible via metrics. This should
    help identify hard-to-debug issues without requiring metrics to be configured.

What's changed

New Contributors

Full Changelog: v0.37.0...v0.38.0

v0.37.2

26 Nov 17:25
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.37.1...v0.37.2

v0.37.1

25 Nov 07:56
Compare
Choose a tag to compare

Bug Fixes

  • Fixes an issue with webrtc-direct listeners where the short handshake queue dropped some connection requests. For more details see: #3040
  • Fixes a race condition when multistream lazy negotiation was used with rust-libp2p or js-libp2p for write only streams. See #3038 for details

What's Changed

  • 0606295 refactor(libp2phttp): don't require specific port for the HTTP host example (#3047)
  • ae0d78a fix: Defer resource usage cleanup until the very end (#3042)
  • df02f4d chore: update go-multistream to v0.6.0 (#3041)
  • 09ae179 fix: obsaddr: do not record observations over relayed conn (#3043)
  • 2404f75 webrtc: handshake more connections in parallel (#3040)
  • 994b69e fix: basichost: Use NegotiationTimeout as fallback timeout for NewStream (#3020)

Full Changelog: v0.37.0...dont-delete/release-v0371

v0.37.0

22 Oct 20:08
83d458c
Compare
Choose a tag to compare

Breaking Changes

  • The libp2p.MultiaddrResolver option now takes an interface rather than a
    specific pointer. This decouples the resolver from a specific implementation
    and also defines a better interface that is aware of bounds.
    • The swarm exports a new type ResolverFromMaDNS that implements this interface from a *madns.Resolver. The one line diff is essentially:
    -libp2p.MultiaddrResolver(rslv)
    +libp2p.MultiaddrResolver(swarm.ResolverFromMaDNS{Resolver: rslv})

🔦 Highlights

HTTP Peer ID Authentication (#2854)

Authenticate a peer's identity over HTTP. This works on both libp2p stream backed HTTP transports and standard HTTP transports. There is also browser support in the js-libp2p module: https://github.com/libp2p/js-libp2p-http-fetch/tree/main.

See the spec for more details on how it works: https://github.com/libp2p/specs/blob/master/http/peer-id-auth.md

Experimental WithFxOption (#2956)

A new libp2p Config option lets you add custom Fx options to the libp2p constructor. Use this to get access to and provide libp2p services.

For example, this allows you to easily get a reference to the ID Service of a libp2p Node. Refer to this test for a concrete code example: https://github.com/libp2p/go-libp2p/blob/c4c3a34545aab54b5b825a7adbd6a3db2c680afa/fx_options_test.go#L50-L60

In the future we'd like to expose the Fx options libp2p uses to construct itself so that users can better customize their libp2p nodes and integrate it seamlessly into their applications.

Changelog

From v0.36.5 to v0.37.0

  • feat: Add WithFxOption (#2956)
  • Make BlackHoleState type public (#2917)
  • connmgr: reduce log level for untagging untracked peers
  • feat(websocket): switch the underlying http server logger to use ipfs/go-log (#2985)
  • fix(websocket): re-enable websocket transport test (#2987)
  • relay: make only 1 reservation per peer (#2974)
  • libp2phttp: HTTP Peer ID Authentication (#2854)
  • chore: update quic-go to v0.48.1
  • Add backoff for updating local IP addresses on error (#2999) Reporting credit to @elecbug
  • fix: swarm: refactor address resolution (#2990)
  • peerstore: limit number of non connected peers in addrbook (#2971)
  • swarm: add a peer dial latency metric (#2959)
  • autonat: fix interaction with autorelay (#2967)

Full Changelog: v0.36.5...v0.37.0

New Contributors

v0.36.5

04 Oct 09:13
Compare
Choose a tag to compare

What's Changed

  • basichost: ensure no duplicates in Addrs output #2980
  • autonatv2: recover from panics #2992
  • chore: update go-multiaddr-dns to v0.4.0 #2994

Note

In the previous release, we called out a bug in go1.23 unbuffered timers that deadlocked go-libp2p. This has been fixed in go1.23.2. You can safely update your go.mod's go version to go1.23 now.

Full Changelog: v0.36.4...v0.36.5

v0.36.4

24 Sep 18:11
Compare
Choose a tag to compare

Note

Caution

Due to a golang/go#69312 in unbuffered timers introduced in go1.23, libp2p deadlocks if the go version in your go.mod file is go1.23. To fix this, either use the environment variable GODEBUG="asynctimerchan=1", or downgrade the go version in your go.mod file.

What's Changed

Full Changelog: v0.36.3...v0.36.4

v0.35.5

24 Sep 18:05
Compare
Choose a tag to compare

Note

  • Due to a race condition in unbuffered timers introduced in go1.23, libp2p deadlocks if the go version in your go.mod file is go1.23. To fix this, either use the environment variable GODEBUG=asynctimerchan=1, or downgrade the go version in your go.mod file.

What's Changed

Full Changelog: v0.35.4...v0.35.5

v0.36.3

04 Sep 21:10
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.36.2...v0.36.3

v0.36.2

16 Aug 15:11
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.36.1...v0.36.2