diff --git a/content/blog/01-why-now.mdx b/content/blog/01-why-now.mdx index 48ef623..22bc503 100644 --- a/content/blog/01-why-now.mdx +++ b/content/blog/01-why-now.mdx @@ -15,7 +15,7 @@ Decentralized CDNs have been attempted for a decade. Most got stuck before they QUIC was an IETF draft until 2021. By 2024 it carried roughly a third of public web traffic and shipped natively in every major OS. The properties that matter for a delivery network are now load-bearing parts of the public internet, not a thing we have to build. -- **0-RTT connection establishment.** A repeat connection sends application data in the first packet, no handshake round-trip. For a CDN where probe fan-out is the critical-path latency — a cache-miss probes ~30 peers in parallel — this collapses inter-continental discovery from ~250–500ms down to one-way RTT. We use 0-RTT on `cdn/probe/v1` and `cdn/dht/v1`. Five years ago we'd have had to build it on top of TCP+TLS ourselves and accept 2× the discovery latency. +- **Concurrent probing, then connection reuse.** For a CDN, the critical-path latency is probe fan-out, not the handshake: a cache-miss probes ~30 peers in parallel over `cdn/probe/v1` and `cdn/dht/v1`, taking the fastest good answers within a bounded ~500ms collection window and exiting early once enough replies arrive. Every connection still completes a full TLS 1.3 handshake — decdn does not use 0-RTT — but connection reuse and QUIC stream multiplexing carry repeat requests over an already-open connection instead of paying a fresh handshake each time. Five years ago we'd have had to build all of this on TCP+TLS ourselves. - **NAT traversal as a library function.** iroh ships hole-punching, relay fallback, and direct-path upgrade as a single `Endpoint` API. The fraction of node operators behind residential NAT we can usefully include just went from ~10% to ~95% without us writing networking code. - **Connection migration.** A node operator's IP changing mid-stream — laptop sleep, mobile handoff, ISP renegotiation — doesn't kill the delivery session. This is the difference between "you need a static IP and a real datacenter" and "your spare 1U at home counts."