Skip to content

Releases: libp2p/go-libp2p

v0.7.4

03 Apr 06:21
7097641
Compare
Choose a tag to compare

Patch release to update some dependencies. This patch also fixes #841.

v0.7.3

03 Apr 00:16
4181f43
Compare
Choose a tag to compare
  • Re-disables stream write coalescing until we have a chance to profile it.
  • Upgrades the swarm.

v0.7.2

27 Mar 21:43
7342175
Compare
Choose a tag to compare

Revert a yamux optimization that could, in very rare cases, send data on a stream before opening it.

v0.7.1

25 Mar 19:29
f72f751
Compare
Choose a tag to compare
  • Updates some dependencies.
  • Fixes a bug in the AutoNATService support that prevent it from actually starting the service.

v0.7.0

24 Mar 21:39
6e97b5d
Compare
Choose a tag to compare
  • Use the NAT status events to trigger changes in AutoRelay instead of polling. This should result in faster AutoRelay setup.
  • Update to a unified (i.e., unified client+server) and improved AutoNAT service.
  • Avoid running any services on the AutoNAT dialer (no identify, ping, etc.).
  • Fix a regression in 0.6 where the in-memory peerstore wasn't getting properly closed on shutdown.
  • Emit events on the event bus when the local addresses change.
  • New options for AutoNAT:
    • WithReachability can force libp2p to start as "reachable" or "unreachable" and not try to autodetect reachability.
    • EnableNATService can be passed to make this node act as an AutoNAT server.

v0.6.1

19 Mar 04:38
76c1f95
Compare
Choose a tag to compare

Updates a bunch of dependencies.

v0.6.0

10 Mar 02:33
9ad477b
Compare
Choose a tag to compare

Go-LibP2P 0.6.0

This release includes several important changes you should be aware of.

PrivateNetwork Option [BREAKING]

The PrivateNetwork option has changed to directly take a pre-shared key. This option used to take an object implementing the protector interface. Unfortunately, the protector interface assumes stream transports and doesn't extend well to packet-based transports like QUIC.

When you upgrade, you'll need to use github.com/libp2p/go-libp2p-core/pnet.DecodeV1PSK to decode your pre-shared key, then pass this key into libp2p using the libp2p.PrivateNetwork option.

Write Coalescing

In this release, stream multiplexers now coalesce multiple writes from multiple streams into a single write to the underlying transport. This slightly increases packet latency but significantly reduces the number of packets libp2p sends which should improve performance and reduce bandwidth overall.

Unfortunately, this optimization that will crash peers running go-libp2p versions prior to v0.0.20 (April 2019) and go-ipfs versions prior to 0.4.21 (May 2019).

Address Advertisements

Libp2p no longer advertises localhost addresses to peers not running on localhost. This could, in theory, make it harder to dial a peer on the same host. However, this should never be an issue in real-world scenarios.

Zap Logging

Libp2p has switched to the zap logging backend by default. To get JSON-encoded Zap logging output, set the GOLOG_LOG_FMT=json environment variable.

QUIC

The libp2p QUIC transport (not enabled by default) now implements QUIC draft 27. We expect this to be the final draft before we stabilize and enable this transport by default.

Release v0.5.2

14 Feb 18:42
46a1b0f
Compare
Choose a tag to compare

Small bugfix release to update some dependencies.

  • Updates go-cid and go-multihash to ensure varints use the minimal representation.
  • Updates go-multistream to avoid a concurrent writes.

Release v0.5.1

17 Jan 14:26
76944c4
Compare
Choose a tag to compare

This is a small, mostly bugfix release:

  • Demote stream deadline logs from errors to debug to reduce logspam (#768).
  • When a NAT reports an unroutable address (via the NAT port mapping protocol), advertise both the reported address and the observed public address. Previously, we just reported the observed public address assuming that the NAT was buggy. However, this broke communication between NATs within NATs (#771).
  • Add an option to configure a static set of relays. Unfortunately, libp2p has no way to (currently) determine if a relay is "good" so we spend quite a bit of time picking random relays and getting disconnected, again and again. This new option allows one to specify a set of known-good relays.

v0.5.0

17 Dec 12:41
ef1fc8a
Compare
Choose a tag to compare

Updates to go-libp2p-core 0.3.0. Requires go 1.13.

  • Switches multiaddrs from /ipfs/QmFoo to /p2p/QmFoo
  • Fix a concurrent write/panic bug in the websocket transport.
  • Recursively resolve /dnsaddr multiaddrs.
  • And many misc bugfixes...