ipfs / ipfs/kubo

Support QUIC in private networks

Open
#8,006 5 comments 1 reaction 0 assignees View on GitHub
effort/days exp/wizard kind/bug kind/enhancement P3 topic/libp2p
Dominant language
Go
Stars
17.1k
Forks
3.2k
Avg merge
3d 18h
Merged PRs (30d)
11

Description

#### Version information:
go-ipfs version: 0.8.0-ce693d7e8
Repo version: 11
System version: amd64/linux
Golang version: go1.14.15

#### Description:
When using a private swarm (by placing a properly formatted swarm.key file in the repo), the daemon won't listen for the QUIC protocol even when configured in Addresses. If you increase the logging level, the relevant message that appears is:

WARN swarm2 listen on /ip4/0.0.0.0/udp/4001/quic failed: no transport for protocol
WARN swarm2 listen on /ip6/::/udp/4001/quic failed: no transport for protocol

I found some reference to this being a problem in earlier releases (pre-0.6 when QUIC was redone) [here](https://github.com/ipfs/go-ipfs/issues/7067#issuecomment-673184805). The release notes imply that QUIC is GA now and should be preferred for all connections.

**Steps to replicate:**
1. Create a new repo with ipfs init
2. Start the daemon
The output will include "Swarm listening on /ip4/127.0.0.1/udp/4001/quic"
3. Add a properly formatted swarm.key file to the repo.
4. Start the daemon
The output will **not** include "Swarm listening on /ip4/127.0.0.1/udp/4001/quic"

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue with go-ipfs 0.8.0 on amd64/linux by comparing daemon startup with and without a properly formatted swarm.key, and inspect the logged swarm2 QUIC listener failures. Done means a private swarm still reports QUIC listeners for the configured IPv4 and IPv6 UDP addresses.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.