ZYCORD 文档
简体中文
Zycord 源代码

源代码

一个仓库,采用 MIT 许可:节点、钱包、命令行、参数集,以及定义协议的黄金向量。这个网络运转所需的一切都在里面。

这个站点上的任何东西,都不比你不用求人就能自己核对的东西更值钱,而核对就从这里开始。一个匿名作者拿不出声誉;他能拿出来的,是一棵你可以读、可以构建、可以拿去和别人递给你的二进制文件作比对的代码树。

克隆它#

git clone https://gitlab.com/zycord-group/zycord-node.git
cd zycord-node

或者先在浏览器里读一读: gitlab.com/zycord-group/zycord-node。

这是唯一的仓库

这个项目的规范位置 — 包括这一处 — 都钉在公告帖子里那份签名的证明中,使用的项目密钥是 E724 39CE DD85 11F9 D607 550B 87FD 60D5 EB4A 0B29。托管在别处的代码树是副本:它可能诚实,可能陈旧,也可能怀有恶意,而这个页面无法告诉你是哪一种。在信任任何镜像之前,先核对那份签名的清单,并且只从你亲自验证过哈希的标签去构建。

里面有什么#

目录里面装着什么
spec/协议本身。参数集、黄金向量,以及预先部署的库镜像。一个能通过这些向量的实现是同侪,不是分叉。
core/共识关键代码,只用标准库:存储单元模型、无状态有效性、折叠 (fold)、为凭证改造过的 EVM,以及藏在构建标签后面的 RandomX。
node/围绕那个内核的节点 — 存储、内存池、矿工、对等层、同步、只读 RPC、Stratum。
wallet/密钥管理与凭证构造器。是一份参考,不是共识。
cmd/zycordd,节点;zcd,命令行和钱包。
sim/模拟器和模糊测试装置,一个刻意写得笨拙、用来与真正那份对拍模糊测试的第二份折叠 (fold),以及让真实节点跑在真实套接字上的混沌浸泡测试。
contracts/参考合约,用 Solidity 写的。
packaging/安装脚本和各平台的打包件,在你运行之前就可以审阅。
docs/架构、协议参考、运营指南和白皮书。

协议就是那些向量#

这棵树里的 Go 代码是一份参考实现,而且刻意不是那个定义。定义这个网络的是 参数集和黄金向量:每一条折叠 (fold)、区块和有效性规则都是一个 (前置状态, 区块) → (后置状态, 费用) 用例,正例和反例都有。用你喜欢的任何语言写你自己的节点 — 只要它通过这套语料,它就是同侪,而这份实现对它没有任何优先地位。

启用高度也住在同一个地方。h1_bond 和 h1_vm 是 创世时冻结下来的参数,而不是一次发布:机器被编译进每一个二进制文件,并在其高度之下被拒绝,所以一个时代之所以到来,是因为链走到了某个数字,绝不是因为有人请求运营者升级。

构建它#

make build           # no cgo, reproducible, development engine only
make build-randomx   # the network binary: mainnet and the public testnet

只有 RandomX 那个构建能接入网络。默认构建是逐字节可复现的,跑的是本地 devnet;这两者刻意写出不同的文件,这样一个无法与 mainnet 通话的二进制文件,永远不会被错当成可以的那个。Go 工具链被钉死在 go1.26.2,构建在别的版本下会拒绝运行,因为同一份源码被两个 Go 版本编译出来就是两个不同的二进制文件。

重建一个已发布的标签并比对哈希,正是那项取代“信任发布者”的检查 — 验证下载里有完整流程,而 安装讲的是为日常使用而构建。

问题与安全#

缺陷、问题和补丁请提到 问题追踪器,而 CONTRIBUTING.md 写明了一个改动在被合并之前需要具备什么。

漏洞请走 SECURITY.md 里的披露流程,而不是提到追踪器上。这个项目宁愿收到报告,也不愿被姑且相信,而在 mainnet 之前发现的缺陷不会让任何人付出代价。

许可证#

整棵树都是 MIT。分叉它、发布它、拿去卖、改个名字 — 这份许可证只要求保留一份 版权声明,别无他求。它唯一给不了你的,是这个网络:那由那些接受你区块的节点决定,而它们是按 spec/ 里的规则来接受的。