Go-libp2p v0.14.0 released

We’re happy to announce go-libp2p 0.14.0. This release introduces a few long awaited features, fixes a few bugs, and includes progress towards NAT hole punching.

Custom DNS Resolvers

You can now pass a custom DNS resolver through the MultiaddrResolver option. This can be used to add support for DoH, custom TLDs (e.g., .eth), etc.

TCP Simultaneous Open

Adds initial support for TCP Simultaneous Open. If two peers open a TCP connection to each other at the same time using the same set of ports, they’ll end up with a single TCP connection. Previously, go-libp2p would treat this as an error and disconnect. Now the connection succeeds. In the next libp2p release, this will be used to enable hole-punching for NAT traversal.

Improved Stream Multiplexer (Yamux) Performance

Yamux now uses variable sized receive windows to improve performance on high-latency, high-bandwidth connections.

Optimized Noise Read Throughput

The Noise security transport now buffers reads, reducing syscalls and significantly improving throughput.

Changelog

Contributors

Contributor Commits Lines ± Files Changed
vyzo 68 +2240/-1089 106
Steven Allen 42 +1433/-1002 96
Marten Seemann 45 +861/-818 79
Aarsh Shah 13 +910/-147 38
Will 1 +848/-17 11
lanzafame 7 +208/-55 10
jstordeur 1 +252/-2 5
Cory Schwartz 7 +134/-81 31
aarshkshah1992 6 +93/-109 8
huoju 4 +127/-41 6
Will Scott 4 +103/-20 11
Hector Sanjuan 2 +95/-0 3
Raúl Kripalani 1 +30/-25 4
requilence 1 +13/-0 1
Nick Cabatoff 1 +7/-2 1
Jakub Sztandera 2 +8/-1 2
Jonathan Rudenberg 1 +6/-2 3
Tom Worrall 1 +4/-2 1
Jorropo 1 +4/-2 1
Ju Huo 1 +2/-2 1
Nex 1 +1/-1 1
2 Likes