Removed the Substream associated type from the ProtocolsHandler trait. The type of the substream is now always libp2p::swarm::NegotiatedSubstream.
As a consequence of the previous change, most of the implementations of the NetworkBehaviour trait provided by libp2p (Ping, Identify, Kademlia, Floodsub, Gossipsub) have lost a generic parameter.
Removed the first generic parameter (the transport) from Swarm and ExpandedSwarm. The transport is now abstracted away in the internals of the swarm.
The Send and 'static bounds are now enforced directly on the ProtocolsHandler trait and its associated InboundUpgrade and OutboundUpgrade implementations.
Modified PeerIds to compare equal across the identity and SHA256 hashes. As a consequence, the Borrow implementation of PeerId now always returns the bytes representation of a multihash with a SHA256 hash.
Modified libp2p-floodsub to no longer hash the topic. The new behaviour is now compatible with go-libp2p and js-libp2p, but is a breaking change with regards to rust-libp2p.
Added libp2p-pnet. It makes it possible to protect networks with a pre-shared key (PSK).
Modified the poll_method parameter of the NetworkBehaviour custom derive. The expected method now takes an additional parameter of type impl PollParameters to be consistent with the NetworkBehaviour::poll method.
libp2p-noise now compiles for WASM targets.
Changed libp2p-noise to grow its memory buffers dynamically. This should reduce the overall memory usage of connections that use the noise encryption.
Fixed libp2p-gossipsub to no longer close the connection if the inbound substream is closed by the remote.
All crates prefixed with libp2p- now use the same version number.
Added a new variant ListenerEvent::Error for listeners to report non-fatal errors. libp2p-tcp uses this variant to report errors that happen on remote sockets before they have been accepted and errors when trying to determine the local machine's IP address.
Version 0.15.0 (2020-01-24)
Added libp2p-gossipsub.
Added SwarmBuilder::executor to allow configuring which tasks executor to use.
Added TokioTcpConfig in libp2p-tcp and TokioUdsConfig in libp2p-uds behind tokio features. These structs use tokio and require a tokio runtime executor to be configured via SwarmBuilder::executor.
Changed the OutboundUpgrade and InboundUpgrade traits to no longer be passed a Negotiated<C> but just a C. The Negotiated is now in the trait bounds requirements of ProtocolsHandler.
Fixed libp2p-wasm-ext returning Err(WouldBlock) rather than Pending.
Fixed libp2p-dns not segregating DNS4 and DNS6.
Removed some unnecessary Unpin requirements on futures.
Changed Mdns::new to no longer be async.
Fixed libp2p-kad keeping connections alive when it shouldn't.
Fixed InboundUpgrade not always properly implemented on NoiseConfig.
Version 0.14.0-alpha.1 (2020-01-07)
Upgraded the crate to stable futures.
Use varints instead of fixed sized (4 byte) integers to delimit plaintext 2.0 messages to align implementation with the specification.
Refactored the core::upgrade module to provide async functions.
Changed the Stream trait implementation of Swarm to no longer return a Result.
Added the Swarm::next and Swarm::next_event functions and the SwarmEvent enum.
Changed ProtocolsHandler::poll to no longer return an error. Instead, ProtocolsHandlerEvent has a new Close variant which corresponds to what an error represented before.
Changed all the traits that have a poll function (i.e. NetworkBehaviour, ProtocolsHandler, NodeHandler) to have an additional &mut Context parameter, to reflect the changes in the Future trait.
Revamped the API of libp2p_websockets::framed.
Added protocol string to Error::UnknownProtocolString.
Version 0.13.2 (2020-01-02)
Fixed the libp2p-noise handshake not flushing the underlying stream before waiting for a response.
Fixed semver issue with the protobuf crate.
Version 0.13.1 (2019-11-13)
Maintenance release to bump dependencies and deal with an accidental breaking change in multihash 0.1.4.
... (truncated)
Commits
be31f66 Revert bumping multistream-select and bump multihash (#1455)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking Bump now in your Dependabot dashboard.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Updates the requirements on libp2p to permit the latest version.
Changelog
Sourced from libp2p's changelog.
Commits
be31f66
Revert bumping multistream-select and bump multihash (#1455)ace8123
Publish 0.16.0 (#1453)70d634d
Grow noise buffers dynamically. (#1436)bbed28b
Make errors on listener non-fatal (#1427)e2ddab2
add poll parameters to custom poll function (#1442)cdb733b
yamux: Re-exportWindowUpdateMode
. (#1443)b872bd9
Temporary canonical multihash in peer ID. (#1449)8238fd2
Switch noise from the RingResolver to the DefaultResolver (#1439)afb1c87
multiaddr: Fix generation of arbitrary onion addr. (#1451)e855cd5
Use SHA256 again for from_public_key (#1444)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking
Bump now
in your Dependabot dashboard.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)