libp2p / libp2p/docs

Document "Smart Dialing"

Open
#215 0 comments 0 reactions 1 assignee View on GitHub

Nobody has claimed this yet.

area:general Epic P3
Dominant language
HTML
Stars
72
Forks
97
PR merge metrics
No merged PRs in 30d

Description

libp2p implementations support a wide range of transport protocols (TPC, QUIC, WebSockets, WebTransport, WebRTC (upcoming.)) A libp2p node will have a multiaddr for each transport protocol it supports.
When a libp2p node tries to connect to a peer, it receives the peer's multiaddr list, and selects a multiaddr to dial/connect with.

Currently, this selection is not optimized.
As libp2p implementations support more transports (and as more metadata gets stuffed into multiaddrs), a node's multiaddr list will grow much larger.
Therefore, the go-libp2p implementation is planning to introduce improvements to dialing beginning end of Q4 2022.

Done Criteria

  • Documentation describing these optimizations exist (to be decided: as its own doc under a new "Advanced Concepts" section, other existing relevant docs link to it)
  • https://github.com/libp2p/docs/issues/216
  • Document QUIC Blackhole detector (issue to be created)
  • Document RTT estimation (issue to be created)

Why Important

Users should know and understand how libp2p decides to select which peer multiaddr to dial, how it picks which addr will result in the most performant & successful connection, and why this matters (conservative optimizations are used to reduce a burden on resources.)

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.