Iroh 终于 1.0 了,今天在 Hacker News 上接近 1000 points,他们已经 open build 四年多了
P2P 连接一直不好做。比如你写了个本地优先 app,想让手机、电脑、家里 NAS、朋友的机器互相连上。真要自己处理 IP 变化、NAT、端口转发、relay、加密、本地发现,工作量很大,而且要稳定更难。
Iroh 的思路是:不直接 dial IP,改成 dial 一个稳定的 key。这个 key 一方是地址,另一方面也是加密消息用的公钥。Iroh 帮你处理发现、NAT traversal、QUIC 连接和 relay fallback。能直连就直连;直连不了就走 relay,但数据仍然是端到端加密的。默认可以用他们的 public relays,也可以自己跑 relay。
之前和 Iroh 团队的人做过一些 Iroh + CRDTs 的 demo。这个思路下 API 确实很舒服:两个设备只要先知道彼此的 key,就可以开始建立连接和交换数据。
如果 P2P 连接这层变可靠,就会多出一批以前很难做好的应用。尤其适合 Personal Software:
- 核心数据和连接不必绑定到某个中心业务服务器
- 数据更容易留在用户自己的设备上
- 小团队/个人更容易承担成本,因为很多传输不必都经过自己的服务器
- 连接层默认加密,也能少暴露一些公网服务,安全性更好
又有新东西可以做了,很兴奋!