Releases: libp2p/go-libp2p-core
v0.5.3
v0.5.2
v0.5.1
v0.5.0
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
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
andcrypto.PrivKeyToStdKey
functions to convert from libp2p keys to their stdlib counterparts. - Minor eventbus events refactoring.
- Dependency upgrades.
v0.3.1
v0.3.0
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
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
- 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
- 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.