Dev log 25:加固 Rust 的 p2p 网络,给 Trak 加上交互模式
来源:dev.to — 2026-10-20
📋 概述
本周合并 5 个 PR、共 2,203 行新增,精力分给 minip2p 与 Trak 两个 Rust 项目。在网络侧,他不再相信中继服务器报的映射到期时间,改为按生命周期的半程就续约,给自己留安全余量;relay-server 把已完成的 HOP worker 计入连接上限,避免「幽灵连接」吃满容量;swarm 里修掉了一个不崩溃但会慢慢让状态错位的隐性问题。在工具侧,Trak 支持无参数运行时进入交互会话,并把 callers 的 --tree 搬到了 calls。
🔑 核心要点
- NAT 续约提前到半程触发,而不是信任外部服务器给的到期时间。
- 不精确追踪资源使用,p2p 节点就会被幽灵连接拖到爬不动。
- 放弃对端已关闭的流时没有确认丢弃数据,这类 bug 不崩不报,只让状态慢慢错位。
- Trak 加交互模式与调用树,让探索陌生代码库不再需要预先知道子命令。
💡 金句
“If you trust an external server to tell you exactly when your mapping expires, you're asking for a dropped connection.”
译:如果你相信外部服务器能准确告诉你映射何时过期,那就是在自找断连。
← 返回 dev.to 首页