Support QUIC in private networks
- 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
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