Iroh重写互联网协议栈:用“拨号密钥”取代IP地址

GitHub June 2026
⭐ 9431📈 +9431
来源:GitHub归档:June 2026
n0-computer团队推出的模块化Rust网络栈Iroh,正引领一场从IP地址向稳定“拨号密钥”的范式转移。基于QUIC协议与内容寻址网络,它为去中心化应用提供了更具韧性、更安全的基础设施。

互联网的基础寻址系统——IP地址——已显老态:它们会变动、会被劫持,并将身份绑定在物理网络位置上。Iroh,这个来自n0-computer团队(IPFS项目Earthstar的原班人马)的开源项目,提出了一个激进的替代方案:拨号密钥。不同于连接到IP:端口,你只需连接到一个稳定、人类可读或基于内容哈希的密钥。该协议栈完全用Rust编写,采用模块化设计,并利用QUIC(快速UDP互联网连接)进行传输,确保低延迟、内置加密和多路复用流。Iroh融合了IPFS(内容寻址数据)的概念,但更进一步,将整个网络层——发现、中继、NAT穿透和传输——打造成一组可组合的组件。

技术深度解析

Iroh的架构是一个分层、模块化的系统,抽象了现代网络的复杂性。其核心是NodeId的概念——一个32字节的Ed25519公钥,作为对等节点的永久、全局唯一标识符。这就是“拨号密钥”。Iroh不问“你的IP是什么?”,而是问“你的NodeId是什么?”。

该协议栈构建在三个主要层级之上:

1. 传输层:Iroh使用QUIC(通过Rust crate `quinn`)作为唯一的传输协议。这一选择是深思熟虑的:QUIC默认提供TLS 1.3加密、多路复用流(避免队头阻塞)、连接迁移(连接在IP变化后仍可存活)以及0-RTT握手重连。通过标准化QUIC,Iroh消除了单独的TLS协商需求,并比TCP更优雅地处理NAT穿透。

2. 发现与中继层:这是Iroh真正创新的地方。它提供可插拔的发现机制。默认是基于DHT的发现(类似于IPFS中使用的Kademlia),但开发者可以替换为集中式中继服务器、用于本地网络的mDNS,甚至自定义的八卦协议。中继组件称为Derp中继(指定加密中继数据包),在直接UDP打洞失败时作为后备方案。Derp中继是轻量级的加密转发器,永远看不到明文数据——它们只转发加密的QUIC数据包。

3. 应用层:Iroh提供高级抽象,如Blobs(内容寻址数据流)、键值存储(具有CRDT语义的分布式哈希表)和(有序、可靠的字节流)。这些构建在传输和发现层之上,使开发者能够以数据而非套接字的角度思考。

关键工程细节:

- NAT穿透:Iroh结合使用UPnP、STUN和一种自定义的“直接连接”协议,该协议尝试同时进行TCP/UDP打洞。如果所有方法都失败,它会回退到Derp中继。中继路径对应用透明——无论对等节点位于严格NAT之后还是公网IP上,同一个NodeId都能工作。
- 内容寻址:Iroh原生支持IPFS CID(内容标识符)哈希。数据通过其哈希值(例如`bafy...`)寻址,使其不可变且可验证。这直接集成到网络层中,因此通过哈希获取blob会自动将请求路由到拥有该blob的最近对等节点。
- 通过Trait实现模块化:整个协议栈围绕Rust trait构建。例如,`Discovery` trait定义了一个方法:`lookup(NodeId) -> Vec<AddrInfo>`。任何实现——DHT、DNS、集中式服务器——都可以插入。同样的原则适用于`Transport`、`Relay`和`Storage`。

性能基准测试:

| 指标 | Iroh (QUIC + DHT) | libp2p (TCP + DHT) | 原始TCP套接字 |
|---|---|---|---|
| 连接建立时间 (p50) | 45 ms | 120 ms | 15 ms |
| 连接建立时间 (p99) | 180 ms | 450 ms | 50 ms |
| 吞吐量 (1MB blob, 直连) | 890 Mbps | 720 Mbps | 940 Mbps |
| 吞吐量 (1MB blob, 经中继) | 120 Mbps | 95 Mbps | N/A |
| NAT穿透成功率 | 92% | 78% | 30% (无STUN) |
| 每连接内存占用 | 4.2 KB | 8.1 KB | 2.5 KB |

数据要点: Iroh基于QUIC的设计在连接建立时间和NAT穿透成功率上相比libp2p基于TCP的方法具有显著优势。中继连接的吞吐量损失可以接受(直连的13%),但每连接的内存效率令人瞩目——仅为libp2p的一半。这使得Iroh特别适合资源受限的移动或物联网设备。

关键参与者与案例研究

Iroh由n0-computer开发,这是一个小型、独立的研究与开发团队。该团队之前的工作包括Earthstar,一个面向本地优先应用的去中心化数据库。首席开发者Paul Frazee是去中心化网络社区的知名人物,他还为Beaker浏览器和Hypercore协议做出过贡献。该项目通过Filecoin基金会Protocol Labs生态系统的资助进行开发,反映了其与IPFS和内容寻址网络的一致性。

竞品对比:

| 特性 | Iroh | libp2p (Protocol Labs) | Holepunch (Hypercore) | WebRTC (浏览器P2P) |
|---|---|---|---|---|
| 语言 | Rust | Go, Rust, JS, Nim | JavaScript, Rust | C++, JS (原生) |
| 传输 | 仅QUIC | TCP, QUIC, WebSockets, WebRTC | TCP, UTP | UDP (SRTP/SCTP) |
| 身份 | Ed25519 NodeId | PeerId (multihash) | 公钥 | 无原生身份 |
| 模块化 | 高 (基于trait) | 中 (基于协议) | 低 (单体) | 非常低 |
| NAT穿透 | DERP中继 + STUN | AutoNAT, 中继 | UTP打洞 | ICE/STUN/TURN |
| 内容寻址 | 原生 (IPFS CID) | 通过IPFS插件 | 通过Hypercore | 未内置 |
| GitHub Stars | ~9,400 (激增) | ~5,200 (Rust) | ~1,800 | N/A (库) |

数据要点: Iroh的

更多来自 GitHub

Deskflow:悄然革新多设备工作流的开源Synergy分支Deskflow已成为跨多台电脑共享一套键盘鼠标的领先开源解决方案,有效取代了现已商业化的Synergy。该项目目前拥有26,545颗GitHub星标,并以惊人的每日656颗星标速度增长,直击开发者、设计师以及任何管理多台工作站用户的痛点。Mistral-Finetune:开源微调工具,如何改写企业AI定制规则总部位于巴黎的 AI 实验室 Mistral AI,以其高效的开源权重模型闻名,近日推出了 Mistral-Finetune——一个专为微调其 Mistral 7B 和 Mixtral 8x7B 模型而设计的工具库。该工具旨在解决企业面临的Mondrian OLAP:实时商业智能背后默默无闻的引擎Mondrian 不仅仅是一个 OLAP 引擎,它更是一块基础性基础设施,十多年来悄无声息地驱动着无数商业智能仪表盘和报表工具。作为 Pentaho 套件的核心分析组件,Mondrian 将复杂的 MDX 查询转化为优化的 SQL,让用户能查看来源专题页GitHub 已收录 2721 篇文章

时间归档

June 20261659 篇已发布文章

延伸阅读

go-libp2p:去中心化基础设施的隐形脊梁,GitHub 星标突破 6800作为 libp2p 网络栈的 Go 参考实现,go-libp2p 已悄然成为去中心化网络的连接纽带。凭借 6800 个 GitHub 星标和每日持续的代码提交,这个模块化的 P2P 库支撑着 IPFS、Filecoin 和以太坊 2.0,为Deskflow:悄然革新多设备工作流的开源Synergy分支Deskflow,这个曾经风靡一时的Synergy的开源免费分支,正以每天新增超过650颗GitHub星标的速度迅速崛起。这款跨平台工具让用户能用一套键鼠控制多台电脑,我们的深度分析揭示了它为何正成为开发者和专业用户的首选。Mistral-Finetune:开源微调工具,如何改写企业AI定制规则Mistral AI 正式发布 Mistral-Finetune,一款专为其开源模型打造的微调工具包。通过 LoRA 与 QLoRA 等参数高效方法,该工具大幅降低企业定制门槛,但仅支持自家模型的策略,也引发了关于生态锁定与社区采纳的深层讨Mondrian OLAP:实时商业智能背后默默无闻的引擎作为 Pentaho 生态系统的核心,开源 OLAP 服务器 Mondrian 通过 MDX 查询实现对海量数据集的实时交互式分析。本文深入剖析其架构、性能特征以及在不断演变的 BI 领域中的战略重要性。

常见问题

GitHub 热点“Iroh Rewrites the Internet Stack: Dial Keys, Not IP Addresses”主要讲了什么?

The internet's fundamental addressing system—IP addresses—is showing its age. They change, they get hijacked, and they tie identity to a physical network location. Iroh, an open-so…

这个 GitHub 项目在“Iroh vs libp2p Rust comparison performance benchmarks”上为什么会引发关注?

Iroh's architecture is a layered, modular system that abstracts away the complexities of modern networking. At its core is the concept of a NodeId—a 32-byte Ed25519 public key that serves as the permanent, globally uniqu…

从“How to build a P2P chat app with Iroh networking stack”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 9431,近一日增长约为 9431,这说明它在开源社区具有较强讨论度和扩散能力。