在状态分片中最重要的就是跨片通信。而如果采用简单的 P2P 广播协议,最终系统将产生非常多的消息负载,这样的系统没法支持大量的分片。Harmony 采用了「Kademlia 跨片路由技术」,来控制跨片间通信的网络开销,并且利用「纠删码」对区块广播过程进行优化,使广播者的网络压力更小,避免发送者的网络瓶颈问题,从而实现高效的横向分片扩展。纠删码是什么?因为下面还会提到纠删码,所以这里简单解释下,纠删码(Erasure Code)是存储领域常见的一种数据冗余技术,它可以将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,当某些数据丢失时,可以通过重构算法恢复原来的数据。与之有相似功能的是多副本策略,即把数据复制多份存储起来,以便能恢复。 Part 2 Near Protocol
Near Protocol 是什么?
Near 是基于全状态分片、对开发者友好的可拓展性公链,他们提出了一种新的协议和解决方案,称之为夜影协议(Nightshade)。Near 与其他分片公链不同的是,它的技术架构并不是由一个信标链和多个分片链组成的,而是把系统建模成一个单独的区块链,在区块级别进行了分片,每个分片中有很多“段”。具体来说,Near 将区块分为一个个物理组成块,因为每一个区块都包含这些物理组成块,经过对多个区块的验证,物理组成块均相同的时候就可以验证这些区块是正确的。每个区块逻辑上包含所有分片的所有交易,并切分分片的状态,验证者只负责验证交易所针对分片相对应的状态即可。项目主网上线时计划是 8 个分片,24 个区块/块生产者以及 800 个验证人。这意味着每一个区块切分成 8 份,然后需要 800 个验证人负责验证 24 个区块确认每一个物理组成块不出问题,相应的 NEAR 的区块间隔也就会更低。
Near 也是通过「纠删码」来解决分片的数据的可用性问题,因为分片的存在,并不是所有的节点都有所有分片的状态,如果一些节点没有某些分片的状态,就难以保证某些数据的可用性。Near 的解决思路是,每一个节点会把他们所制造的区块分成很多部分发送给不同的验证者,使得只需要依靠其中的一些部分,就可以重组它这个节点所制造的分片区块,从而使得数据的可用性能够得到保证。Part 3 Elrond