Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump libp2p-identity from 0.2.4 to 0.2.5 #1871

Closed
wants to merge 1 commit into from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Oct 9, 2023

Bumps libp2p-identity from 0.2.4 to 0.2.5.

Release notes

Sourced from libp2p-identity's releases.

libp2p-v0.52.3

See individual changelogs for details.

libp2p-v0.52.2

See individual changelogs for details.

libp2p-v0.52.1

See individual changelogs for details.

libp2p-v0.52.0

Automatic kademlia client/server mode

Let's get the biggest one out the way first, I promise the other points are easier explained but equally exciting. The tl;dr is: Healthier Kademlia routing tables and an improved developer experience.

If you don't know about Kademlia's client/server mode, checkout the specs.

With the v0.52 release, rust-libp2p automatically configures Kademlia in client or server mode depending on our external addresses. If we have a confirmed, external address, we will operate in server-mode, otherwise client-mode. This is entirely configuration-free (yay!) although follow-up work is under-way to allow setting this manually in certain situations: #4074.

We can now do the following:

  1. As soon as we learn about an external address (e.g. via AutoNAT), we activate server mode of Kademlia.
  2. Activating server-mode means we allow inbound requests, this is a change in our set of supported protocols.
  3. The change is detected automatically and reported to all protocols as ConnectionEvent::LocalProtocolsChange.
  4. libp2p-identify picks up this change and pushes it to all connected remote nodes.
  5. Remote nodes can instantly put us into their routing table.

To implement this, several other features/issues had to be fixed. If you are interested in the details, read on:

  • Simplify the scoring mechanism of external addresses: #3954

    As a consequence, the observed address reported by identify is no longer considered an external address but just an address candidate. Checkout the changelog-entry for a way of restoring the old behaviour.

  • Changes to the supported protocols are now detected at runtime and communicated to all protocols: #3651.

    Previously, a protocol could retrieve the supported protocols via PollParameters::supported_protocols. This list however was computed at start-up and was static. Now, ConnectionEvent has two new variants:

    pub enum ConnectionEvent<'a> {
      // existing variants omitted ...
    /// The local [ConnectionHandler] added or removed support for one or more protocols.
    LocalProtocolsChange(ProtocolsChange<'a>),
    /// The remote [ConnectionHandler] now supports a different set of protocols.
    RemoteProtocolsChange(ProtocolsChange<'a>),
    }
    pub enum ProtocolsChange<'a> {
    Added(ProtocolsAdded<'a>),
    Removed(ProtocolsRemoved<'a>),
    }

... (truncated)

Commits

Dependabot compatibility score

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.


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 show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @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)

Bumps [libp2p-identity](https://github.com/libp2p/rust-libp2p) from 0.2.4 to 0.2.5.
- [Release notes](https://github.com/libp2p/rust-libp2p/releases)
- [Changelog](https://github.com/libp2p/rust-libp2p/blob/master/CHANGELOG.md)
- [Commits](https://github.com/libp2p/rust-libp2p/commits)

---
updated-dependencies:
- dependency-name: libp2p-identity
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file rust labels Oct 9, 2023
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Oct 10, 2023

Looks like libp2p-identity is no longer updatable, so this is no longer needed.

@dependabot dependabot bot closed this Oct 10, 2023
@dependabot dependabot bot deleted the dependabot/cargo/libp2p-identity-0.2.5 branch October 10, 2023 11:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants