aboutsummaryrefslogtreecommitdiffstats
path: root/core/module-store.c
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-28 16:41:15 +0100
committereunhhu <[email protected]>2026-09-28 16:41:15 +0100
commit5e4cf1629482a2b36d229ffb0005ce31046eaa6c (patch)
treefa4d26721a2331b2dfc7fb43d19b2b961419f249 /core/module-store.c
parentbde7c586a054e4bce18f70fc503ef8413711b8cd (diff)
downloadpure-5e4cf1629482a2b36d229ffb0005ce31046eaa6c.tar.gz
pure-5e4cf1629482a2b36d229ffb0005ce31046eaa6c.zip
Design the Pure transport: stored records sent straight over UDP (011)
Outside feedback 002 asks for a protocol of Pure's own that beats QUIC. Pure's delivery is already stored, numbered, applied once, and sealed per link; QUIC and TCP with TLS own the same things again (retransmission buffers, replay protection, encryption, flow control, acknowledgment). The design takes the end-to-end argument literally: the sending app's store is the retransmission buffer, one packet carries both the packet ACK and the stored-through number, a direct link is sealed once with the nodes' session keys, first contact carries records in its first packet (the receiver's key is wired in advance and applying once makes replays harmless), credits come from what the next save can take, the session is known by its key rather than its addresses, and stored bytes are the bytes on the wire. Loss detection, congestion control and cryptography stay standard (RFC 9002, NewReno then CUBIC, HPKE), plain UDP sockets rather than SOCK_RAW, HTTP stays the boundary to others. Written before any code: the decision (this transport, QUIC with Pure's format, or neither), the open questions, the smallest checks, a measurement plan against quinn, ngtcp2 and the current HTTP delivery (seven workloads, RAM and SD stores, loss and delay from unprivileged namespaces with netem, checked to work on this Pi), and stop criteria: no transport if it is under 30 % of a delivery's CPU; stop below 1.5x the best QUIC per CPU; adopt at 2x with a round trip fewer, a quarter of the memory per idle link, fair to TCP, every correctness and security check passing, and under 5,000 lines.
Diffstat (limited to 'core/module-store.c')
0 files changed, 0 insertions, 0 deletions