Skip to content
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

Update module github.com/libp2p/go-libp2p to v0.28.0 #128

Merged
merged 1 commit into from
Jun 12, 2023

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 30, 2023

Mend Renovate

This PR contains the following updates:

Package Type Update Change
github.com/libp2p/go-libp2p require minor v0.27.3 -> v0.28.0

Release Notes

libp2p/go-libp2p

v0.28.0

Compare Source

🔦 Highlights

Smart Dialing

This release introduces smart dialing logic. Currently, libp2p dials all addresses of a remote peer in parallel, and
aborts all outstanding dials as soon as the first one succeeds.
Dialing many addresses in parallel creates a lot of churn on the client side, and unnecessary load on the network and
on the server side, and is heavily discouraged by the networking community (see RFC 8305 for example).

When connecting to a peer we first determine the order to dial its addresses. This ranking logic considers a number of corner cases
described in detail in the documentation of the swarm package (swarm.DefaultDialRanker).
At a high level, this is what happens:

  • If a peer offers a WebTransport and a QUIC address (on the same IP:port), the QUIC address is preferred.
  • If a peer has a QUIC and a TCP address, the QUIC address is dialed first. Only if the connection attempt doesn't succeed within 250ms, a TCP connection is started.

Our measurements on the IPFS network show that for >90% of established libp2p connections, the first connection attempt succeeds,
leading a dramatic decrease in the number of aborted connection attempts.

We also added new metrics to the swarm Grafana dashboard, showing:

  • The number of connection attempts it took to establish a connection
  • The delay introduced by the ranking logic

This feature should be safe to enable for nodes running in data centers and for most nodes in home networks.
However, there are some (mostly home and corporate networks) that block all UDP traffic. If enabled, the current implementation
of the smart dialing logic will lead to a regression, since it preferes QUIC addresses over TCP addresses. Nodes would still be
able to connect, but connection establishment of the TCP connection would be delayed by 250ms.

In a future release (see #​1605 for details), we will introduce a feature called blackhole detection. By observing the outcome of
QUIC connection attempts, we can determine if UDP traffic is blocked (namely, if all QUIC connection attempts fail), and stop
dialing QUIC in this case altogether. Once this detection logic is in place, smart dialing will be enabled by default.

More Metrics!

Since the last release, we've added metrics for:

WebTransport
  • #​2251: Infer public WebTransport address from quic-v1 addresses if both transports are using the same port for both quic-v1 and WebTransport addresses.
  • #​2271: Only add certificate hashes to WebTransport mulitaddress if listening on WebTransport

Housekeeping updates

  • Identify
    • #​2303: Don't send default protocol version
    • Prevent polluting PeerStore with local addrs
      • #​2325: Don't save signed peer records
      • #​2300: Filter received addresses based on the node's remote address
  • WebSocket
    • #​2280: Reverted back to the Gorilla library for WebSocket
  • NAT
    • #​2248: Move NAT mapping logic out of the host

🐞 Bugfixes

Full Changelog: libp2p/go-libp2p@v0.27.0...v0.28.0

v0.27.6

Compare Source

What's Changed

  • Clean up stream scope in case of error

Full Changelog: libp2p/go-libp2p@v0.27.5...v0.27.6

v0.27.5

Compare Source

What's Changed

Full Changelog: libp2p/go-libp2p@v0.27.3...v0.27.5

v0.27.4

Compare Source

What's Changed

  • identify
    • Fixed an issue where we now avoid spuriously triggering pushes
    • Fixed an issue where signed peer records weren’t rejected if the signature didn’t match
  • swarm
    • Fixed duplicate tracking in dial worker loop

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 has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot changed the title Update module github.com/libp2p/go-libp2p to v0.27.4 Update module github.com/libp2p/go-libp2p to v0.27.5 Jun 2, 2023
@renovate renovate bot force-pushed the renovate/git.luolix.top-libp2p-go-libp2p-0.x branch from 68d1dd9 to 2da8a38 Compare June 2, 2023 22:33
@codecov-commenter
Copy link

codecov-commenter commented Jun 2, 2023

Codecov Report

Patch coverage has no change and project coverage change: +0.04 🎉

Comparison is base (005a419) 33.95% compared to head (2da8a38) 34.00%.

❗ Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #128      +/-   ##
==========================================
+ Coverage   33.95%   34.00%   +0.04%     
==========================================
  Files          26       26              
  Lines        2038     2038              
==========================================
+ Hits          692      693       +1     
+ Misses       1245     1244       -1     
  Partials      101      101              

see 3 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@renovate renovate bot changed the title Update module github.com/libp2p/go-libp2p to v0.27.5 Update module github.com/libp2p/go-libp2p to v0.28.0 Jun 12, 2023
@renovate renovate bot force-pushed the renovate/git.luolix.top-libp2p-go-libp2p-0.x branch from 2da8a38 to a95b75f Compare June 12, 2023 18:34
@mudler mudler merged commit 2b6b70e into master Jun 12, 2023
@renovate renovate bot deleted the renovate/git.luolix.top-libp2p-go-libp2p-0.x branch June 12, 2023 21:35
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.

2 participants