之前的文章已经对Zilliqa的情况做了初步分析。按照其白皮书的说法,Zilliqa被划分为6层,分别是密码层,数据层,网络层,共识层,合约层和激励层。那么其源码对白皮书架构设计的实现情况怎么样,来看看code吧。
应该说Zilliqa的源码结构和其白皮书中对系统设计的解释一样清晰明了。Zilliqa采用C++
编写,六层设计中每层代码一个文件夹分开存放,单独编译出库文件。
- libCrypto: 密码层,包括了系统中使用的密码学相关的方法,如多重签名,
SHA3
实现等 - libData: 数据层,包括目录服务区块和交易区块相关数据结构的定义等
- libNetwork, libNode: 网络层,包括节点通讯,网络分片等
- libConsensus: 共识层,包括Zilliqa一致性算法相关的代码
- libContracts: 合约层,智能合约相关的代码都在这里
- libIncentives: 激励层,按白皮书说法,这里主要是矿工激励相关的内容,但目前并没有实现
Zilliqa整体代码可读性还是比较高的,main
函数入口代码非常的简介,对6层代码的调用都交给了Zilliqa
这个类来完成,网络消息通知完全交给了libevent,消息处理都交给了dispatcher
函数来完成。
总体来说Zilliqa的设计和代码在整个区块链代码里算是最易上手的了。
网友评论