1930 Commits

Author SHA1 Message Date
Thomas Eizinger
95e27ece8e
.github: Add mergify configuration (#3026) 2022-11-03 12:25:12 +11:00
Thomas Eizinger
53d445e61c
protocols/kademlia: Refactor stream state machines (#3074)
* Refactor `InboundSubstreamState` to implement `Stream`

This allows us to use `stream::SelectAll` instead of iterating
through the states ourselves. It also allows us to fix an existing
TODO where we don't properly close a stream.

* Refactor `OutboundSubstreamState` to implement `Stream`

* Remove unnecessary keep_alive changes

The same thing is happening further down.

* Remove code duplication in answering requests

* Debug assert that we can answer every request
2022-11-02 19:20:55 +00:00
Thomas Eizinger
f4ce1fe9ae
swarm/pool: Misc refactoring (#3073)
* Remove unreachable error case

Instead of taking the connection out of the map again, construct
the event to be returned with the data we already have available.

* Remove `Pool::get` and `PoolConnection`

These are effectively not used.

* Replace `iter_pending_info` with its only usage: `is_dialing`

* Add `is_for_same_remote_as` convenience function

* Remove `PendingConnection`

* Rename `PendingConnectionInfo` to `PendingConnection`

With the latter being gone, the name is now free.

* Merge `EstablishedConnectionInfo` and `EstablishedConnection`

This is a leftover from when `Pool` was still in `libp2p-core` and
one of them was a public API and the other one wasn't.

All of this is private to `libp2p-swarm` so we no longer need to
differentiate.

* Don't `pub use` out of `pub(crate)` modules
2022-11-02 18:47:00 +00:00
João Oliveira
64e38bd6b4
swarm/: Link ThreadPool in documentation (#3067) 2022-11-02 15:09:55 +00:00
Thomas Eizinger
df659e5bcd
core/muxer: Remove deprecated functions (#3031) 2022-11-02 15:09:12 +00:00
João Oliveira
49679d31e7
swarm/CHANGELOG.md: Fix version mismatch with v0.40.1 (#3063) 2022-11-02 13:41:28 +00:00
dependabot[bot]
ee5c9b7202
build(deps): Update multiaddr requirement from 0.14.0 to 0.15.0 (#3051)
Updates the requirements on [multiaddr](https://github.com/multiformats/rust-multiaddr) to permit the latest version.
- [Release notes](https://github.com/multiformats/rust-multiaddr/releases)
- [Changelog](https://github.com/multiformats/rust-multiaddr/blob/master/CHANGELOG.md)
- [Commits](https://github.com/multiformats/rust-multiaddr/compare/v0.14.0...v0.15.0)

---
updated-dependencies:
- dependency-name: multiaddr
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-02 12:57:21 +00:00
Thomas Eizinger
71131e0622
*: Don't leak prost dependency in error types (#3058)
With the current design, a major version bump of `prost` leaks into
all consumers of `prost-codec`.
2022-11-02 12:02:21 +00:00
Max Inden
b42f28630e
ROADMAP: Follow ups on recent review (#3062)
* ROADMAP: Remove project board for now

* ROADMAP: Encourage feedback

* ROADMAP: Remove TLS

* ROADMAP: Link to specs/ROADMAP.md

* ROADMAP: Prioritize QUIC beyond the first iteration

* ROADMAP: No longer mark QUIC as experimental
2022-10-26 10:20:34 +01:00
Andrew Mackenzie
5bce6edff9
examples/gossipsub-chat: Add mDNS peer discovery (#2996)
Co-authored-by: João Oliveira <hello@jxs.pt>
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-26 11:43:14 +11:00
Thomas Eizinger
437b387159
CHANGELOG.md: Move libp2p-tls to correct version (#3057)
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-25 22:09:46 +11:00
Thomas Eizinger
4d1b165982
transports/tcp: Unify symbol naming (#2961)
Co-authored-by: Elena Frank <elena.frank@protonmail.com>
2022-10-24 15:41:08 +11:00
Hannes
fcadc83aca
*: Use auto_doc_cfg instead of doc(cfg) attributes (#2983)
Co-authored-by: João Oliveira <hello@jxs.pt>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2022-10-24 13:00:20 +11:00
Thomas Eizinger
159a10b812
transports/tls: Add libp2p-tls as per spec (#2945)
Co-authored-by: David Craven <david@craven.ch>
Co-authored-by: Demi Marie Obenour <demiobenour@gmail.com>
Co-authored-by: Elena Frank <elena.frank@protonmail.com>
Co-authored-by: Max Inden <mail@max-inden.de
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
Co-authored-by: Roman Proskuryakov <r.proskuryakoff@gmail.com>
2022-10-24 11:54:44 +11:00
dependabot[bot]
a0adaf6a54
build(deps): Bump Swatinem/rust-cache from 2.0.0 to 2.0.1 (#3033)
* build(deps): Bump Swatinem/rust-cache from 2.0.0 to 2.0.1

Bumps [Swatinem/rust-cache](https://github.com/Swatinem/rust-cache) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/Swatinem/rust-cache/releases)
- [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md)
- [Commits](6720f05bc4...22c9328bcb)

---
updated-dependencies:
- dependency-name: Swatinem/rust-cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Apply suggestions from code review

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-21 19:03:44 +01:00
dependabot[bot]
d10d433b9f
build(deps): Update ed25519-compact requirement from 1.0.11 to 2.0.2 (#3016)
Updates the requirements on [ed25519-compact](https://github.com/jedisct1/rust-ed25519-compact) to permit the latest version.
- [Release notes](https://github.com/jedisct1/rust-ed25519-compact/releases)
- [Commits](https://github.com/jedisct1/rust-ed25519-compact/compare/1.0.11...2.0.2)

---
updated-dependencies:
- dependency-name: ed25519-compact
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-21 16:18:35 +01:00
Max Inden
56a4a946c6
Roadmap.md: Discuss the near term future of rust-libp2p (#2997)
The items in this roadmap are ordered by importance where importance is defined as:

- Enable others to build with rust-libp2p before building components ourself.
  - e.g.[cross behaviour communication](#cross-behaviour-communication) over[Kademlia client
    mode](#kademlia-client-mode) where the former enables the latter
- Invest into tools that enable us to work more efficiently
  - e.g.[Testground](#testground-abstraction) and [release process](#release-process)
- Better do one thing well than many things close to right.
  - e.g. deprioritize [BitSwap implementation](#bitswap-implementation) and continue on
    [QUIC](#quic-support) even once first ieration is merged. That does not imply that we won't
    support community members implementing it.
- Improve existing components before introducing new ones.
  - e.g.[Kademlia client mode](#kademlia-client-mode) before [WebTransport](#webtransport)
2022-10-20 21:37:02 +01:00
Max Inden
cec1a8d26f
docs/release: Document cargo-release process and mention root changelog (#3028)
* docs/release: Document cargo-release process

* docs/release: Document update to root level changelog.md
2022-10-20 20:56:02 +01:00
João Oliveira
4a4d4ad5c9
protocols/identify: Fix Identify protocol link in module doc (#3047) 2022-10-20 14:59:30 +01:00
Thomas Eizinger
3e4a0640fd
Cargo.toml: Remove deprecated executor-specific features (#3001)
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-20 14:17:20 +11:00
Roland Kuhn
c84a0fb86b
swarm: Improve rendering of ConnectionLimit error (#3043) 2022-10-20 10:46:23 +11:00
Thomas Eizinger
4d4833f8c2
muxers: Add test harness for StreamMuxer implementations (#2952) 2022-10-17 11:23:13 +11:00
Thomas Eizinger
981d586bfe
.github/workflows: Don't allow concurrent workflow runs (#3000) 2022-10-15 15:38:53 +11:00
Max Inden
b5612dc431
transports/dns/: Don't feature flag std::io import (#3027)
Functions like `parse_dnsaddr_txt` depend on the `std::io` import. Given
that the function is not feature flagged, compilation without features
fails.
2022-10-14 16:55:50 +01:00
Max Inden
d530e5112c
*: Prepare v0.49.0 (#2931) 2022-10-14 15:30:16 +01:00
ControlCplusControlV
2c65b0a601
README: Add fuel-core as a notable user (#3003)
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2022-10-14 19:10:52 +11:00
Qinxuan Chen
d9a2e6c1bd
build(deps): Update clap to v4 (#3015) 2022-10-14 15:51:23 +11:00
Chad Nehemiah
3371d7ceab
.github/workflows: Enforce semver compliance with cargo semver-checks (#2647) 2022-10-12 20:42:44 +01:00
Thomas Eizinger
eb10af7a4b
protocols/{relay,dcutr}: Replace std::time::SystemTime with instant::SystemTime (#2991) 2022-10-12 14:09:47 +01:00
Thomas Eizinger
f711dd5ce0
core/muxer: Deprecate StreamMuxerExt::next_{inbound,outbound} (#3002) 2022-10-12 13:36:39 +01:00
Thomas Eizinger
eba2efe29a
protocols/noise: Inline handshake functions into upgrade traits (#2909)
- Remove `Deref` implementation on `AuthenticKeypair`.
- Make `handshake` module private.
- Deprecate `AuthenticKeypair::into_identity`.
2022-10-11 18:48:16 +01:00
Thomas Eizinger
31a45f2d76
Cargo.toml: Deprecate executor specific features for sub-crates (#2962) 2022-10-11 23:10:10 +11:00
Elena Frank
aba5ccbce3
core/transport: Improve docs for Transport::address_translation (#2976) 2022-10-09 21:53:17 +01:00
Thomas Eizinger
ba99464434
.github/workflows: Re-activate documentation of private items (#2990) 2022-10-09 21:30:53 +01:00
Hannes
ece25973d5
transport/pnet: Update salsa20 to 0.10 (#2989) 2022-10-08 17:13:00 +11:00
Hannes
87ab49e812
protocols/mdns: Update to if-watch v2.0.0 (#2978) 2022-10-05 21:23:50 +01:00
Hannes
4a4019da50
transport/dns: Update async-std-resolver and trust-dns-resolver (#2988)
* build(deps): Update async-std-resolver requirement from 0.21 to 0.22

Updates the requirements on [async-std-resolver](https://github.com/bluejekyll/trust-dns) to permit the latest version.
- [Release notes](https://github.com/bluejekyll/trust-dns/releases)
- [Changelog](https://github.com/bluejekyll/trust-dns/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bluejekyll/trust-dns/compare/v0.21.0...v0.22.0)

---
updated-dependencies:
- dependency-name: async-std-resolver
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bumped versions of async-std-resolver and trust-dns-resolver

* Updated changelog

* Update transports/pnet/CHANGELOG.md

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-05 20:49:00 +01:00
Hannes
33b5c05529
*: Updated comments in examples (#2985) 2022-10-05 18:49:03 +01:00
Thomas Eizinger
bdf9209824
swarm: Split off "keep alive" functionality from DummyConnectionHandler (#2859)
Previously, the `DummyConnectionHandler` offered a "keep alive" functionality,
i.e. it allowed users to set the value of what is returned from
`ConnectionHandler::keep_alive`. This handler is primarily used in tests or
`NetworkBehaviour`s that don't open any connections (like mDNS). In all of these
cases, it is statically known whether we want to keep connections alive. As
such, this functionality is better represented by a static
`KeepAliveConnectionHandler` that always returns `KeepAlive::Yes` and a
`DummyConnectionHandler` that always returns `KeepAlive::No`.

To follow the naming conventions described in
https://github.com/libp2p/rust-libp2p/issues/2217, we introduce a top-level
`keep_alive` and `dummy` behaviour in `libp2p-swarm` that contains both the
`NetworkBehaviour` and `ConnectionHandler` implementation for either case.
2022-10-05 17:50:11 +01:00
Hannes
da0403dc45
protocols/mdns: Removed obsolete lazy static use from mdns (#2977)
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-05 10:26:30 +11:00
Elena Frank
4577c5a81d
transports/tcp: Only translate tcp addresses (#2970)
Return `None` in in `<GenTcpTransport as Transport>::address_translation` if the
address is not a tcp address. Relevant if in case of something like
`OrTransport<TcpTransport, QuicTransport>`, where tcp would currently perform
the address translation for quic addresses.
2022-10-04 18:42:05 +01:00
Thomas Eizinger
f13f9edeb4
protocols/identify: Fix bad changelog entries and manifest version (#2974)
Fix bad changelog entries and manifest version for libp2p-identify
2022-10-04 18:06:45 +01:00
Thomas Eizinger
f359c2ce5c
.github/worksflows/ci: Fix bad use of bash (#2963) 2022-10-04 12:29:03 +01:00
Thomas Eizinger
215a8e12f3
{core,muxers/mplex}: Fix bad version bump (#2960) 2022-10-04 12:04:42 +01:00
Thomas Eizinger
a905a36cbc
protocols/mdns: Optimise InterfaceState::poll for low latency (#2939) 2022-10-04 18:45:39 +11:00
Thomas Eizinger
1b793242e6
.cargo: Run clippy on ALL the source files (#2949) 2022-10-04 18:24:38 +11:00
David D
e6da99e4f8
.github/workflows: Deny cargo doc warnings in CI (#2936)
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2022-10-04 12:01:45 +11:00
João Oliveira
a7a96e5502
protocols/identify: Revise symbol naming (#2927) 2022-10-04 11:17:31 +11:00
Thomas Eizinger
1da75b2b25
protocols/ping: Properly deprecate types with Ping prefix (#2937)
Co-authored-by: Elena Frank <elena.frank@protonmail.com>
Co-authored-by:  João Oliveira <hello@jxs.pt>
2022-10-01 00:19:34 +10:00
Ryan Plauche
cce296e55e
protocols/{autonat,dcutr}: Fixing filename collision in examples (#2959)
Co-authored-by: Ryan Plauche <ryan@littlebearlabs.io>
2022-09-30 13:58:35 +10:00