2752 Commits

Author SHA1 Message Date
Thomas Eizinger
02d0ee0b3d
refactor(webrtc): remove example in favor of browser-webrtc example
We've moved away from having individual examples in crates in #3111. This one in `transports/webrtc` seems to have slipped through.

Pull-Request: #4531.
2023-09-21 00:47:05 +00:00
João Oliveira
854a6ae868
refactor(swarm): update ConnectionDenied::new
This allows us to input `String`'s and `&str` on ConnectionDenied::new() as there's [`From<String> for Box<dyn Error + Send + Sync>`](https://doc.rust-lang.org/std/error/trait.Error.html#impl-From%3CString%3E-for-Box%3Cdyn+Error+%2B+Send+%2B+Sync,+Global%3E).

Pull-Request: #4530.
2023-09-20 22:03:41 +00:00
Denis Garus
efea4902a5
refactor(relay): move stream-handling away from {In,Out}boundUpgrade
Fixes: #4075.

Pull-Request: #4275.
2023-09-20 08:11:36 +00:00
Panagiotis Ganelis
5d740a8665
refactor(core): blanket implementation of connection upgrade
Introduces blanket implementation of `{In,Out}boundConnectionUpgrade` and uses it in transport upgrade infrastructure.

Resolves: #4307.

Pull-Request: #4316.
2023-09-20 01:36:39 +00:00
Sumit
c52a2fc3af
feat(swarm): allow configuration to idle connection timeout
Previously, a connection would be shut down immediately as soon as its `ConnectionHandler` reports `KeepAlive::No`. As we have gained experience with libp2p, it turned out that this isn't ideal.

For one, tests often need to keep connections alive longer than the configured protocols require. Plus, some usecases require connections to be kept alive in general.

Both of these needs are currently served by the `keep_alive::Behaviour`. That one does essentially nothing other than statically returning `KeepAlive::Yes` from its `ConnectionHandler`.

It makes much more sense to deprecate `keep_alive::Behaviour` and instead allow users to globally configure an `idle_conncetion_timeout` on the `Swarm`. This timeout comes into effect once a `ConnectionHandler` reports `KeepAlive::No`. To start with, this timeout is 0. Together with https://github.com/libp2p/rust-libp2p/issues/3844, this will allow us to move towards a much more aggressive closing of idle connections, together with a more ergonomic way of opting out of this behaviour.

Fixes #4121.

Pull-Request: #4161.
2023-09-19 22:32:29 +00:00
João Oliveira
ff92ba0f90
docs(roadmap): mark UPnP as done
Marks UPnP as `done` in the ROADMAP.md

Pull-Request: #4518.
2023-09-18 23:20:52 +00:00
dependabot[bot]
7b5d815389
deps: bump syn from 2.0.32 to 2.0.37
Pull-Request: #4517.
2023-09-18 10:14:43 +00:00
dependabot[bot]
4f5b9e3afb
deps: bump libc from 0.2.147 to 0.2.148
Pull-Request: #4516.
2023-09-18 09:54:13 +00:00
dependabot[bot]
3ee8ab6581
deps: bump serde_json from 1.0.106 to 1.0.107
Pull-Request: #4515.
2023-09-18 09:41:40 +00:00
dependabot[bot]
589ca19f6d
deps: bump rust-embed from 6.8.1 to 8.0.0
Pull-Request: #4514.
2023-09-18 09:29:47 +00:00
dependabot[bot]
8a523f950f
deps: bump socket2 from 0.5.3 to 0.5.4
Pull-Request: #4513.
2023-09-18 09:17:45 +00:00
dependabot[bot]
7f27b58a32
deps: bump trybuild from 1.0.84 to 1.0.85
Pull-Request: #4511.
2023-09-18 09:05:59 +00:00
dependabot[bot]
c37d9d56d7
deps: bump proc-macro2 from 1.0.66 to 1.0.67
Pull-Request: #4512.
2023-09-18 08:52:41 +00:00
Doug A
f5e644da8f
feat(webrtc): add WebRTC for WASM environments
This PR implements `Transport` for WebRTC for browsers by using web-sys. Only the `webrtc-direct` spec is implemented. The `webrtc` spec for connecting two browsers with each other is left to a future PR.

Related: https://github.com/libp2p/specs/issues/475.
Related #2617.
Supersedes: #4229.

Pull-Request: #4248.

Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2023-09-17 19:13:11 +00:00
Ademola
508cad1f0d
feat(kad): migrate to quick-protobuf-codec crate
Resolves #4487.

Pull-Request: #4501.
2023-09-15 21:11:09 +00:00
dependabot[bot]
2c3d6ad6da
deps: bump docker/setup-buildx-action from 2 to 3
Pull-Request: #4492.
2023-09-14 03:49:28 +00:00
dependabot[bot]
350b21bbd3
deps: bump docker/build-push-action from 4 to 5
Pull-Request: #4493.
2023-09-14 00:54:11 +00:00
dependabot[bot]
768952a913
deps: bump docker/metadata-action from 4 to 5
Pull-Request: #4491.
2023-09-14 00:16:23 +00:00
Thomas Eizinger
def4ac48ed
fix(ci): only push docker image if we have the necessary permissions
We run this workflow in several contexts: `pull_request`, `tags` and `push`. For the events that are not `pull_request`, this property won't be defined, i.e. be `undefined`. Negating that should yield `true` which is what we want: push the image for the `master` branch and on new tags that start with `libp2p-server-*`.

Pull-Request: #4502.
2023-09-13 23:46:08 +00:00
Thomas Eizinger
1fff308d19
feat(interop-tests): avoid re-building wasm-pack and wasm-opt
These two are currently always re-built on every run. We don't need `wasm-opt` if we build the WASM in debug mode and we can install `wasm-pack` by downloading it from a URL.

Pull-Request: #4497.
2023-09-13 10:04:28 +00:00
dependabot[bot]
34b37987ca
deps: bump Swatinem/rust-cache from 2.6.2 to 2.7.0
Pull-Request: #4498.
2023-09-13 09:15:41 +00:00
chirag-bgh
4ea42c99eb
refactor(server): remove spawning of 2nd tokio runtime
Closes #4448.

Pull-Request: #4454.
2023-09-13 02:45:50 +00:00
João Oliveira
411a0495c5
feat(upnp): add implementation based on IGD protocol
Implements UPnP via the IGD protocol. The usage of IGD is an implementation detail and is planned to be extended to support NATpnp.

Resolves: #3903.

Pull-Request: #4156.
2023-09-12 10:29:27 +00:00
sufferpurrityxd
b0c3da7f87
feat(swarm): log local peer id on swarm creation
Closes https://github.com/libp2p/rust-libp2p/issues/4394.

Pull-Request: #4439.
2023-09-12 10:09:27 +00:00
dependabot[bot]
581b1e42d0
deps: bump webrtc from 0.8.0 to 0.9.0
Pull-Request: #4475.
2023-09-12 09:30:16 +00:00
Max Inden
b8f47aa988
ci: use docker/metadata-action
Current approach is not robust to more complex branch names.

Related https://github.com/libp2p/rust-libp2p/pull/4311#discussion_r1303958188.

Pull-Request: #4421.
2023-09-12 05:54:29 +00:00
dependabot[bot]
92b5721ccb
deps: bump stun from 0.4.4 to 0.5.0
Pull-Request: #4482.
2023-09-12 05:34:12 +00:00
Max Inden
0e64d71196
fix(server): filter out /quic in favor of /quic-v1
Configuration files generated by Kubo <= v0.22 list both `/quic` and `/quic-v1` listen addresses with the same UDP port. Given that we enable draft-29, the two addresses are treated the same by rust-libp2p's QUIC implementation. Though calling `listen_on` with both results in an "Address already in use" error by the OS on the second call. To prevent this from happening filter out `/quic` addresses in favor of `/quic-v1`.

Pull-Request: #4467.
2023-09-12 03:03:38 +00:00
dependabot[bot]
d1d358ca43
deps: bump syn from 2.0.31 to 2.0.32
Pull-Request: #4473.
2023-09-12 00:53:23 +00:00
dependabot[bot]
ca9fdf8b0d
deps: bump curve25519-dalek from 4.0.0 to 4.1.0
Pull-Request: #4472.
2023-09-12 00:33:35 +00:00
dependabot[bot]
f798572e78
deps: bump lru from 0.11.0 to 0.11.1
Pull-Request: #4478.
2023-09-11 23:57:05 +00:00
dependabot[bot]
0df1a96e3c
deps: bump base64 from 0.21.3 to 0.21.4
Pull-Request: #4479.
2023-09-11 23:32:09 +00:00
Thomas Eizinger
240019f809
deps: update webpki to 0.22.1
A simple update to our lockfile to help fix #4375.

Pull-Request: #4483.
2023-09-11 20:53:38 +00:00
Mario Camou
ce8f38cc16
feat(misc/server): add libp2p-lookup to rust-libp2p-server
As mentioned in #4444, we need to include https://github.com/mxinden/libp2p-lookup/ in the image so that we can enable a healthcheck when it starts up.

Pull-Request: #4466.
2023-09-11 16:51:54 +00:00
dependabot[bot]
ae3cef14cb
deps: bump serde_json from 1.0.105 to 1.0.106
Pull-Request: #4481.
2023-09-11 14:13:30 +00:00
dependabot[bot]
3609423628
deps: bump trybuild from 1.0.83 to 1.0.84
Pull-Request: #4471.
2023-09-11 13:53:24 +00:00
dependabot[bot]
b08eb21794
deps: bump unsigned-varint from 0.7.1 to 0.7.2
Pull-Request: #4480.
2023-09-11 11:54:37 +00:00
dependabot[bot]
c5dc6d380d
deps: bump sysinfo from 0.29.9 to 0.29.10
Pull-Request: #4477.
2023-09-11 10:26:13 +00:00
dependabot[bot]
7a94dd820a
deps: bump bytes from 1.4.0 to 1.5.0
Pull-Request: #4476.
2023-09-11 09:36:26 +00:00
dependabot[bot]
ac57f8df7e
deps: bump multihash from 0.19.0 to 0.19.1
Pull-Request: #4474.
2023-09-11 08:59:07 +00:00
Darius Clark
cd32435d85
fix(ping): honor ping interval in case of errors
This PR adds a delay to ping connection handler after exceeding the failure rate to prevent opening a outbound stream right after an error.

Resolves #4410.

Pull-Request: #4423.
2023-09-09 09:37:25 +00:00
Thomas Eizinger
19be7747c0
deps: update cargo semver-checks to v0.23
See https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.23.0.

Pull-Request: #4469.
2023-09-08 09:04:52 +00:00
dependabot[bot]
c0bccf724e
deps: bump the trust-dns group with 2 updates
Pull-Request: #4441.
2023-09-06 17:50:18 +00:00
Yiannis Marangos
6715281d92
feat: implement Debug trait
Pull-Request: #4426.
2023-09-06 14:44:43 +00:00
dvorakchen
3f0074800e
docs: update code in tutorial and dcutr docs
When we moved our examples, the hole-punching docs were not updated for the new names of the binaries. We adjust them such that the tutorial works again.

Pull-Request: #4458.
2023-09-06 12:15:24 +00:00
chirag-bgh
94a136c722
fix(swarm): better error message for failed DialPeerConditions
Closes #4407.

Pull-Request: #4409.
2023-09-06 11:55:23 +00:00
Doug A
6f0895fee1
feat(interop-tests): add ability to run chromedriver tests on Windows
When running on Windows OS, the command needs the `.cmd` extension in order to work.

Pull-Request: #4456.
2023-09-05 22:55:09 +00:00
dependabot[bot]
b108c6847c
deps: bump proc-macro-warning from 0.4.1 to 0.4.2
Pull-Request: #4435.
2023-09-05 13:35:19 +00:00
dependabot[bot]
45b34bcdaa
deps: bump rust-embed from 6.8.1 to 8.0.0
Pull-Request: #4399.
2023-09-05 13:15:10 +00:00
dependabot[bot]
20ffe27a69
deps: bump actions/checkout from 3 to 4
Pull-Request: #4451.
2023-09-05 11:53:45 +00:00