v0.30.0
This is the first release that is compatible with Go 1.21. It drops compatibility with (the now outdated) Go 1.19.
Deprecation of the database-backed peerstore
The database-backed peerstore, pstoreds
, is now deprecated. It will be removed in a future release of go-libp2p.
The main reason for a database-backed peerstore was that it easily allowed persisting peers across reboots of a go-libp2p node. However, this comes with the problem that entries for these peers will never be pruned. It also means significantly higher latencies compared to the in-memory peerstore. A better way of persisting (a subset of) peers for bootstrapping purposes is to regularly query the in-memory peerstore and to explicitly persist those entries.
See #2329 for more motivation and discussion.
Removal of mplex
The ecosystem is in the process of removing support for one of our stream multiplexers, mplex. The only supported stream multiplexer now is yamux. Kubo (a go-libp2p user) removed support for mplex recently. See libp2p/specs#553 for more details.
Note that due to go-libp2p's modular design, it's still possible to use mplex (or any other custom multiplexer) using the libp2p.Muxer
configuration option.
Removal of QUIC draft-29
QUIC draft-29 was a somewhat widely deployed draft version of QUIC before publication of RFC 9000. The multiaddr codepoint used /quic
(RFC 9000 QUIC uses /quic-v1
). go-libp2p has been using /quic-v1
for a long time (since v0.24.0), and is now dropping support for draft-29.
Full Changelog
- github.com/libp2p/go-libp2p:
- update dependencies ahead of the v0.30 release (#2504) (libp2p/go-libp2p#2504)
- ci: copy new Unified CI templates and bump go.mod to Go 1.20 (#2471) (libp2p/go-libp2p#2471)
- transport tests: add deadline tests (#2286) (libp2p/go-libp2p#2286)
- chore: remove unused and outdated package-list.json (#2499) (libp2p/go-libp2p#2499)
- muxer: remove support for mplex (#2498) (libp2p/go-libp2p#2498)
- transport tests: refactor workers in TestMoreStreamsThanOurLimits (#2472) (libp2p/go-libp2p#2472)
- use standard library sha256 implementation for Go 1.21 (#2309) (libp2p/go-libp2p#2309)
- quic: update quic-go to v0.37.5 (#2497) (libp2p/go-libp2p#2497)
- cleanup: add continue in case of failure in the (*BasicHost).Addrs certhash loop (#2492) (libp2p/go-libp2p#2492)
- tests: add a CertHashes testcase in TestInferWebtransportAddrsFromQuic (#2495) (libp2p/go-libp2p#2495)
- basichost: use byte representation of WebTransport multiaddr as map key (#2494) (libp2p/go-libp2p#2494)
- webtransport: check for UDP multiaddr component in address matcher (#2491) (libp2p/go-libp2p#2491)
- swarm: remove unnecessary reqno for pending request tracking (#2460) (libp2p/go-libp2p#2460)
- quic: drop support for QUIC draft-29 (#2487) (libp2p/go-libp2p#2487)
- metrics: add links to public dashboards (#2486) (libp2p/go-libp2p#2486)
- swarm: remove leftover TODO (#2474) (libp2p/go-libp2p#2474)
- peerstore: deprecate the database-backed peerstore (#2475) (libp2p/go-libp2p#2475)
- identify: fix sorting of observed addresses (#2476) (libp2p/go-libp2p#2476)
- update go-multiaddr to v0.11.0 (#2467) (libp2p/go-libp2p#2467)
- chore: update golang-lru to v2.0.4, fixing semver violation (#2448) (libp2p/go-libp2p#2448)
- swarm: don't open new streams over transient connections (#2450) (libp2p/go-libp2p#2450)
- update quic-go to v0.36.3, fixing RSA key size vulnerability (#2455) (libp2p/go-libp2p#2455)
- core/crypto: restrict RSA keys to <= 8192 bits (#2454) (libp2p/go-libp2p#2454)
- chore: add notable project requirement (#2453) (libp2p/go-libp2p#2453)
- examples: update go-libp2p to v0.29.0 (#2432) (libp2p/go-libp2p#2432)
- examples: fix description of command line flags for pubsub (#2400) (libp2p/go-libp2p#2400)
- basichost: remove invalid comment (#2435) (libp2p/go-libp2p#2435)
- github.com/libp2p/go-reuseport (v0.3.0 -> v0.4.0):
- release v0.4.0 (#111) (libp2p/go-reuseport#111)
- use SO_REUSEPORT_LB on FreeBSD (#106) (libp2p/go-reuseport#106)
- chore: bump go.mod to Go 1.20 and run go fix (#109) (libp2p/go-reuseport#109)
- github.com/multiformats/go-multiaddr (v0.10.1 -> v0.11.0):
- release v0.11.0 (#214) (multiformats/go-multiaddr#214)
- update sha256-simd to v1.0.1 (#212) (multiformats/go-multiaddr#212)
- update golang.org/x/exp slice comparison to match standard library version (#210) (multiformats/go-multiaddr#210)
Contributors
Contributor | Commits | Lines ± | Files Changed |
---|---|---|---|
Marco Munizaga | 5 | +405/-561 | 36 |
Marten Seemann | 12 | +302/-477 | 92 |
Sukun | 4 | +125/-52 | 6 |
Jorropo | 5 | +83/-28 | 13 |
Prem Chaitanya Prathi | 1 | +28/-1 | 2 |
GitHub | 2 | +6/-19 | 2 |
Prithvi Shahi | 1 | +10/-12 | 1 |
Christian Stewart | 1 | +7/-2 | 2 |
cce | 1 | +4/-4 | 3 |
downIoads | 1 | +2/-2 | 1 |
New Contributors
- @downIoads made their first contribution in #2400
Full Changelog: v0.29.0...v0.30.0