Releases: libp2p/go-libp2p
v0.7.0
- 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
v0.6.0
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
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
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
v0.4.2
v0.4.1
v0.4.0
This release is mostly a bugfix release but it gets a major version bump as it introduces two new features.
Features:
- Add a
UserAgent
option to libp2p for specifying the libp2p user-agent. Previously, this was specified using a globalClientVersion
global variable.- Set the default user-agent to
$repo@$version
(where$repo
is the downstream project importing go-libp2p).
- Set the default user-agent to
- Add a
Filters
option to the constructor for specifying an address filter. This can be used to restrict which peers libp2p will connect to by IP/port/transport.
Bug Fixes:
- Update multiple deps
- websocket (bug fixes)
- sha256-simd (arm build fix)
- mdns (race conditions)
- Update for go-multiaddr protocol definition refactor. Multiaddr protocols have been moved out of libp2p transports into go-multiaddr itself.
- Fix some issues with non-constant time operations involving libp2p secret keys.
v0.3.1
- Upgrades go-libp2p-core and go-eventbus dependencies to fix a panic on duplicate
host.Close()
(now idempotent). - Makes the
NoSecurity
option use the newplaintext/2.0.0
secure channel.