跨链规范的编辑部手册:CAIP-104 命名空间参考的目录结构与状态机 图 1
跨链规范的编辑部手册:CAIP-104 命名空间参考的目录结构与状态机 · 图 1

过去两年里,跨链标识家族出现了一批标着 Superseded(已被取代)的文件:Filecoin、Tezos、Solana、波卡、Cosmos 的链标识规范逐一”搬家”。搬去哪、按什么规矩搬,答案写在 CAIP-104——Namespace Reference Purpose and Guidelines,2022 年 3 月 27 日立案,作者 Bumblefudge 与 Wayne Chang,类型 Meta(元文档,讲流程本身不讲技术),现状态 Review(评审中)。可以把它理解为命名空间世界的”编辑部手册”。

为什么要搬家:单文件治理撑不住生态复杂度

CAIP-104 的问题陈述很具体:早期每条生态的标识细则都是独立的 CAIP 文件,与跨链通用规范混编在一个仓库里;生态扩张后,“底层原语(链 ID、地址格式)“与”上层约定(RPC 方法、资产类型)“混在同一批文档中,上层规范一更新就可能把底层定义连带作废。手册提出的解法是拆分:一个生态的全部规范搬进独立仓库 ChainAgnostic/namespaces 的一个目录,目录里 README.md 讲这个生态的命名与治理常识,之后每条适用的 CAIP 单独建一份 caipX.md,各自拥有独立的批准/取代生命周期。这样底层链 ID 定义不会被上层 RPC 规范的修订顺带推翻。

跨链规范的编辑部手册:CAIP-104 命名空间参考的目录结构与状态机 图 2
跨链规范的编辑部手册:CAIP-104 命名空间参考的目录结构与状态机 · 图 2

目录结构与文件名规则

手册规定:命名空间的边界划分”本质上主观”,但重叠与冗余应尽量回避,无法回避时要在技术与互操作性上给出理由;生态的关键事实放 README.md,其余按”编号即文件名”组织——caip7.md 就是该生态对 CAIP-7 的实现参考。图片资源命名走 readme-Y.ext 系列。模板文件(README 模板与 caipX 模板)直接放在仓库的 _template 目录供克隆。这套结构的效果,今天翻任何一个迁移完成的目录都能看到:fil、tezos、solana 各自成册。

文件头的字段清单

CAIP-104 正文的大半是抬头字段(front matter)规范:namespace-identifier 要求小写字母数字(带 CAIP 后缀的形态用于逐条参考文档);status 枚举 Draft、Last Call、Accepted、Active、Abandoned、Rejected、Superseded 七档;type 分 Standards Track、Informational、Meta;还有 resolution(决议存档链接)、requires、replaces、superseded-by 等关联字段,日期一律 ISO 8601。对读者的实际用处是一条核验纪律:判断某生态文档的效力,看 status 与 superseded-by,而不是文件躺在哪个仓库、多晚被 commit 过——搬家后的旧 CAIP 文件停止更新恰恰说明它被认真取代了,而不是无人维护。

与 BIP-0001/EIP-1 的同族气质

写过比特币改进提案或以太坊提案文档的人会对这份手册眼熟:RFC 822 风格抬头、状态机、讨论链接、决议存档,这套”提案即文档、状态即治理”的形式正是 BIP/EIP 流程的移植,CAIP-104 只是把对象从”链的升级”换成”跨链的命名”。它自己停在 Review 状态也说明问题:流程文档天然不如技术文档有推动力,各生态目录实际上已经在按这套格式运转,手册反而成了后补的说明书。

钱包读者的实操收获

把这份 Meta 文档翻译成使用层的三条纪律。其一,看到工具里的链标识解析异常,先确认它读的是命名空间目录的当期参考还是 CAIP 历史文件,两者对同一生态的覆盖范围不同;其二,评估一个新链的跨链兼容性,直接去 namespaces 仓库看该目录里 caip2.md(链标识)、caip10.md(地址)这类文件齐不齐,齐了才谈得上被通用钱包与浏览器正确显示;其三,任何标 Superseded 的旧文档(如本批讨论的 《Solana 系链的链标识是创世哈希截前 32 位:CAIP-30 与 getGenesisHash 核验法》、《链标识只用一个字母:CAIP-23 的 Filecoin f 与 t 二分法》 同族文件)都先查 superseded-by 指向再下结论,别拿历史文本否定现网行为,也别反过来。

状态词表怎么读

CAIP-104 定义的七档状态值得逐条对照阅读习惯:Draft 是讨论稿、Accepted 通过但未见落地、Active 在野运行中被引用、Last Call 定稿前最后一轮征求意见、Abandoned 作者弃更、Rejected 明确否决、Superseded 被替代。这套词表与 BIP/EIP 的状态机形似而不同源,跨文档体系时不要做词对词的移植理解——比如 CAIP 家族没有 Final 一词,Superseded 在 BIP 语境近似 Active 之后被部署取代的复合状态。判断一份跨链文档能否作为对接依据,状态词只是第一道筛子,第二道永远是”该命名空间目录里最新一次实质修订改了什么”。

风险提示:本文是跨链标准治理流程科普,不构成投资建议;各命名空间目录的文档状态随时演进,对接前请以仓库当期文件与链上实测为准。