标准
实现
什么算作 A-REX Core 的实现、哪些实现已列入名单、一致性声明说明了什么,以及实现如何列入名单。
什么是实现
实现是他人可以对照标准进行检查的软件。它有以下四种形式之一:
- 实现标准接口的批次代币;
- 钩子:实现
IARexHook的规则合约,可以服务多个代币; - 证明登记合约:为现有代币实现
IARexAttest的伴随合约; - 为他人运营代币的平台,基于自己的实现,或基于未经修改部署的参考实现。
只读取 A-REX 代币的钱包、浏览器、索引器和其他工具也可以列入名单,但它们没有需要符合的条款。
参考实现
参考实现是 arex-contracts,采用 MIT 许可。它包含代币及其证明登记合约(ARexToken 和 ARexAttestations)、示例规则合约和一致性测试套件。它表明标准可以被实现;它不是标准本身,其他实现也不必复用它的代码。在仓库保持私有期间,它与标准一起通过申请提前访问提供。
已列入名单的实现
名单以标准仓库中的 ADOPTERS.md 为准,该文件是权威记录。各行按字母顺序排列,每一行都以相同条件列入。
| 组织 | 角色 | 实现 | 链 | 状态 | 联系方式 |
|---|---|---|---|---|---|
| A-REX Foundation:A-REX Platform | platform | 使用参考实现为企业运营代币,参考实现按其发布版本未经修改部署 | 尚未部署在公共网络上 | in development | [email protected] |
A-REX Foundation 同时维护规范和参考实现,因此 A-REX Platform 不是独立实现者:它不计入约束标准变更的“两个实现者规则”。目前尚无独立实现者列入名单。
角色包括 issuer、warehouse、lab、platform(为他人运营代币)、wallet 和 indexer。状态包括 planned、in development、pilot(真实批次,范围有限)、production、conformant(通过一致性测试套件,并附报告链接)和 retired。
一致性的含义
一致性通过参考实现附带的一致性测试套件来检查。套件只通过标准接口以及由实现作者编写的一个小型适配器接入被测实现,因此以相同方式测试每一个实现。每项测试都标注其所检查的条款:共 87 项条款,其中 74 项为 MUST 级,13 项为 SHOULD 级。每次运行以下列三种结论之一结束:
| 结论 | 含义 |
|---|---|
CONFORMANT | 所有 MUST 条款均通过 |
CONFORMANT (with skipped MUST clauses) | 没有 MUST 条款失败,但有部分条款因实现未提供其所需功能而被跳过 |
NOT CONFORMANT | 至少有一项 MUST 条款失败 |
未满足的 SHOULD 条款会被报告,但不改变结论。
一致性声明需写明 A-REX Core 的版本、所适用的配置、测试套件的版本或提交以及运行日期。声明与未经编辑的报告、被测试的提交或已部署地址、未满足的 SHOULD 条款以及任何有意的偏离一起发布,并且必须解释每一项被跳过的 MUST 条款。一项声明只适用于标准的一个版本:升级之后以及标准每次发布新的主版本时都要重新运行。
报告是一份证据,说明实现在套件所检查的条款上的表现。无法在链上观察的条款,例如产地引用不含个人数据这一规则,留待审查,因此报告并不涵盖标准要求的全部内容。
列入名单不代表认可
名单中的一行记录的是一个组织对其自身实现的陈述。它不是 A-REX Foundation 或标准编辑者的认可、认证或审计,也不存在付费认证或任何费用。conformant 状态以该行所链接的已发布报告为依据;当报告不支持某项声明时,编辑者可以要求更正或撤回该声明。若某行的联系人六个月内没有回复,或其链接失效,编辑者可在通知后将其标记为 retired。
如何列入名单
- 提交一个拉取请求,在标准仓库的
ADOPTERS.md中按上表各列添加一行。在仓库保持私有期间,请先在申请提前访问申请访问权限。 - 提供一个会回复的联系方式。已列入名单的实现者会被邀请确认或反对对标准提出的变更。
- 若申请
conformant状态,请附上你的一致性声明所对应的报告链接。 - 若要算作独立实现者,请在拉取请求中声明:就这项工作而言,你的组织不受 A-REX Foundation 或其他已列入名单的实现者控制,也不由其付费。
独立实现者支撑着“两个实现者规则”:次要变更在两个独立实现者确认可以采用后被接受,主要变更则要在两个独立实现者已经实现该变更并用它通过一致性测试套件后才被接受。在出现两个独立实现者之前,已接受的更改均标记为暂定。