Skip to content
This repository has been archived by the owner on Sep 6, 2022. It is now read-only.

Releases: libp2p/go-libp2p-core

v0.5.3

29 Apr 20:23
a4b837b
Compare
Choose a tag to compare

Add a function to check if there is a subscriber for query events.

v0.5.2

25 Apr 01:37
a14197c
Compare
Choose a tag to compare

Misc bug fixes:

  • Avoid copying a mutex.
  • Add some helper functions for converting peer records to/from protobufs.
  • Fix the type for reachability events.

v0.5.1

03 Apr 04:00
2159f6a
Compare
Choose a tag to compare
  • Move tools to a submodule to reduce the dependency count.
  • Rework signed peer record events (not yet used).
  • Fix a bug in the insecure testing transport that would drop bytes.

v0.5.0

07 Mar 01:22
371a34d
Compare
Choose a tag to compare

Hot on the heals on 0.4.0, we're releasing 0.5.0 with another breaking change. To better support per-transport "protector" protocols, we've removed the Protector interface in favor of just passing around a pre-shared key. That way, transports can choose how they wish to use the pre-shared key.

Note: Transports should avoid using the pre-shared key directly. They should treat it as a source of randomness and derive a new key using some transport-specific constant/nonce and a cryptographic hash function.

v0.4.0

06 Mar 10:02
df4636f
Compare
Choose a tag to compare

Major features

Signed envelopes and peer records

The record package now includes the Record and Envelope data types, and related functions. An Envelope that allows libp2p peers to certify data such as addresses, capabilities, protocol support, etc. Such payloads are called Records.

The peer package now offers the PeerRecord record type. It implements the record.Record interface, and enables nodes to certify their own addresses to peers in a sequentially versioned manner.

Peerstore support for certified peer records

The peerstore package now offers the CertifiedAddrBook interface, which peerstores supporting certified peer records can implement to enable users to consume and query certified peer records from the network.

Use the peerstore.GetCertifiedAddrBook() function to attempt to downcast an ordinary peerstore.AddrBook implementation to its certified counterpart.

Other changes

  • New crypto.PubKeyToStdKey and crypto.PrivKeyToStdKey functions to convert from libp2p keys to their stdlib counterparts.
  • Minor eventbus events refactoring.
  • Dependency upgrades.

v0.3.1

21 Feb 17:25
v0.3.1
e075dc9
Compare
Choose a tag to compare
  • Update dependencies
  • In the insecure testing transport, use the reported remote ID instead of computing it.
  • Cache serialized public keys to reduce CPU usage when establishing connections.
  • Add additional events:
    • Identify
    • NAT status changes

v0.3.0

11 Dec 16:10
f7f7248
Compare
Choose a tag to compare

PeerIDs encoded as CIDs

In order to bring multibase support to peer IDs, we're slowly switching to encoding peer IDs as libp2p-key CIDs when formatted in text. They're currently formatted as raw base58 encoded multihashes.

This release:

  • Adds support for encoding peer IDs as libp2p key CIDs (not used by default).
  • Adds support for decoding libp2p key CIDs as peer IDs (enabled by default).

Go 1.13

This release depends on go 1.13 as it uses go's built-in ed25519 library. If you are unable to upgrade, please work with the go team to address your issues with 1.13 and/or hold off on upgrading this package.

P2P Multiaddrs

We've switched the default libp2p multiaddr format from /ipfs/Qm... to /p2p/Qm... (in text only). All libp2p implementations have supported parsing these addresses for quite a while now so we don't expect any issues.

See https://discuss.libp2p.io/t/multiaddr-format-change-ipfs-p2p/330.

Bug Fixes

As this is a release of the core package, there aren't all that many bug fixes. However:

  • We've fixed an issue in our metrics library that would cause it to report nonsensical bandwidth spikes in some cases (#65)
  • We've regenerated our protobufs to fix some potential parsing issues.
  • We've fixed some potential multiaddr parsing issues.

v0.2.5

12 Nov 16:56
f06e38f
Compare
Choose a tag to compare

This release fixes a bug in the insecure plaintext security protocol. The implementation now conforms to the spec by using varints to delimit messages instead of fixed-length integers.

Release v0.2.4

28 Oct 21:05
v0.2.4
a5bf248
Compare
Choose a tag to compare
  • Updates gogo/protobuf.
  • Forbids <2048 bit RSA keys when compiling with OpenSSL. Previously, these were only forbidden with go's built in RSA implementation.

v0.2.3

25 Sep 18:28
v0.2.3
26b9608
Compare
Choose a tag to compare
  • Fixes build on arm64/linux by updating sha256-simd.
  • Include all known multiaddr protocol definitions (circuit, websocket, dns,
    etc.) by default. Previously, one would have to manually import the appropriate
    transport.
  • Fixes a few more constant time private key comparison issues.
  • Update dependencies.