v0.26.0
🔦 Highlights
Circuit Relay Changes
Removed Circuit Relay v1
We've decided to remove support for Circuit Relay v1 in this release. v1 Relays have been retired a few months ago. Notably, running the Relay v1 protocol was expensive and resulted in only a small number of nodes in the network. Users had to either manually configure these nodes as static relays, or discover them from the DHT.
Furthermore, rust-libp2p has dropped support and js-libp2p is dropping support for Relay v1.
Support for Relay v2 was first added in late 2021 in v0.16.0. With Circuit Relay v2 it became cheap to run (limited) relays. Public nodes also started the relay service by default. There's now a massive number of Relay v2 nodes on the IPFS network, and they don't advertise their service to the DHT any more. Because there's now so many of these nodes, connecting to just a small number of nodes (e.g. by joining the DHT), a node is statistically guaranteed to connect to some relays.
Unlimited Relay v2
In conjunction with removing relay v1, we also added an option to Circuit Relay v2 to disable limits.
This done by enabling WithInfiniteLimits
. When enabled this allows for users to have a drop in replacement for Relay v1 with Relay v2.
Additional metrics
Since the last release, we've added additional metrics to different components.
Metrics were added to:
- AutoNat: Current Reachability Status and Confidence, Client and Server DialResponses, Server DialRejections. The dashboard is available here.
- Swarm:
- Early Muxer Selection: Added early_muxer label indicating whether a connection was established using early muxer selection.
- IP Version: Added ip_version label to connection metrics
- Identify:
We also migrated the metric dashboards to a top-level dashboards directory.
Changelog
- github.com/libp2p/go-libp2p:
- identify: add more detailed metrics (#2126) (libp2p/go-libp2p#2126)
- autorelay: refactor relay finder and start autorelay after identify (#2120) (libp2p/go-libp2p#2120)
- don't use the time value from the time.Ticker channel (#2127) (libp2p/go-libp2p#2127)
- Wrap conn with metrics (#2131) (libp2p/go-libp2p#2131)
- chore: update changelog for 0.26.0 (#2132) (libp2p/go-libp2p#2132)
- chore: update quic-go to v0.33.0 (#2124) (libp2p/go-libp2p#2124)
- circuitv2: Update proto files to proto3 (#2121) (libp2p/go-libp2p#2121)
- swarm: remove parallel tests from swarm tests (#2130) (libp2p/go-libp2p#2130)
- circuitv2: add a relay option to disable limits (#2125) (libp2p/go-libp2p#2125)
- quic: fix stalled virtual listener (#2122) (libp2p/go-libp2p#2122)
- swarm: add early muxer selection to swarm metrics (#2119) (libp2p/go-libp2p#2119)
- metrics: add options to disable metrics and to set Prometheus registerer (#2116) (libp2p/go-libp2p#2116)
- swarm: add ip_version to metrics (#2114) (libp2p/go-libp2p#2114)
- Revert mistaken "Bump timeout"
- Bump timeout
- remove all circuit v1 related code (#2107) (libp2p/go-libp2p#2107)
- quic: don't send detailed error messages when closing connections (#2112) (libp2p/go-libp2p#2112)
- metrics: add no alloc metrics for eventbus, swarm, identify (#2108) (libp2p/go-libp2p#2108)
- chore: fix typo in Changelog (#2111) (libp2p/go-libp2p#2111)
- chore: update changelog (#2109) (libp2p/go-libp2p#2109)
- chore: unify dashboard location (#2110) (libp2p/go-libp2p#2110)
- autonat: add metrics (#2086) (libp2p/go-libp2p#2086)
- relaymanager: do not start new relay if one already exists (#2093) (libp2p/go-libp2p#2093)
- autonat: don't emit reachability changed events on address change (#2092) (libp2p/go-libp2p#2092)
- chore: update release.md (#2090) (libp2p/go-libp2p#2090)
- chore: modify changelog entries (#2101) (libp2p/go-libp2p#2101)
- Introduce a changelog (#2084) (libp2p/go-libp2p#2084)
- use atomic.Int32 and atomic.Int64 (#2096) (libp2p/go-libp2p#2096)
- change atomic.Value to atomic.Pointer (#2088) (libp2p/go-libp2p#2088)
- interop-tests: use new action with s3 caching (#2076) (libp2p/go-libp2p#2076)
- use atomic.Bool instead of int32 operations (#2089) (libp2p/go-libp2p#2089)
- chore: update examples to v0.25.1 (#2080) (libp2p/go-libp2p#2080)
Contributors
Contributor | Commits | Lines ± | Files Changed |
---|---|---|---|
Sukun | 11 | +2979/-696 | 76 |
Marten Seemann | 5 | +52/-3619 | 33 |
Marco Munizaga | 11 | +865/-520 | 35 |
Prithvi Shahi | 5 | +66/-21 | 10 |
Full Changelog: v0.25.1...v0.26.0