Releases: libp2p/go-libp2p
v0.20.1
This release fixes a bug in the yamux implementation that could occasionally lead to incorrect accounting of memory consumed by yamux streams.
Changelog
- update go-yamux to v3.1.2, release v0.20.1 by @marten-seemann in #1591
Full Changelog: v0.20.0...v0.20.1
v0.19.4
This release fixes a bug in the yamux implementation that could occasionally lead to incorrect accounting of memory consumed by yamux streams.
Changelog
- update go-yamux to v3.1.2, release v0.19.4 by @marten-seemann in #1590
Full Changelog: v0.19.3...v0.19.4
v0.20.0
We're happy to announce the v0.20.0 release of go-libp2p.
🛠 BREAKING CHANGES
In this release, we've taken steps to reduce the go-libp2p-* repo sprawl, and move all transport-related repositories (and some others) to go-libp2p. Specifically, the following repositories were deprecated:
- go-libp2p-blankhost
- go-libp2p-swarm
- go-libp2p-yamux
- go-libp2p-mplex
- go-libp2p-noise
- go-libp2p-tls
- go-tcp-transport
- go-libp2p-quic-transport
- go-ws-transport
- go-libp2p-pnet
- go-libp2p-nat
- go-libp2p-transport-upgrader
- go-conn-security-multistream
- go-stream-muxer-multistream
- go-reuseport-transport
For users of go-libp2p, this might mean that a few import paths have changed. The recommended way of updating is the following:
- Run
go get -u ./...
. This will pull in updated dependencies, including updates for all the repositories listed above. - Run
staticcheck ./...
. All repositories listed above were deprecated, andstaticcheck
will generate errors when they are imported.
Changelog
- github.com/libp2p/go-libp2p:
- release v0.20.0 (#1530) (libp2p/go-libp2p#1530)
- update go-libp2p-core, remove stream methods from network.Notifiee (#1521) (libp2p/go-libp2p#1521)
- autonat: return E_DIAL_REFUSED when skipping dial (#1527) (libp2p/go-libp2p#1527)
- chore: update deps (#1522) (libp2p/go-libp2p#1522)
- move go-stream-muxer-multistream here (libp2p/go-libp2p#1511)
- remove dependency on go-libp2p-testing/suites/sec (#1510) (libp2p/go-libp2p#1510)
- backoff: fix flaky tests in backoff cache (#1516) (libp2p/go-libp2p#1516)
- chore: update quic-go to v0.27.1 (#1520) (libp2p/go-libp2p#1520)
- identify: fix flaky tests (#1515) (libp2p/go-libp2p#1515)
- quic: increase timeout in hole punching test (#1495) (libp2p/go-libp2p#1495)
- Fix badge image in README (#1517) (libp2p/go-libp2p#1517)
- move go-libp2p-nat here (libp2p/go-libp2p#1513)
- move go-reuseport-transport here (libp2p/go-libp2p#1459)
- holepunch: fix flaky TestEndToEndSimConnect test (#1508) (libp2p/go-libp2p#1508)
- swarm: fix flaky TestDialExistingConnection test (#1509) (libp2p/go-libp2p#1509)
- tcp: limit the number of connections in tcp suite test on non-linux hosts (#1507) (libp2p/go-libp2p#1507)
- increase overly short require.Eventually intervals (#1501) (libp2p/go-libp2p#1501)
- tls: fix flaky handshake cancelation test (#1503) (libp2p/go-libp2p#1503)
- merge the transport test suite from go-libp2p-testing here (libp2p/go-libp2p#1496)
- fix racy connection comparison in TestDialWorkerLoopBasic (#1499) (libp2p/go-libp2p#1499)
- swarm: fix race condition in TestFailFirst (#1490) (libp2p/go-libp2p#1490)
- basichost: fix flaky TestSignedPeerRecordWithNoListenAddrs (#1488) (libp2p/go-libp2p#1488)
- swarm: fix flaky and racy TestDialExistingConnection (#1491) (libp2p/go-libp2p#1491)
- quic: adjust timeout for reuse garbage collector detection in tests (#1487) (libp2p/go-libp2p#1487)
- quic: fix flaky TestResourceManagerAcceptDenied (#1485) (libp2p/go-libp2p#1485)
- quic: deflake the holepunching test (#1484) (libp2p/go-libp2p#1484)
- holepunch: fix incorrect message type for the SYNC message (#1478) (libp2p/go-libp2p#1478)
- use real keys in tests instead of go-libp2p-testing/netutil fake keys (#1475) (libp2p/go-libp2p#1475)
- quic: fix flaky TestResourceManagerAcceptDenied (libp2p/go-libp2p#1461)
- move go-libp2p-pnet here (libp2p/go-libp2p#1465)
- move go-libp2p-tls here (libp2p/go-libp2p#1466)
- fix race condition in relayFinder (libp2p/go-libp2p#1469)
- fix race condition in holepunch service (#1473) (libp2p/go-libp2p#1473)
- Update README to include supported Go Versions (#1470) (libp2p/go-libp2p#1470)
- move go-libp2p-noise here (libp2p/go-libp2p#1462)
- move go-libp2p-transport-upgrader here (libp2p/go-libp2p#1463)
- move go-conn-security-multistream here (libp2p/go-libp2p#1460)
- move go-libp2p-mplex here (libp2p/go-libp2p#1450)
- use yamux instead of mplex in tests (#1456) (libp2p/go-libp2p#1456)
- rename the yamux package (#1452) (libp2p/go-libp2p#1452)
- swarm: don't check return value of str.Close in TestResourceManager (#1453) (libp2p/go-libp2p#1453)
- move go-libp2p-yamux here (libp2p/go-libp2p#1439)
- quic: fix flaky TestConnectionGating test (#1442) (libp2p/go-libp2p#1442)
- quic: fix flaky TestReuseGarbageCollect test (#1446) (libp2p/go-libp2p#1446)
- quic: fix flaky holepunching test (#1443) (libp2p/go-libp2p#1443)
- move go-libp2p-quic-transport here (libp2p/go-libp2p#1424)
- remove flaky TestTcpSimultaneousConnect (#1425) (libp2p/go-libp2p#1425)
- move go-ws-transport here (libp2p/go-libp2p#1422)
- update go-multistream, stop using deprecated NegotiateLazy (#1417) (libp2p/go-libp2p#1417)
- fix flaky TestResourceManagerAcceptStream test (#1420) (libp2p/go-libp2p#1420)
- move go-tcp-transport here (libp2p/go-libp2p#1418)
- move the go-libp2p-swarm here (libp2p/go-libp2p#1414)
- reduce flakiness of backoff cache tests (#1415) (libp2p/go-libp2p#1415)
- move the go-libp2p-blankhost here (libp2p/go-libp2p#1411)
- update go-libp2p to v0.19.0 in examples (#1409) (libp2p/go-libp2p#1409)
- github.com/libp2p/go-libp2p-asn-util (v0.1.0 -> v0.2.0):
- Release 0.2.0 (#21) (libp2p/go-libp2p-asn-util#21)
- perf: replace the ipv6 map by an array of struct (#20) (libp2p/go-libp2p-asn-util#20)
- github.com/libp2p/go-libp2p-core (v0.15.1 -> v0.16.1):
- release v0.16.1 (#255) (libp2p/go-libp2p-core#255)
- force usage of github.com/btcsuite/btcd v0.22.1 or newer (#254) (libp2p/go-libp2p-core#254)
- release v0.16.0 (#251) (libp2p/go-libp2p-core#251)
- remove OpenedStream and ClosedStream from Notifiee interface (#250) (libp2p/go-libp2p-core#250)
- deprecate Negotiator.NegotiateLazy (#249) (libp2p/go-libp2p-core#249)
- update btcec dependency (#247) (libp2p/go-libp2p-core#247)
- github.com/libp2p/go-libp2p-resource-manager (v0.2.1 -> v0.3.0):
- release v0.3.0 (#23) (libp2p/go-libp2p-resource-manager#23)
- feat: export basic limiter config (libp2p/go-libp2p-resource-manager#21)
- fix: typos in config err msgs (libp2p/go-libp2p-resource-manager#20)
- github.com/libp2p/go-mplex (v0.4.0 -> v0.7.0):
- release v0.7.0 (#112) (libp2p/go-mplex#112)
- catch panics in handleIncoming and handleOutgoing (#109) (libp2p/go-mplex#109)
- remove benchmark tests (#111) (libp2p/go-mplex#111)
- release v0.6.0 (#105) ([libp2p/go...
v0.19.3
What's Changed
- update quic-go to v0.27.1 to fix an issue with the Path MTU discovery timer by @marten-seemann in #1518
Full Changelog: v0.19.2...v0.19.3
v0.19.2
What's Changed
- holepunch: fix incorrect message type for the SYNC message, release v0.19.2 by @marten-seemann in #1479
Full Changelog: v0.19.1...v0.19.2
v0.19.1
What's Changed
- fix race condition in holepunch service, release v0.19.1 by @marten-seemann in #1474
Full Changelog: v0.19.0...v0.19.1
v0.19.0
We're happy to announce to v0.19.0 release of go-libp2p.
🛠 BREAKING CHANGES
AutoRelay now discovers Circuit Relay v2 nodes. AutoRelays reads peers from a channel (provided by autorelay.WithPeerSource
), tests if those peers speak the relay v2 protocol and tries to obtain a reservation with these nodes.
By default, AutoRelay does not use Circuit Relay v1 nodes any more. If circuit v1 support is desired, the autorelay.WithCircuitV1Support
option can be used.
The mplex
stream multiplexer was removed from the default list of stream multiplexers. If you still need to support both yamux and mplex, you can manually enable it using the following libp2p.Option
:
libp2p.ChainOptions(
libp2p.Muxer("/yamux/1.0.0", yamux.DefaultTransport),
libp2p.Muxer("/mplex/6.7.0", mplex.DefaultTransport),
)
Changelog
- github.com/libp2p/go-libp2p:
- Close resource manager when host closes (#1343) (libp2p/go-libp2p#1343)
- fix flaky reconnect test (#1406) (libp2p/go-libp2p#1406)
- redirect to libp2p/specs for general libp2p ideas (#1388) (libp2p/go-libp2p#1388)
- make sure to not oversubscribe to relays (#1404) (libp2p/go-libp2p#1404)
- rewrite the reconnect test (#1399) (libp2p/go-libp2p#1399)
- don't try to reconnect to already connected relays (#1401) (libp2p/go-libp2p#1401)
- reduce flakiness of AutoRelay TestBackoff test (#1400) (libp2p/go-libp2p#1400)
- improve AutoRelay v1 handling (libp2p/go-libp2p#1396)
- remove note about gx from README (#1385) (libp2p/go-libp2p#1385)
- chore: update transport dependencies (#1387) (libp2p/go-libp2p#1387)
- use the vcs information from ReadBuildInfo in Go 1.18 (libp2p/go-libp2p#1381)
- chore: update go-libp2p-quic-transport to v0.17.0 (#1380) (libp2p/go-libp2p#1380)
- fix race condition in AutoRelay candidate handling (#1383) (libp2p/go-libp2p#1383)
- implement relay v2 discovery (libp2p/go-libp2p#1368)
- fix go vet error in proxy example (#1377) (libp2p/go-libp2p#1377)
- Resolve addresses when creating a new stream (#1342) (libp2p/go-libp2p#1342)
- remove mplex from the list of default muxers (#1344) (libp2p/go-libp2p#1344)
- refactor the holepunching code (libp2p/go-libp2p#1355)
- speed up the connmgr tests (#1354) (libp2p/go-libp2p#1354)
- update the examples to v0.18.0 (#1362) (libp2p/go-libp2p#1362)
- github.com/libp2p/go-libp2p-quic-transport (v0.16.1 -> v0.17.0):
- chore: update go-libp2p-testing to v0.9.0 (#268) (libp2p/go-libp2p-quic-transport#268)
- update quic-go to v0.27.0 (#264) (libp2p/go-libp2p-quic-transport#264)
- update interop matrix (#263) (libp2p/go-libp2p-quic-transport#263)
- chore: update quic-go to v0.26.0 (#262) (libp2p/go-libp2p-quic-transport#262)
- github.com/libp2p/go-libp2p-tls (v0.3.1 -> v0.4.0):
- use tls.Conn.HandshakeContext instead of tls.Conn.Handshake (#106) (libp2p/go-libp2p-tls#106)
- remove paragraph about Go modules from README (#104) (libp2p/go-libp2p-tls#104)
- migrate to standard Go tests, stop using Ginkgo (libp2p/go-libp2p-tls#105)
- chore: remove Codecov config (#103) (libp2p/go-libp2p-tls#103)
- github.com/lucas-clemente/quic-go (v0.25.0 -> v0.27.0):
- stop using the deprecated net.Error.Temporary, update golangci-lint to v1.45.2 (lucas-clemente/quic-go#3367)
- add support for serializing Extended CONNECT requests (#3360) (lucas-clemente/quic-go#3360)
- improve the error thrown when building with an unsupported Go version (lucas-clemente/quic-go#3364)
- remove nextdns from list of projects using quic-go (#3363) (lucas-clemente/quic-go#3363)
- rename the Session to Connection (lucas-clemente/quic-go#3361)
- respect the request context when dialing (lucas-clemente/quic-go#3359)
- update HTTP/3 Datagram to draft-ietf-masque-h3-datagram-07 (#3355) (lucas-clemente/quic-go#3355)
- add support for the Extended CONNECT method (#3357) (lucas-clemente/quic-go#3357)
- remove the SkipSchemeCheck RoundTripOpt (#3353) (lucas-clemente/quic-go#3353)
- remove parser logic for HTTP/3 DUPLICATE_PUSH frame (#3356) (lucas-clemente/quic-go#3356)
- improve code coverage of random number generator test (#3358) (lucas-clemente/quic-go#3358)
- advertise multiple listeners via Alt-Svc and improve perf of SetQuicHeaders (#3352) (lucas-clemente/quic-go#3352)
- avoid recursion when skipping unknown HTTP/3 frames (#3354) (lucas-clemente/quic-go#3354)
- update qtls packages (#3351) (lucas-clemente/quic-go#3351)
- Implement http3.Server.ServeListener (#3349) (lucas-clemente/quic-go#3349)
- update for Go 1.18 (lucas-clemente/quic-go#3345)
- don't print a receive buffer warning for closed connections (#3346) (lucas-clemente/quic-go#3346)
- move set DF implementation to separate files & avoid the need for OOBCapablePacketConn (#3334) (lucas-clemente/quic-go#3334)
- add env to disable the receive buffer warning (#3339) (lucas-clemente/quic-go#3339)
- fix typo (#3333) (lucas-clemente/quic-go#3333)
- update GitHub Actions to use Go 1.18rc1 (#3335) (lucas-clemente/quic-go#3335)
- sendQueue: ignore "datagram too large" error (#3328) (lucas-clemente/quic-go#3328)
- add OONI Probe to list of projects in README (#3324) (lucas-clemente/quic-go#3324)
- remove build status badges from README (#3325) (lucas-clemente/quic-go#3325)
- github.com/marten-seemann/qtls-go1-16 (v0.1.4 -> v0.1.5):
- gopherjs: add js-specific compat (#1) (marten-seemann/qtls-go1-16#1)
- github.com/marten-seemann/qtls-go1-17 (v0.1.0 -> v0.1.1):
- cpu: fix building for js (#2) (marten-seemann/qtls-go1-17#2)
- github.com/marten-seemann/qtls-go1-18 (v0.1.0-beta.1 -> v0.1.1):
- cpu: fix building for js (#2) (marten-seemann/qtls-go1-18#2)
Contributors
Contributor | Commits | Lines ± | Files Changed |
---|---|---|---|
Marten Seemann | 123 | +44877/-11386 | 659 |
Artem Mikheev | 2 | +616/-120 | 5 |
Toby | 2 | +107/-86 | 11 |
Rachel Chen | 1 | +124/-57 | 15 |
Christian Stewart | 3 | +106/-60 | 13 |
Andrew Gillis | 2 | +61/-0 | 3 |
Arash Payan | 1 | +5/-0 | 1 |
Elena Frank | 1 | +2/-2 | 2 |
ignoramous | 1 | +0/-1 | 1 |
v0.18.0
We're happy to announce the v0.18.0 release of go-libp2p.
🛠 Breaking Changes
In this release, we're continuing our repo consolidation. We've moved the following repositories into go-libp2p:
- go-libp2p-autonat
- go-libp2p-discovery
- go-libp2p-connmgr
- go-addr-utils
- go-libp2p-netutil
- go-sockaddr
If you've been using functions from these repositories, please make sure to point those to go-libp2p.
🔦 Highlights
The main feature of v0.18.0 is the Resource Manager. The Resource Manager allows the configuration of (among others):
- the number of incoming / outgoing connections
- the number of incoming / outgoing streams
- the number of streams per protocol, and per service
- memory usage
For details on how this works, and how to change limits, refer to the README of the Resource Manager.
In this release, we've finished the transition from ipfs/go-log@v1 to ipfs/go-log@v2. One less dependency!
Changelog
- github.com/libp2p/go-libp2p:
- update go-libp2p-resource manager, release v0.18.0 (#1361) (libp2p/go-libp2p#1361)
- fix flaky BackoffConnector test (#1353) (libp2p/go-libp2p#1353)
- release v0.18.0-rc6 (#1350) (libp2p/go-libp2p#1350)
- update mplex (#1348) (libp2p/go-libp2p#1348)
- release v0.18.0-rc5 (libp2p/go-libp2p#1341)
- update README (#1330) (libp2p/go-libp2p#1330)
- fix parsing of IP addresses for zeroconf initialization (#1338) (libp2p/go-libp2p#1338)
- fix flaky TestBackoffConnector test (#1328) (libp2p/go-libp2p#1328)
- release v0.18.0-rc4 (libp2p/go-libp2p#1327)
- update go-libp2p-yamux and go-libp2p-quic-transport (#1326) (libp2p/go-libp2p#1326)
- fix (and speed up) flaky TestBackoffConnector test (#1316) (libp2p/go-libp2p#1316)
- increase the UDP receiver buffer size on CI (#1323) (libp2p/go-libp2p#1323)
- fix flaky TestAutoRelay test (#1322) (libp2p/go-libp2p#1322)
- deflake resource manager tests, take 2 (libp2p/go-libp2p#1318)
- fix race condition causing TestAutoNATServiceDialError test failure (#1312) (libp2p/go-libp2p#1312)
- disable flaky relay example test on CI (#1219) (libp2p/go-libp2p#1219)
- fix flaky resource manager tests (libp2p/go-libp2p#1315)
- update deps, fixing nil peer scope pointer issues in connection upgrading (libp2p/go-libp2p#1309)
- release v0.18.0-rc2 (libp2p/go-libp2p#1306)
- add semaphore to control push/delta concurrency (libp2p/go-libp2p#1305)
- update go-libp2p-swarm and go-libp2p-yamux (libp2p/go-libp2p#1304)
- update go-libp2p-resource-manager (libp2p/go-libp2p#1303)
- update yamux to v3.0.2 (libp2p/go-libp2p#1301)
- release v0.18.0-rc1 (libp2p/go-libp2p#1300)
- default connection manager (libp2p/go-libp2p#1299)
- Basic resource manager integration tests (libp2p/go-libp2p#1296)
- use the resource manager (libp2p/go-libp2p#1275)
- move the go-libp2p-connmgr here (libp2p/go-libp2p#1297)
- move go-libp2p-discovery here (libp2p/go-libp2p#1291)
- speed up identify tests (libp2p/go-libp2p#1294)
- don't close the connection when opening the identify stream fails (libp2p/go-libp2p#1293)
- use the netutil package that was moved to go-libp2p-testing (#1263) (libp2p/go-libp2p#1263)
- speed up the autorelay test, fix flaky TestAutoRelay test (libp2p/go-libp2p#1272)
- remove replace directives in the examples go.mod files (libp2p/go-libp2p#1292)
- fix flaky TestStreamsStress test (#1288) (libp2p/go-libp2p#1288)
- chore: update go-log to v2.5.0 (#1286) (libp2p/go-libp2p#1286)
- add an option for the swarm dial timeout (libp2p/go-libp2p#1271)
- use the transport.Upgrader interface (libp2p/go-libp2p#1277)
- fix typo in options.go (#1274) (libp2p/go-libp2p#1274)
- remove direct dependency on libp2p/go-addr-util (libp2p/go-libp2p#1279)
- fix flaky TestNotifications test (libp2p/go-libp2p#1278)
- move go-libp2p-autonat to p2p/host/autonat (libp2p/go-libp2p#1273)
- require the expiration field of the circuit v2 Reservation protobuf (libp2p/go-libp2p#1269)
- run reconnect test using QUIC (libp2p/go-libp2p#1268)
- remove goprocess from the mock package (libp2p/go-libp2p#1266)
- github.com/ipfs/go-log/v2 (v2.4.0 -> v2.5.0):
- release v2.5.0 (#131) (ipfs/go-log#131)
- config inspection (#129) (ipfs/go-log#129)
- update go.uber.org/zap to v1.19.1
- github.com/libp2p/go-libp2p-circuit (v0.4.0 -> v0.6.0):
- release v0.6.0 (#151) (libp2p/go-libp2p-circuit#151)
- chore: update go-log to v2 (#147) (libp2p/go-libp2p-circuit#147)
- release v0.5.0 (#150) (libp2p/go-libp2p-circuit#150)
- use the resource manager (libp2p/go-libp2p-circuit#148)
- use the transport.Upgrader interface (libp2p/go-libp2p-circuit#149)
- (libp2p/go-libp2p-circuit#143)
- add a Close method, remove the context from the constructor (libp2p/go-libp2p-circuit#141)
- chore: update go-libp2p-core, go-libp2p-swarm (libp2p/go-libp2p-circuit#140)
- remove the circuit v2 code (libp2p/go-libp2p-circuit#139)
- implement circuit v2 (libp2p/go-libp2p-circuit#136)
- remove deprecated types (libp2p/go-libp2p-circuit#135)
- fix race condition in TestActiveRelay (libp2p/go-libp2p-circuit#133)
- minor staticcheck fixes (libp2p/go-libp2p-circuit#126)
- Timeout Stream Read (libp2p/go-libp2p-circuit#124)
- github.com/libp2p/go-libp2p-core (v0.13.0 -> v0.14.0):
- release v0.14.0 (#235) (libp2p/go-libp2p-core#235)
- Network Resource Manager interface (#229) (libp2p/go-libp2p-core#229)
- update gopkg.in/yaml.v2 to v2.2.8 (#233) (libp2p/go-libp2p-core#233)
- introduce a transport.Upgrader interface (#232) (libp2p/go-libp2p-core#232)
- remove the transport.AcceptTimeout (#231) (libp2p/go-libp2p-core#231)
- remove the DialTimeout (#230) (libp2p/go-libp2p-core#230)
- remove duplicate io.Closer on Network interface (#228) (libp2p/go-libp2p-core#228)
- github.com/libp2p/go-libp2p-mplex (v0.4.1 -> v0.6.0):
- release v0.6.0 (#32) (libp2p/go-libp2p-mplex#32)
- update mplex (#31) (libp2p/go-libp2p-mplex#31)
- release v0.5.0 (#30) (libp2p/go-libp2p-mplex#30)
- implement the new network.MuxedConn interface (#29) (libp2p/go-libp2p-mplex#29)
- remove Makefile ([libp2p/g...
v0.18.0-rc5
Fixes a goroutine leak in the swarm.
v0.18.0-rc4
Another rc for v0.18.0, fixes a data race in quic-transport and removes the (now unnecessary) hard stream limit from yamux.