Skip to content

Project Flare(decentralised Hole Punching) Phase1 Meta Issue #1039

@aarshkshah1992

Description

@aarshkshah1992

This issue is to aggregate all the work and PRs we have open for taking Hole Punching to completion.

Done criteria: we recommend key consumers like go-ipfs and lotus enable it by default because the functionality works, is well tested, and has quality assertions in place to prevent regressions.


Solve Simultaneous connect in multi-stream for TCP hole Punching (Ready for Review)

go-multistream suffers from the simultaneous connect problem wherein it fails when two peers try to connect each other at the same time. This blocks hole punching. This is ONLY a problem for TCP and NOT for QUIC because QUIC does NOT use the multistream protocol for negotiating the security and stream negotiation protocols. The PRs below solve this problem using the method specd out in libp2p/specs#196.


Swarm & Transport changes for Hole-Punching


Emit event for NAT device type


Limited Relay Protocol


Hole-Punching Co-ordination via Relay Server


Integrate Limited Relays


QUIC Changes


AutoRelay


Documentation


Automated testing to prevent regressions

  • Basic project flare (hole punching) test  test-plans#21
    • 2022-11-07 note: this item is deemed out of scope since it's, unfortunately a casualty of a time when functionality released without ensuring we have accompanying end-to-end test coverage. Backfiling test coverage for important functionality (including hole punching) is on the libp2p/test-plans roadmap and also dependent on some work in Testground itself. The issue above will get tackled above as part of those efforts.

Other

The below is a documentation issue that we will do as a best effort.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions