Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • G go-libp2p
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • adam.huang
  • go-libp2p
  • Issues
  • #1

Closed
Open
Created Nov 08, 2018 by adam.huang@root🚀Maintainer8 of 8 tasks completed8/8 tasks

PoC Hole Punching Implementation

Created by: cannium

related to https://github.com/ipbit/ipfsbit/issues/21 branch https://github.com/ipbit/go-libp2p/tree/punching pull request https://github.com/libp2p/go-libp2p/pull/490

  • collect observed QUIC addr
    • send it in identify
  • run go-libp2p-autonat-svc by default
  • pass IPFS DHT to libp2p properly: copied from https://github.com/ipfs/go-ipfs/pull/5785/files
  • register Connected callback like AutoNATProto do
    • sleep IdentifyDelay
    • if support "PunchingProto" && both behind NAT, send punching request, contains observed QUIC addr
  • dial back routine
  • keepalive: 30s by default in quic-go
  • prioritize QUIC connection when starting new streams

configs need change

  "Addresses": {
    "Swarm": [
      "/ip4/0.0.0.0/tcp/4001",
      "/ip6/::/tcp/4001",
      "/ip4/0.0.0.0/udp/4002/quic",
      "/ip6/::/udp/4002/quic"
    ]
  }

  "Swarm": {
    "DisableRelay": false,
    "EnableRelayHop": false,
  }

  "Experimental": {
    "QUIC": true
  }
Assignee
Assign to
Time tracking