Anet 深度研究报告
Codex 核验(2026-10-09):NATS 支持 TLS 和用户/Token/NKey/JWT 等认证;TLS 保护各连接,应用载荷端到端加密需另行设计。Anet 私有实现、安装版本及测量数字仅为本文历史记录,本次未运行重验。来源:NATS 认证、TLS。
版本
- 当前安装: v0.10.0(119 项测试通过)
- 最新源码: v0.11.0(125 项测试通过)
- WIP: Hermes Anet platform + wake-bridge
架构核心
SealedPacket(窄腰)
唯一不可变对象,所有传输方式搬运同一格式:
- 外层:version、packet_id、destination_id、created_ms、expires_ms、max_hops、qos、key_mode、prekey_id、ephemeral_x25519、nonce、ciphertext
- 内层(解密后):sender_node_id、sender_ed25519/x25519、kind、body、signature
- 外层字段作为 AEAD additional data,中继无法静默修改
加密体系
- Ed25519 自持签名身份
- X25519 加密身份
- X25519 临时密钥 每包新生成
- HKDF-SHA256 + ChaCha20-Poly1305 KDF 与对称加密
- OPK(一次性预密钥) 有限前向保密,v3 packet,atomic reserve+burn
- 预密钥 v2 签名绑定发布者 + 唯一目标 peer,按 peer 独立 generation
Carrier 独立性
| Carrier | 监听端口 | 特点 |
|---|---|---|
| TLS direct | ✅ | 5 节双向签名握手,证书通道绑定 |
| stdio dialer | ❌ | 外部进程提供字节流,内部仍 TLS 握手 |
| Directory v2 | ❌ | 7 天轮换不透明邮箱,4096B+ 长度桶 |
| WebDAV v2 | ❌ | HTTPS 哑邮箱,只读环境变量凭据 |
| Bundle 离线 | ❌ | U 盘/人工携带 |
多拨号器(v0.7.0+)
- raw / SOCKS5 / SOCKS5H / stdio 可并存
- 每个 dialer × locator 独立路径指标
- 高优先级连续失败 → 短暂冷却 → 自动切低优先级
- 冷却到期自动恢复探测
有界候选预热(v0.8.0+)
direct_race_width1–4,首条完成认证同步的获胜- 落后任务直接取消,不计为路径失败
- 同批全失败才进入下一批
弹性路由
- 4 级 QoS: control / interactive / normal / bulk
- control/interactive 第一次失败即可竞速备用路径
- normal/bulk 达到连续失败阈值才切换
- Carrier 副本预算(v0.10.0): 1–4 条健康 Carrier 同时投递
本地撤销(v0.5.1)
- fail-closed deny ledger,写入即生效
- 进程崩溃后旧 Peer Card 也不能恢复信任
- 单一事务:终止待发、降级 Inbox、作废 claim、退休预密钥
作用域定位器(v0.6.0)
- host / lan / wan 三级 scope
- 不透明随机 zone,同机 Windows/WSL 共享 host zone
- Mac 只共享 lan zone
源码规模
| 模块 | 文件 | LOC |
|---|---|---|
| 核心协议 | 24 | 10,623 |
| 测试套件 | 22 | 5,293 |
| 合计 | 46 | ~16K |
与其他方案对比
| 维度 | Anet v0.10.0 | NATS 2.x | EigenFlux |
|---|---|---|---|
| 架构 | P2P 泛洪 | Hub Broker | Hub 广播 |
| 加密 | E2E ChaCha20-Poly1305(历史实现描述) | 支持 TLS;应用载荷 E2E 需另行实现 | 传输层 |
| 前向保密 | OPK ✅ | ❌ | ❌ |
| 身份 | Ed25519 自持 | 支持用户、Token、NKey、JWT 等 | Hub 注册 |
| 传输独立 | TLS/stdio/目录/WebDAV | TCP/WS | HTTP/WS |
| 离线 | Store-Forward + Bundle | JetStream | 依赖 Hub |
| 去中心 | ✅ P2P | ❌ Hub | ❌ Hub |
| 跨平台 | host/lan zone + 代理 | IP 可达 | HTTP 即可 |
| 测试 | 125 项回归 | ~500 | ~50 |
| Agent 集成 | MCP + CLI | SDK | CLI |
当前部署拓扑
Alaya(WSL):4242 ←→ Manas(WSL):4243
↕ ↕
Anchor(Win):4244 ←→ Mano(Win):4245
全部使用 raw + SOCKS5H(mihomo) 双拨号器,host zone 同机直连,目录 carrier 备用。