3.4 KiB
HoloLake 节点登记与验证来源契约 · 2026-08-10
阶段:
DEV-20260809-007 / NODE-REGISTRATION-CONTRACT-001上游:
HLP-CURRENT-ARCH-001第 5 节“节点与登录协议”状态:
IMPLEMENTATION_STAGE_ACCEPTANCE_BASELINE
验收标准
- 账号验证源只能返回账号身份与用户选择的节点编号,不能直接声明节点已经登记。
- HoloLake 只读取 REPO-012 当前公共锚点同一提交声明的
GH-AIOS-NODE-REGISTRATION-ENDPOINTS-001;任意本地配置、账号响应或未登记 URL 都不能成为 节点登记权威。 - 节点登记声明使用 Ed25519 签名,并精确绑定账号、域、节点编号、节点类型、节点公钥 SHA-256 指纹、登记端点、签发者、签发时间与过期时间。
- 注册表缺失、来源降级、端点撤销、端点范围不匹配、声明过期、未知字段、签名错误或任一
绑定字段不匹配时,
nodeRegistrationVerified必须保持false,且不得请求域运行体交接。 - 当前 REPO-012 锚点尚未登记此端点注册表,因此当前生产判断必须是
NODE_REGISTRATION_NOT_EXISTS_0;本阶段代码完成不得冒充生产登记服务、节点密钥证明、 域会话或在线运行已经存在。
注册表契约
注册表固定路径为 routing/node-registration-endpoints.json,由公共锚点的
maps.node_registration_endpoints 指向。每个端点声明:
endpointId、signerId、Ed25519 publicKeyPem;- HTTPS
guanghulab.com/api/ai/v1/...端点; - 允许的
domainIds与local-terminal / cloud-resident节点类型; ACTIVE / REVOKED状态。
同一域与节点类型不得存在两个活跃端点,避免客户端自行猜测权威。
登记声明契约
gh-aios.node-registration-claim/v1 只表达灯塔登记服务已经验证的账号—节点—公钥绑定。
声明最长有效 24 小时,必须周期刷新。它不代替后续登录挑战中的实时节点私钥持有证明,也不
代替域成员权限、短期会话能力、签名域清单和在线连接回执。
当前现实边界
- 当前公共锚点没有
maps.node_registration_endpoints; - 当前桌面没有可调用的登记声明端点;
- 当前没有生产节点登记签发公钥、登记声明或节点密钥挑战回执;
- 因而 Forgejo 账号验证以后仍停留在“需要节点登记”,这是正确的失败关闭结果。
登记声明读取传输 · 阶段 002
登记声明读取不是“创建节点登记”,也不携带账号密码、访问令牌、验证码或节点私钥。客户端
只在当前锚点注册表为 CURRENT 且解析出唯一活跃端点后,向该端点发送固定结构的无凭据
POST:账号标识、域、节点编号、节点类型、端点编号、一次性请求编号与签发时间。
传输必须同时满足:禁止重定向、5 秒超时、application/json、响应不超过 64 KiB、响应
请求编号与原请求一致。响应只允许 ISSUED + claim 或 NOT_FOUND + null;前者仍必须经过
阶段 001 的 Ed25519 声明验证,后者不能升级任何权限。HTTP 错误、未知字段、超限、绑定不
一致及解析失败全部关闭为“未验证节点登记”,并且不触发运行体交接。
当前公共锚点仍未登记端点,所以该传输在生产运行中不可达,也不会发出请求;实现存在不等于 端点服务、节点登记或域运行体已经存在。