继享云链7月份发布白皮书之后,享云链“郑和”版本于8月21日开源发布(开源地址:https://github.com/lianxiangcloud/linkchain)。在它的白皮书路线图中描述了该版本支持UTXO和ACCOUNT双账户模型、隐私的UTXO交易、支持EVM和WASM双虚拟机等几大亮点。本着学习的态度来了解一下具体实现原理,然而开源项目中几乎没有这几点的设计说明文档,所以只能跟踪源代码并记录一些关键函数:
代码结构
“郑和”是享云链第二个开源版本,第一个版本在6月份开源(开源地址:https://github.com/lianxiangcloud/lk-chain)。该版本相对于第一次开源代码来说进行了一次模块化设计和开发,丢弃了双进程设计并进行了业务模块的整合,但大部分模块内部代码没变。对照模块图在项目中找到相应代码还算容易,如accounts(账户)、consensus(共识算法)、vm(虚拟机)、p2p等。
utxo目录乍一看还以为UTXO类型定义、业务逻辑等相关的模块,但其中就一个UTXO交易的存储实现,类型定义和业务逻辑在其他目录,这个单独列出来没明白用意,不知道为什么不和其他数据整合成一个存储模块。
虽然项目进行了模块化设计,但模块化的耦合性比较高,核心模块的二次开发或者替换比较困难,被第三方项目直接引用也不太容易。
双账户模型
双账户模型(ACCOUNT+UTXO