v0.21.0
🔦 Highlights
Resource Management
- Default resource management config limits will now autoscale depending on the machine size.
- You can now specify an allowlisted set of multiaddrs that can still connect to you even if you've reached your normal limits (still limited by the allowlist limits).
- Resource manager now exposes opencensus metrics and provides a default grafana dashboard.
Swarm Notifications are now synchronous
If your protocol depended on being given notifications in an async context and taking its time processing that, you will slow down your whole go-libp2p application. See #1562 for more details. This only matters if you implemented a network.Notifiee
and registered to receive notifications on swarm network events.
Canonical Logs
- go-libp2p now logs a small sample of connection events so you can get a feel of the system. Guide for how to hook this into fail2ban coming soon.
What's Changed
- swarm: only dial a single transport in TestDialWorkerLoopBasic by @marten-seemann in #1526
- move resource manager integration tests to p2p/test/ by @marten-seemann in #1561
- fix: mkreleaselog exclude autogenerated files by @Jorropo in #1567
- remove workspace and packages section from README by @marten-seemann in #1563
- identify: fix flaky test by @MarcoPolo in #1568
- chore: update examples to go-libp2p v0.20.0 by @marten-seemann in #1557
- swarm: speed up the TestDialWorkerLoopConcurrentFailureStress test by @marten-seemann in #1573
- connmgr: Add sanity check to test by @MarcoPolo in #1570
- chore: log autorelay start failure error by @Stebalien in #1583
- tls: fix flaky TestInvalidCerts on Windows by @marten-seemann in #1560
- identify: fix flaky TestIdentifyDeltaOnProtocolChange (again) by @MarcoPolo in #1582
- basichost: fix flaky TestSignedPeerRecordWithNoListenAddrs by @marten-seemann in #1559
- swarm: send notifications synchronously by @marten-seemann in #1562
- pstoremanager: fix test timeout by @MarcoPolo in #1588
- autonat: fix flaky TestAutoNATPrivate by @MarcoPolo in #1581
- identify: Fix flaky tests by @MarcoPolo in #1555
- swarm: add ListenClose by @birros in #1586
- Added perPeerRateLimit env config by @millken in #1580
- fix natManager to close natManager.nat by @watjurk in #1468
- feat: allow dialing wss peers using DNS multiaddrs by @aschmahmann in #1592
- remove legacy mDNS implementation by @marten-seemann in #1192
- muxer: expose func to create MuxedConn from backing Conn by @paralin in #1609
- chore: update github.com/multiformats/go-multistream to v0.3.2 by @MarcoPolo in #1610
- tcp: unexport TcpTransport.Upgrader by @marten-seemann in #1596
- use multiaddr ipcidr to parse multiaddr filters by @marten-seemann in #1606
- logging: Add canonical log for misbehaving peers by @MarcoPolo in #1600
- chore: stop using the deprecated mux.MuxedConn by @marten-seemann in #1614
- chore: use the new multiaddr.Contains function by @marten-seemann in #1618
- chore: update github.com/multiformats/go-multistream to v0.3.3 by @MarcoPolo in #1621
- ping: fix flaky test by @marten-seemann in #1617
- fix: deny connections to peers in the right place by @Stebalien in #1627
- swarm: fix logging of accepted connections by @marten-seemann in #1629
- move go-libp2p-circuit here by @marten-seemann in #1626
- Add canonical peer status logs by @MarcoPolo in #1624
- Pass endpoint information to resource manager's OpenConnection by @MarcoPolo in #1633
- chore: update deps by @marten-seemann in #1634
- docs: point to SetDefaultServiceLimits in ResourceManager option by @marten-seemann in #1636
- rcmgr: use autoscaling limits by @marten-seemann in #1637
- fix: return the best acceptable conn in NewStream by @Stebalien in #1604
- Release v0.21.0 RC by @MarcoPolo in #1638
- routedhost: fix decoding of relay peer ID by @marten-seemann in #1644
- chore: update core dep by @MarcoPolo in #1641
- swarm: mark dialing WebTransport addresses as expensive by @marten-seemann in #1650
- chore: remove duplicate clock dep by @Stebalien in #1654
- chore: update go-multihash to remove blake2b-simd dep by @Stebalien in #1656
- feat: switch noise to use minio's SHA256 implementation by @Stebalien in #1657
- ping: optimize random number generation by @marten-seemann in #1658
- Release v0.21.0 by @MarcoPolo in #1648
New Contributors
- @Jorropo made their first contribution in #1567
- @birros made their first contribution in #1586
- @millken made their first contribution in #1580
- @paralin made their first contribution in #1609
Full Changelog: v0.20.0...v0.21.0
More information here: #1514