开发者指南 · Zikaron

兼容与演进

本页说明哪些部分长期稳定,以及新功能从何处加入。

长期稳定的部分

条目的字节
已签出的条目保持原样。任何版本的软件都按 zikaron/1 读取,结论与今天相同。
签名域
四个字面量各有固定含义:zikaron/1、zikaron/1-adoption、zikaron.fpm/1、zikaron.ack/1。
两种上链形式
事件形式与自转账形式。
核验结论
同一输入,任何合规实现给出同一输出。

四个扩展入口

新的条目类型
类型是开放的。约定一种新类型后,旧软件将其列入「无法识别的类型」,法的检查结论照旧;ZIKARON Desk 的账本状态行会把它算作问题。
正文附加成员
条目正文可以携带法定成员之外的键,法把它们视为数据。for 与 upstream 都以这种方式加入。
新的方式标记
存证的 mark 是开放的字面量。新的指纹算法、新的内容种类,各起一个新标记。
新一版法
规则本身需要改变时,另立 zikaron/2。

前三个入口都在工具层,当下即可使用。选择哪个入口,取决于新内容需要谁读懂:只供自己的应用读取,用附加成员;需要其他实现也读懂,约定新类型并公开。

下一版法

zikaron/2 意味着新的规格名、新的签名域字面量、新的核与新的摘要,两版的签名相互独立。旧账本在 zikaron/1 下继续有效;需要迁移的作者,在旧账本中记录一条移交,指向签署新账本首条的密钥。

一把密钥只在一部法下写账本,迁移所用的新账本配一把新密钥。

本机文件的版本

本机的每种文件都带格式版本。升级软件时遵循以下规则:

  1. 只读、只写本版自己的形式:本机加密文件只认现行封装,密钥库只认 zikaron-desk/keybox/3,machine.json 只读语言与外观。明文文件、别的封装与别的密钥库形式一律不读、不转换:点明原因,原样留着。
  2. 读不成的文件原样留着:具名报出是哪个文件、六种原因中的哪一种;写到它时具名拒绝,把它挪开,下次写入即重建。
  3. 加密的机器设置与数据目录设置里,本版不认得的成员原样带回。
  4. 本版写过的本机加密文件,0.1.2 及更早版本读不了;0.1.3 与本版用同一种封装。
  5. 主钥已失、永久封存的文件,字节原样移入机器目录的 set-aside,按序号平铺。
  6. 备份来自更新的版本时,明确提示先升级应用;其他文件读取失败时,报出是哪一份。

成批的改动(例如换主钥后整批改名重封)先把计划与新文件写在旁边,读回核对,相符后一步换上:中途断电,下次启动看到的要么是完整的旧状态,要么是完整的新状态;任何一步核对失败即停止,原文件保持原样。

数据目录的目录标签与写者标由第一个以写者打开或写进它的窗口写下,只读打开不写。

从早先版本升级

从 0.1.4 或 0.1.3 升级:直接覆盖安装,原有的机器目录与数据目录照用,不必另做什么。本版与 0.1.4 写的是同一种数据形式,0.1.4 照样读得了本版写的数据。

从 0.1.2 及更早版本升级:那些版本的机器目录(密钥库、身份登记、设置)与数据目录都不读,本版从一个空的机器目录起步。记录者的账本经账本镜像带过来,手工一次:

  1. 在 0.1.2(或更早版本)里「导出账本镜像」到机器目录之外的一个文件夹,然后退出。
  2. 把早先版本的机器目录连同它的指针文件一起挪开(位置见机器目录)。
  3. 启动本版,设口令,用同一组助记词导入身份。
  4. 向导走到「创建账本」时,点「收编已有账本目录」,选镜像里的 author 文件夹,按「原位收编」:条目逐条重新核验,账本再与链上这把密钥的上链记录核对,收编成了这一步即算完成。收编只收一整本账,恰有一条创建账本条目;这处数据目录已有自己的账本时,只收同一本账。
  5. 在账本页跑一趟账本检查,看它答「正常」。

跨版本互核

  • 文件夹存证的清单自 0.1.4 起处处以 / 连接路径。早先版本在 Windows 上签的文件夹,0.1.4 起在任何系统上都核得上;0.1.4 起在 Windows 上签的文件夹,0.1.3 及更早版本在 Windows 上核对不上,对方要用 0.1.4 或更新的版本。
  • 加密记录包是 0.1.4 新增的格式,0.1.3 及更早版本打不开,接收方要用 0.1.4 或更新的版本。

命令行输出

输出的键名与拒因各是一张封闭的表,退出码是五个固定值,脚本依赖于此。因此:键名与退出码的含义保持稳定,增加信息时增加新键;拒因的增加与含义的调整,同步写进 CLI-SCHEMA.md 并列进更新记录;测试逐项对照代码与这份文档。标准错误的第一行 <原因> <对象> 属约定,第二行起给人看的说明随系统语言显示,不属约定,措辞可以随时改进。zikaron contract 输出的就是这份约定。mcp 的消息是 JSON-RPC 与模型上下文协议自己的格式,在这两张表之外;它认的协议版本写在 CLI-SCHEMA.md 第 13 节。

判定词原样保留

GREEN、PARTIAL、FAIL、COMPLETE、GAPS 等词由核写出,在机器读取的输出中保持原样。界面把它们转述为「全部通过」「有缺项」等用语,原词收在详细信息中。

时间

期限与有效期以链上时间或调用方明确给出的时刻判断。界面按用户所选时区显示时间;写入条目与输出的,一律为秒数。

停用功能

条目按 zikaron/1、记录包按 zikaron.kit/1 读取,永久可读;账本镜像与命令行的账本目录是把账本带过版本的通道。本机加密文件、机器目录与数据目录只读本版自己的形式,格式换代时,更新记录与手册写明怎样带过来。写入功能可以停用,停用时在发布说明中写明,并为用户提供替代做法。

工具层保持轻量

测试、量具、脚本、目录划分与本文档都属工具层,为法与用户服务:发现问题当天修复,过时即更换。承重的只有两样:冻结的法,以及用户已写下的字节。