Skip to content

fix(deps): update module github.com/libp2p/go-libp2p to v0.41.1 #3529

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Apr 4, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
github.com/libp2p/go-libp2p v0.30.0 -> v0.41.1 age adoption passing confidence

Release Notes

libp2p/go-libp2p (github.com/libp2p/go-libp2p)

v0.41.1

Compare Source

What's Changed

7059eb5 conngater: fix incorrect err return value (#​3219)
74c6860 fix(libp2phttp): bound NewStream timeout (#​3225)
ccc4849 webrtc: fix memory leak with udpmux.muxedConnection context (#​3243)
99a511f connmgr: fix transport association bug (#​3221)
eb3ff9f autonatv2: fix server dial data request policy (#​3247)
8ce45df Release v0.41.1

Full Changelog: libp2p/go-libp2p@v0.41.0...v0.41.1

v0.41.0

Compare Source

⚠︎ Breaking Changes

🔦 Highlights

Overall this is a fairly minor release focused on supporting the go-multiaddr v0.15.0.

  • Update to go-multiaddr v0.15. This is a pretty big release for go-multiaddr that should make it harder to misuse. See the v0.15.0 release notes for breaking changes: https://github.com/multiformats/go-multiaddr/releases/tag/v0.15.0
  • Uniform HTTP Peer ID Auth over native HTTP transport and HTTP over libp2p streams. See the http.Host Autthenticated HTTP example in the Go doc for an example of usage.
  • Some upnp fixes that should make upnp/nat-pmp more reliable and easier to debug. This fixes an issue with FRITZ!Box routers.

What's Changed

Full Changelog: libp2p/go-libp2p@v0.40.0...v0.41.0

v0.40.0

Compare Source

⚠ Breaking Change!

Introducing error codes mandated changing the error types returned by stream resets. All checks that depended on checking the error string or comparing equality with network.ErrReset, now need to use errors.Is(err, network.ErrReset). More details below in the error codes section.

🔦 Highlights

Error Codes

This releases introduces error codes for Stream Reset and Connection Close. This allows sending for more information to the peer about the error condition causing the abort. go-libp2p has already defined some error codes which are useful for many different use cases. You can find them in:
https://pkg.go.dev/github.com/libp2p/[email protected]/core/network#StreamErrorCode
and: https://pkg.go.dev/github.com/libp2p/[email protected]/core/network#ConnErrorCode

On streams, you can signal an error on reset by using:

str.ResetWithError(errCode)

On connections, you can signal an error on close by using:

conn.ResetWithError(errCode)

Not all transports support error codes. Most notably, WebTransport has no support for sending error codes at the moment. See the spec: https://github.com/libp2p/specs/pull/623 for more details.

If you want to define custom error codes for your application protocol, you can reserve a block for your application by opening a PR in the specs repo. The above mentioned spec has details on reserving error codes for applications. Until the spec is merged, you must open a PR targeting the spec's branch.

Breaking Change!

This introduces a breaking change for users who checked stream reset errors by testing for equality with network.ErrReset as err == network.ErrReset. These tests now need to use the errors.Is(err, network.ErrReset) test. Stream Resets now return either *network.StreamError if the stream was reset by remote, or *network.ConnError if the connection was closed by remote.

What's Changed

New Contributors

Full Changelog: libp2p/go-libp2p@v0.39.0...v0.40.0

v0.39.1

Compare Source

What's Changed

New Contributors

Full Changelog: libp2p/go-libp2p@v0.38.1...v0.39.1

v0.39.0

Compare Source

🔦 Highlights

This is a small release. The main thing is updating quic-go to v0.49.0 and enabling specific environments with the new WithDialerForAddr option.

Changelog

Full Changelog: libp2p/go-libp2p@v0.38.1...v0.39.0

v0.38.3

Compare Source

What's Changed

Full Changelog: libp2p/go-libp2p@v0.38.0...v0.38.3

v0.38.2

Compare Source

What's Changed

a4433e7 Release v0.38.2
9e08a02 tcpreuse: fix rcmgr accounting when tcp metrics are enabled (#​3142)
6735dd5 fix(net/nat): data race problem of extAddr (#​3140)
1ebb404 test: fix failing test (#​3141)
8f09a3e nat: ignore mapping if external port is 0 (#​3094)
1529945 tcpreuse: error on using tcpreuse with pnet (#​3129)
7397e65 chore: Update contribution guidelines (#​3134)
05b4afe tcp: fix metrics test build directive (#​3052)
1a2387c ci: get back on the main release track of release checker (#​3117)
051fe11 webtransport: fix docstring comment for getCurrentBucketStartTime

Full Changelog: libp2p/go-libp2p@v0.38.1...v0.38.2

v0.38.1

Compare Source

What's Changed

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

Full Changelog: libp2p/go-libp2p@v0.38.0...v0.38.1

v0.38.0

Compare Source

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: libp2p/go-libp2p@v0.37.0...v0.38.0

v0.37.2

Compare Source

What's Changed

Full Changelog: libp2p/go-libp2p@v0.37.1...v0.37.2

v0.37.1

Compare Source

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 https://github.com/libp2p/go-libp2p/issues/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: libp2p/go-libp2p@v0.37.0...dont-delete/release-v0371

v0.37.0

Compare Source

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: libp2p/go-libp2p@v0.36.5...v0.37.0

New Contributors

v0.36.5

Compare Source

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: libp2p/go-libp2p@v0.36.4...v0.36.5

v0.36.4

Compare Source

Note

[!CAUTION]
Due tohttps://github.com/golang/go/issues/69312312 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: libp2p/go-libp2p@v0.36.3...v0.36.4

v0.36.3

Compare Source

What's Changed

New Contributors

Full Changelog: libp2p/go-libp2p@v0.36.2...v0.36.3

v0.36.2

Compare Source

What's Changed

Full Changelog: libp2p/go-libp2p@v0.36.1...v0.36.2

v0.36.1

Compare Source

⚠️ Breaking Changes ⚠️

  • Conn.NewStream, Network.NewStream and Host.NewStream timeout after 15 seconds, if no deadline is specified on the provided ctx.

🔦 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

New Contributors

Full Changelog: libp2p/go-libp2p@v0.35.0...v0.36.1

v0.36.0

Compare Source

Retracted

What's Changed


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link
Contributor Author

renovate bot commented Apr 4, 2025

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 35 additional dependencies were updated
  • The go directive was updated for compatibility reasons

Details:

Package Change
go 1.21 -> 1.24.2
github.com/multiformats/go-multiaddr v0.13.0 -> v0.15.0
github.com/prometheus/client_golang v1.19.1 -> v1.21.1
github.com/stretchr/testify v1.9.0 -> v1.10.0
golang.org/x/crypto v0.25.0 -> v0.35.0
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 -> v0.0.0-20250218142911-aa4b98e5adaa
golang.org/x/net v0.27.0 -> v0.35.0
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 -> v4.4.0
github.com/elastic/gosigar v0.14.2 -> v0.14.3
github.com/flynn/noise v1.0.0 -> v1.1.0
github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f -> v0.0.0-20250208200701-d0013a598941
github.com/ipfs/go-cid v0.4.1 -> v0.5.0
github.com/klauspost/compress v1.16.7 -> v1.18.0
github.com/klauspost/cpuid/v2 v2.2.6 -> v2.2.10
github.com/koron/go-ssdp v0.0.4 -> v0.0.5
github.com/libp2p/go-flow-metrics v0.1.0 -> v0.2.0
github.com/libp2p/go-libp2p-asn-util v0.3.0 -> v0.4.1
github.com/libp2p/go-netroute v0.2.1 -> v0.2.2
github.com/miekg/dns v1.1.55 -> v1.1.63
github.com/multiformats/go-multiaddr-dns v0.3.1 -> v0.4.1
github.com/multiformats/go-multistream v0.4.1 -> v0.6.0
github.com/onsi/ginkgo/v2 v2.12.0 -> v2.22.2
github.com/opencontainers/runtime-spec v1.1.0 -> v1.2.0
github.com/prometheus/common v0.53.0 -> v0.62.0
github.com/prometheus/procfs v0.13.0 -> v0.15.1
github.com/quic-go/qpack v0.4.0 -> v0.5.1
github.com/quic-go/quic-go v0.38.1 -> v0.50.1
github.com/quic-go/webtransport-go v0.5.3 -> v0.8.1-0.20241018022711-4ac2c9250e66
go.uber.org/fx v1.20.0 -> v1.23.0
golang.org/x/mod v0.19.0 -> v0.23.0
golang.org/x/sync v0.7.0 -> v0.11.0
golang.org/x/sys v0.22.0 -> v0.30.0
golang.org/x/text v0.16.0 -> v0.22.0
golang.org/x/tools v0.23.0 -> v0.30.0
google.golang.org/protobuf v1.33.0 -> v1.36.5
lukechampine.com/blake3 v1.2.1 -> v1.4.0

Copy link
Contributor Author

renovate bot commented Apr 4, 2025

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants