开发者指南 · Zikaron

分叉与另起实现

代码以 MIT 许可发布,法文人人可读。欢迎分叉,欢迎用任何语言另写实现。只有一项请求:让分歧可见。

许可

代码与文档采用 MIT 许可:可以使用、修改、再发布与商用,保留许可文本即可。登记合约源码采用 CC0,内嵌字体各按 SIL OFL 1.1,第三方 crate 各按自己的许可,清单见每个包里的 THIRD-PARTY-LICENSES.txt。

另起一份实现

法文自成体系,核验所需的每条判断都写在其中。依据法文,用你选择的语言编写实现,再用一致性套件验收;与冻结核零分歧,即为合规实现,与本仓库的实现地位相同。

独立实现越多,法越稳固:每多一份依据文本独立写成的实现,文本中的歧义就多一次被发现的机会。在语料之外发现两份实现有分歧,请提交议题。

分叉本应用

修改界面、增加功能、更换默认设置,都属工具层,尽可自由去做。请注意三点:

另取名称
让用户能区分两个软件。
另设机器目录
让两个软件的密钥库与数据分开存放:macOS 与 Linux 上换掉 ~/.zikaron-desk 与 ~/.zikaron-desk.d/ 这两个名字,Windows 上换掉 %LOCALAPPDATA% 下的 ZIKARON 文件夹名。要换的字面都登记在 crates/app/family-literals.json 里,例如本机加密文件的格式字面、本机通道的名字、「启用 zikaron 命令」放的链接名、User-Agent、指针文件名、记录包与交接件的扩展名(zkit、zkhand)、交接件里说明文件的名字、交接清单的文件名、加密记录包的格式标记与密钥派生信息串(zikaron-kit-addressed、zikaron-kit-addressed/1);不换的话,两个软件的本机通道与命令行链接会撞在一起。
保持对法合规
你的分叉写出的账本,原版可以读取;原版写出的账本,你的分叉也可以读取。

修改规则

规则的改动须让每位读者都看得见:另起新的规格名与签名域字面量。这样两套规则下的签名相互独立,读者一眼就能看出条目属于哪一套。

  • 规格名与域字面量须与现有的全然相异;zikaron/1 这一字面量永远指现行这部法。
  • 公开你的法文与核,并写明摘要。
  • 用一把新密钥书写新规则下的账本。

登记合约

合约为所有人共用。任何人都可以在任一已完成上海升级的 EVM 链上部署相同的字节,得到相同的代码哈希。核验方在自己的扫描范围中写明认可哪些地址;你部署的合约与他人部署的,在法中地位相同。ZIKARON Desk 只认钉定的那一份代码哈希:读只读网络之前、保存主网络的链设置时都先核,所以它里面用的都是那一份钉定的代码。

决定权归属

法
由冻结核决定。维护者与任何人一样,只能另立新版。
合约
由部署的字节决定。
本仓库
由维护者决定合并哪些请求。对取舍有异议时,分叉是正当的出路。
用户的数据与密钥
由用户自己决定,项目方手中只有源码。
证据的分量
由读证据的人决定。

如实说明

介绍你的分叉或实现时,请如实写明它与哪一版法合规、使用哪个登记合约、默认连接哪些节点。用户据此判断两个软件写出的记录能否互相核验。