本文于2019年1月10日,在Zilliqa论坛(forum.zilliqa.com)首发。
节点类型
Zilliqa网络上有5种类型的节点:
注:交易类型(类型I,II,III)的解释在这篇博客里(https://blog.zilliqa.com/prov...)
分片节点(Shard nodes)处理类型I和类型II的分片内交易,并将共同签名的微型TX块提交给目录服务(DS)委员会。它们根据当前DS周期(DS epoch)内贡献和被接受的签名数量获得奖励。
目录服务节点(Directory Service nodes)处理组装由分片提交的微TX-块。它们还处理类型II和类型III交易,这些交易是跨分片交易用来创建另一个微块。一旦组装完成后,它们将形成一个共同签名的最终TX块,并将其广播到Zilliqa网络中的所有节点。DS节点还基于在当前DS周期(DS epoch)期间贡献和接受的签名的数量来奖励。
注意:在猫山王测试网中,一个DS Epoch目前包含100个TX Epoch。
关于Epoch架构的更多细节在可以这里(https://github.com/Zilliqa/Zi...)找到。
查找节点(lookup nodes)处理将交易分派到正确的分片,并协助种子节点获取状态和交易记录。他们赚取5%的交易费和coinbase奖励。
种子节点 (seednodes) 帮助将交易转发到查找节点,通过提供DS块历史记录来帮助新的验证节点加入网络,并公开交易的API以允许浏览器/钱包发送交易并获取历史交易数据。它们共享由查找节点获得的奖励。
档案库存储器(archival storage)在每个DS 周期(DS epoch)从种子节点获取历史数据,包括交易和块,并将它们存储在levelDB中。它们还为新加入的种子节点提供历史数据。
网络图草图
说明:
S1,S2,S3:分片(Shards)
DS:目录服务委员会(Directory service committee)
Tx:交易(Transaction)
MB:微块(Microblock)
SD:状态变量(State delta)
FB:最终块(Final block)
FSD:最终状态变量(Final state delta)