libp2p / libp2p/test-plans

add a test plan that measures the RTT of libp2p handshakes

Open
#52 3 comments 0 reactions 1 assignee View on GitHub

@MarcoPolo is already working on this.

Since Feb 15, 2023.

effort/days kind/enhancement P0
Dominant language
Python
Stars
65
Forks
82
PR merge metrics
No merged PRs in 30d

Description

The test plan will test that the libp2p handshake completes in the expected number of roundtrips. For example:
* the QUIC handshake should take 1 RTT
* the TCP handshake should take 4 RTTs (1. 3-way TCP handshake, 2. multistream negotiation of security protocol, 3. security handshake, 4. muxer negotiation)
* when using early muxer negotiation (https://github.com/libp2p/go-libp2p/issues/1789), the TCP handshake only takes 3 RTTs

This can easily extended to test that moving the security protocol into the multiaddr (https://github.com/libp2p/specs/pull/353) saves another RTT.

The test plan will need to build on the cross-version test (or maybe the cross-implementation test). This will allow us to assert that while new go-libp2p versions make use of all the performance improvements and handshaking takes fewer RTTs, we're still remain backwards-compatible.

In the long term, this test will probably replace the ping test plan, as it tests strictly more than the ping test.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.