Files
rust-libp2p/interop-tests
Thomas Eizinger fbd471cd79 feat(websocket): remove deflate compression option
This option is the only reason we pull in a dependency on the shared `zlib` library. Unfortunately, we cannot use a pure Rust backend here because that one does not support configuring the window bits of the deflate algorithm which is used in the deflate websocket extension.

Using websockets in libp2p is already crazy inefficient because you end up with double encryption when using `/wss` (which is enforced by browsers if your website is served via https). A good encryption algorithm like noise or TLS produces an output that looks completely random. Any attempt in compressing this is pretty much wasted CPU power.

Thus, I think removing this configuration option does not really hurt and allows us to remove the dependency on the `zlib` shared library.

Pull-Request: #3949.
2023-05-16 09:40:00 +00:00
..

Interop tests implementation

This folder defines the implementation for the interop tests.

Running this test locally

You can run this test locally by having a local Redis instance and by having another peer that this test can dial or listen for. For example to test that we can dial/listen for ourselves we can do the following:

  1. Start redis (needed by the tests): docker run --rm -it -p 6379:6379 redis/redis-stack.
  2. In one terminal run the dialer: REDIS_ADDR=localhost:6379 ip="0.0.0.0" transport=quic-v1 security=quic muxer=quic is_dialer="true" cargo run --bin ping
  3. In another terminal, run the listener: REDIS_ADDR=localhost:6379 ip="0.0.0.0" transport=quic-v1 security=quic muxer=quic is_dialer="false" cargo run --bin ping

To test the interop with other versions do something similar, except replace one of these nodes with the other version's interop test.

Running all interop tests locally with Compose

To run this test against all released libp2p versions you'll need to have the (libp2p/test-plans)[https://github.com/libp2p/test-plans] checked out. Then do the following (from the root directory of this repository):

  1. Build the image: docker build -t rust-libp2p-head . -f interop-tests/Dockerfile.
  2. Build the images for all released versions in libp2p/test-plans: (cd <path to >/libp2p/test-plans/multidim-interop/ && make).
  3. Run the test:
RUST_LIBP2P="$PWD"; (cd <path to >/libp2p/test-plans/multidim-interop/ && npm run test -- --extra-version=$RUST_LIBP2P/interop-tests/ping-version.json --name-filter="rust-libp2p-head")