feat(native): add JD read-only anchor HTTP service

This commit is contained in:
冰朔 2026-08-07 01:09:50 +08:00
commit f31c33e77a
7 changed files with 476 additions and 4 deletions

View file

@ -0,0 +1,59 @@
# ADR-0171 · 京东原生服务等价分阶段门禁
## 状态
Accepted for staged verification. Production native cutover remains `0`.
## 为什么不能把“原生内核已常驻”当成“服务器部署完成”
JD-FD-PRIMARY 在原生光湖 OS 常驻时已经证明:
- GOSK/GHAL 在物理机启动;
- Linux 内核与 Linux 用户态不在场;
- 五域、代码对象、分支回执和人格索引可从原生盘面读写;
- 受保护的人类授权恢复能力有效。
但现有公共代码频道和导航服务由 Linux 上的 Forgejo、Node 服务及反向 SSH 前门共同提供。
原生常驻时这条 Linux 数据面消失,`/code/` 与公共导航锚点都返回 `502`。因此内核常驻和
生产服务等价是两个独立的二值门。
## 分阶段目标
1. `NATIVE_ANCHOR_HTTP_QEMU`
- GHAL 直接处理 TCP/IPv4
- 原生端口 `3922` 回应 `GET /v1/anchor`
- 返回唯一锚点 `GLW-PUBLIC-NAV-ANCHOR-001`
- 不引入 Linux 用户态或通用套接字库。
2. `NATIVE_ANCHOR_HTTP_PHYSICAL`
- 京东物理机原生启动;
- 由服务器外部节点完成 TCP、校验和与正文回读
- 同一窗口验证受保护恢复。
3. `PUBLIC_FRONT_DOOR_NATIVE_ANCHOR`
- `https://guanghulab.com/api/ai/v1/anchor` 在京东原生常驻时仍返回 `200`
- 返回值必须与唯一公共锚点一致;
- 不允许把用户的个人腾讯云服务器静默改成生产承载节点。
4. `NATIVE_CODE_CHANNEL_READ_ONLY`
- 原生数据面可读取仓库对象、引用和提交;
- 先提供只读发现能力,再设计带授权的写入。
5. `NATIVE_CODE_CHANNEL_MUTATION`
- HLDP 意图、授权、对象写入、分支移动和回执形成闭环。
6. `PRODUCTION_NATIVE_CUTOVER`
- 公共导航与代码频道全部通过物理公网门禁;
- 回滚路径与服务器自有回执可读;
- 才允许恢复原生默认启动。
## 当前实现边界
本阶段实现的是一个有界的只读 TCP 投影,不是通用 TCP/IP 栈,也不是 Forgejo 替代品。
它从收到的帧派生对端 MAC、IP、端口和确认号直接构造 SYN-ACK 与带 FIN 的 HTTP 200
响应。它与现有 ICMP 控制/恢复通道并存。
当前正文包含稳定的唯一入口映射。它尚未在原生常驻期间自动拉取 REPO-012 的新版本,
因此“公共导航自动更新”仍需后续的原生锚点快照同步或带认证的增量更新协议。
## 安全决定
- 京东的无人值守默认启动继续保持 Linux 维护位;
- 原生候选保留为非默认的一次性门禁入口;
- 物理原生门禁失败时立即走已经证明的受保护恢复路径;
- 不用协议文件、QEMU 结果或端口发包冒充公网服务等价。