Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ROADMAP.md: Mark hole punching on TCP and QUIC as done #415

Merged
merged 2 commits into from
May 24, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 31 additions & 32 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ third-party ownership of data.
- [📮 Offline message queue / postbox](#📮-offline-message-queue--postbox)
- [🤖 libp2p as a WASM library](#🤖-libp2p-as-a-wasm-library)
- [Evolve](#evolve)
- [🕸 Unprecedented global connectivity](#🕸-unprecedented-global-connectivity)
- [⏱ Full Observability](#⏱-full-observability)
- [⏱ Full Observability](#-full-observability)
- [🧪 Automated compatibility testing](#🧪-automated-compatibility-testing)
- [🤝 Low latency, efficient connection handshake](#🤝-low-latency-efficient-connection-handshake)
- [🛣️ Peer Routing Records](#🛣️-peer-routing-records)
Expand All @@ -35,6 +34,8 @@ third-party ownership of data.
- [☎️ Reducing the dial fail rate](#️-reducing-the-dial-fail-rate)
- [🔀 Peer exchange protocol](#🔀-peer-exchange-protocol)
- [🏹 RPC and other common node communication patterns](#🏹-rpc-and-other-common-node-communication-patterns)
- [Done](#done)
- [🕸 Hole punching on TCP and QUIC](#🕸-hole-punching-on-tcp-and-quic)

## Visionary

Expand Down Expand Up @@ -223,36 +224,6 @@ model.

This is the stuff pushing the existing libp2p stack forward.

### 🕸 Unprecedented global connectivity

**Status**: In progress

**What?** A DHT crawl measurements (Nov 22nd 2019) showed that out
of 4344 peers, 2754 were undialable (\~63%). This evidence correlates
with feedback from the IPFS and Filecoin teams.

We need to implement additional mechanisms for Firewall and NAT traversal to
have the highest probability of being able to establish a direct connection.
Mechanisms we wish to add include:

- Project Flare stack (via *Circuit Relay v2*, *Direct Connection Upgrade
through Relay*, *AutoNAT*, *Stream Migration*, ...)

- WebRTC

**Why?** Good connectivity is the bread-and-butter of libp2p. Focusing
on solving these issues will bring more stability and robustness to the
rest of the system.

**Links:**

- [Hole punching long-term
vision](https://github.com/mxinden/specs/blob/hole-punching/connections/hole-punching.md).

- [NAT traversal tracking issue](https://github.com/libp2p/specs/issues/312).

- [WebRTC tracking issue](https://github.com/libp2p/specs/issues/220)

### ⏱ Full Observability

**What?** libp2p should expose a wide set of metrics, making it easy to
Expand Down Expand Up @@ -618,3 +589,31 @@ networking to get started with libp2p.
[libp2p specification]: https://github.com/libp2p/specs/
[testground project]: https://github.com/testground/testground
[libp2p test-plans repository]: https://github.com/libp2p/test-plans

## Done

### 🕸 Hole punching on TCP and QUIC

**Status**: Done

**What?** A DHT crawl measurements (Nov 22nd 2019) showed that out
of 4344 peers, 2754 were undialable (\~63%). This evidence correlates
with feedback from the IPFS and Filecoin teams.

We need to implement additional mechanisms for Firewall and NAT traversal to
have the highest probability of being able to establish a direct connection.
Mechanisms we wish to add include:

- Project Flare stack (via *Circuit Relay v2*, *Direct Connection Upgrade
through Relay*, *AutoNAT*, *Stream Migration*, ...)

**Why?** Good connectivity is the bread-and-butter of libp2p. Focusing on
solving these issues for TCP and QUIC will bring more stability and robustness
to the rest of the system.

**Links:**

- [Hole punching long-term
vision](https://github.com/mxinden/specs/blob/hole-punching/connections/hole-punching.md).

- [NAT traversal tracking issue](https://github.com/libp2p/specs/issues/312).