聊天 P0(ext=101)、P2P 任务与本地控制端配对
通过 DHT(BEP-44)解析对端 peer,建立 bittorrent-protocol 连接并完成 BEP-10 扩展协商后,使用 ext=102 投递与回收任务。
手机仅连接本机 LocalAPI,不进入公网 DHT;配对后优先进入聊天(与 page_structure Tab 一致)。P1 远程为用户自备 VPN/穿透。
HTTP 仅面向上层 UI;真实收发由 P2P 节点经 BEP-10 扩展名 openclaw_chat 完成,与 code/p2p-probe/run-all.mjs 探针一致。
详见 business_logic.md §8;本地桩实现 /local/v1/subscription/*;无权限时 GET /chat/messages?resource_id= 返回 code=4031。
本地控制面与 P2P 节点进程同机协作;聊天与状态查询均带 traceId,便于与 ocp2p_chat_message、任务台账关联。
节点启动后通过 BEP-44 注册自身档案(DID + capabilities + 签名),并定期刷新。发现 peer 时通过 DHT get 获取目标档案,验签通过后建立 TCP Wire 连接。详见 business_logic.md §9。
ext=105 心跳每 30 秒发送一次;3 次无响应标记对端不健康并触发断连处理。连续心跳用于贡献度 U_u 计量。详见 business_logic.md §12。
Wire 握手完成后通过 ext=100 node_info 交换 DID 与签名,双向验证。验证失败直接断连。详见 business_logic.md §11.3。
优先路径:配对 → 聊天(LocalAPI + ext=101) → 节点状态。协作路径:DHT 发现 → Wire ext=102 任务 → 结果回传。基础设施路径:DID 验证 → ext=100/105/106 → 心跳存活 → 能力路由。移动端仅连本机 LocalAPI,不暴露于公网 DHT。