AICENT.COM
← 返回中文博客

六个家族,一部草案

2026-11-10 · IQA · RTTP
本文引证来源 · draft-li-rttp-iqa-addressing-02(钉定摘要 02491c5a)· 家族页 iqa.org/conformance/(六页,各含四件套下载与校验和)· 实验室 PR #210 · #212(2026年11月3日合并)与 #221 · #222 · #223 · #224(2026年11月9日提交)· runner 仓库 github.com/Aicent-Stack/conformance

向量家族是一台用来测试「文档是否言出必行」的小机器:取规范的一节,从它推导具体用例——输入、期望裁决、拒绝理由——冻结字节,写一个检查器,再写一个唯一职责是把检查器弄坏的程序。如果突变体全被捕获、用例全部一致,这一节的语义就被钉在了任何人都能重放的东西上。这篇文章是一份名册:双柱工作——RTTP(rttp://)回答何地何时、IQA(iqa://)回答是否成立——如今有六个这样的家族,全部推导自同一部文档:draft-li-rttp-iqa-addressing-02。

六个家族,一部草案名册 · 用例 · 突变体 · 各自现状aicent-grant-ref25 用例 · 21 突变体已合并 · PR #210aicent-lease-boundary15 用例 · 17 突变体已合并 · PR #212aicent-ae128-fail-closed19 用例 · 15 突变体评审中 · PR #221aicent-pulse-header24 用例 · 19 突变体评审中 · PR #222aicent-uri-grammar26 用例 · 13 突变体评审中 · PR #223aicent-route-shard16 用例 · 9 突变体评审中 · PR #224合计——125/125 用例一致 · 94/94 突变体被捕获 · 每次运行可逐字节重放

先报数字,名册就该从数字开始。grant-ref:25 用例、21 条突变探针。lease-boundary:15 用例、17 条。ae128-fail-closed:19 用例、15 条。pulse-header:24 用例、19 条。uri-grammar:26 用例、13 条。route-shard:16 用例、9 条。全家族录制运行——六个检查器加六个突变器一遍跑完——合计 125/125 用例一致、94/94 突变体被捕获,可从各家族页的密封工件逐字节重放。

四个新家族各测什么,一族一口气。pulse-header(24 用例、19 突变体)测的是线上帧本身:§7.1 的固定 128 字节帧布局用固定比较核验;§7.1.1 的扩展块规则——SPEC_REV 闭集、FLAGS 各位、ACTION 字符文法、长度与填充、RESERVED 字节;以及 §7.1.2 的时间与次序语义——TTL 转发、TIMESTAMP 年龄及其对 standing 的边界。帧用例是具体的 128 字节帧头;行为用例交给检查器一个帧、一个角色、一个结果,问钉定文本是否允许。

ae128-fail-closed(19 用例、15 突变体)测的是证明信封的拒绝:接收方在任何密码学动作之前 MUST 执行的解析期拒绝规则;全帧覆盖的规范 HMAC 规则——它让对 organ 标签、nonce、standing 字节的任何改写都可被察觉;以及每份实现必须逐字节复现的公布向量 AE128-VECTOR-1。每条用例都是一帧具体的 128 字节,检查器仅凭帧字节与源文本所述规则重导全部裁决。

uri-grammar(26 用例、13 突变体)测的是 rttp:// 的字符串层门面:§4.1 的 ABNF——三个点分段、哈希意图与命名意图、单段 action;以及 §4.2 的排除项——大写规范形、userinfo、端口、query、fragment、规范 URI 中的百分号编码、任何 rttps 回退,全部关门。每条用例是一个 URI 加上钉定文本强制出的那条文法裁决。

route-shard(16 用例、9 突变体)测的是派生本身:对规范权威的 ASCII 做 SHA-256 取前 16 字节,连同让函数保持诚实的各条边界——scheme、// 与 action 不进输入;大写被拒绝而非归一化;非 ASCII 被拒绝;以及 §9.1 的展示形红线——8 位 hex 展示形绝不得作为主体的唯一标识符。派生用例钉完整 16 字节地址;属性用例钉结果。

六族中两族已进主线:grant-ref 与 lease-boundary 于 11月3日以 PR #210 与 #212 合并进实验室主分支。其余四族本周新提——#221 ae128-fail-closed、#222 pulse-header、#223 uri-grammar、#224 route-shard——各自独立分支、各自四件套(候选文档、向量、检查器、突变器)、各自跑过实验室六道 CI 门。它们和所有人的东西一样排队等;不承诺日期。

每个家族,两个地址我们的页 — iqa.org/conformance/六个家族页 · 四件套可下载页上带校验和 · 规则表 · 运行数字密封 tarball · 运行方法 · 无需向任何人索取实验室 — aps-conformance-suite#210 #212 已并入主线 · vendor 化,CI 重放#221 #222 #223 #224 已提交,评审中各过六道 CI 门 · 公开队列,公开历史一切公开引用双链并行——工件看我们的页,队列看实验室若有人跑了我们的向量,实验室的 GitHub 会留下回执。

现在说我们最自豪的部分,它不是通过率。四条新向量标记了我们自家向量比自家草案字面更严格的地方:AE-128 对 flags 0x0001 与 organ 0xFF 的检查,以及 uri-grammar 关于前导连字符的两条用例——草案 §4.1 文法按字面读允许的,向量却拒绝。每一行都标明它是什么——一次权威收紧,标注为 2026年11月9日的作者决定,在家族页与实验室提交里如实披露,而不是伪装成草案一直这么说。一致性套件同时是一面镜子:它让作者看见自己文本松在哪里。我们宁可当众把松动亮出来,也不让陌生人抢先发现。

一条分类注记,按实验室章程要求的方式陈述:录制家族运行是 author-produced、Mode A——向量、检查器、运行都是我们写的。这是这份名册的诚实标签;独立性工作发生在别处——别人跑我们的字节、或我们跑别人的字节时——那些运行带着各自的归属。author-produced 运行确立的东西更窄但依然有用:六个家族内部自洽、突变体全灭、每一件工件今天就能带着校验和下载。

六个家族,一部草案。通过率是这里最不有趣的数字——我们自己的检查器当然过我们自己的用例。要紧的是:草案的语义如今以冻结、可重放的对象存在于一个公开实验室的队列里;每个家族都能取走重跑而不必问任何人;而我们文本比草案更严的四处,被标成了它们本来的样子。草案负责承诺,家族负责留回执。

已封印 rttp://90b15277.blog.aicent · iqa://90b15277de7afe6c78f714e1eeca89cb.forge.iqa · 密封记录