aboutsummaryrefslogtreecommitdiffstats
path: root/docs/design/006-native-protocol.md
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-28 16:57:14 +0100
committereunhhu <[email protected]>2026-09-28 16:57:14 +0100
commit502f70dbd66debcf1cb0328427831ec14926504b (patch)
tree87c96959c47fe4093e100cadeec992a6954e4604 /docs/design/006-native-protocol.md
parent5e4cf1629482a2b36d229ffb0005ce31046eaa6c (diff)
downloadpure-502f70dbd66debcf1cb0328427831ec14926504b.tar.gz
pure-502f70dbd66debcf1cb0328427831ec14926504b.zip
Redesign 011: no connections, the transport's state as the app's data
The first draft replaced a few of QUIC's layers with what Pure already has, every technique known and the gains constant factors, and it kept the connection. This one removes it. Nodes have keys, links are the app's wiring, paths are a cache of where the last authenticated packet came from, and a link's transport state (key epoch, stored-through number, heard numbers, packet-number reservation) is a row committed atomically with the app's state; memory holds only active links and per-path congestion state. So a restart of either node is invisible to the other (no handshake, nothing lost or doubled), an idle link costs a row on disk rather than process memory, and moving the store moves its links. Forward secrecy comes from key epochs rather than per-connection handshakes; replay protection survives restarts because heard numbers are stored with the events they applied (OSCORE, the closest prior art, needs an Echo round trip there). Hypotheses H1-H4 and a measurement plan against quinn and ngtcp2: memory per idle link at 10k to 1M links, kill -9 under load with 10k active links, moving the store, first contact, and CPU, loss and fairness as guardrails; stop if an idle link is not at least a hundred times cheaper than a QUIC connection, if restarts need handshakes, or if anything is lost or doubled. Beyond it: speculative execution of verified, deterministic modules, for interactions that do not wait.
Diffstat (limited to 'docs/design/006-native-protocol.md')
-rw-r--r--docs/design/006-native-protocol.md5
1 files changed, 3 insertions, 2 deletions
diff --git a/docs/design/006-native-protocol.md b/docs/design/006-native-protocol.md
index c4dfd3b..09c4075 100644
--- a/docs/design/006-native-protocol.md
+++ b/docs/design/006-native-protocol.md
@@ -8,8 +8,9 @@ TLS 1.3/TCP 위에 실은 피어 호스트를 검증했다. [026 — scalar 피�
[030 — 문서 피어·출력 소비 선택](../research/030-authenticated-document-peer.md)을 본다.
이 설계의 일반 RPC·QUIC·새 전송 후보가 구현된 것은 아니다.
-2026-09-28: 노드 사이 전달의 새 UDP 전송 후보(Pure 전송)는 설계와 quinn·ngtcp2 대비 측정 계획을
-[011](011-pure-transport.md)에 적었다. 아래 "새 UDP 전송은 … 별도 연구 후보로 연다"는 조건은 그 0단계(비용 분해)가 판정한다.
+2026-09-28: 노드 사이 전달의 새 UDP 전송 후보는 [011 — 연결 없는 전송](011-pure-transport.md)이다. 링크의 전송
+상태를 앱 상태와 한 커밋에 두어 연결 개념을 없앤다. 아래 "새 UDP 전송은 … 별도 연구 후보로 연다"는 조건은 그 가설과
+중단 기준이 판정한다.
## 결정