libp2p / libp2p/go-libp2p

quic: rethink connected / disconnected

Open
#2,255 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

P3
Dominant language
Go
Stars
6.9k
Forks
1.3k
Avg merge
13d 21h
Merged PRs (30d)
1

Description

We should rethink how we treat QUIC connections. Our current connection model assumes a clear separation between the two states "Connected" and "Disconnected".

QUIC has two interesting properties that dilute this distinction:
1. It's really cheap to keep a QUIC connection alive. The memory overhead is quite small (and has gotten even smaller with recent quic-go releases). We can also reduce the keep-alive frequency to further bring down the computational cost of a QUIC connection.
2. QUIC allows 0-RTT. For the application it doesn't matter that much if we still have a live QUIC connection or if we can just 0-RTT a new connection (at least for replay-safe requests).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by tracing the existing Connected and Disconnected state model and its QUIC connection lifecycle, then review how live connections, keep-alives, and 0-RTT are handled. The issue needs a decided replacement model and acceptance criteria before completion can be determined.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.