发布于: 雪球转发:0回复:0喜欢:0

分片是指将网络中的所有节点分成若干个子群体,这些子群体之间通过预定义的方法执行原来所有节点都要处理的工作,从而达到提高系统处理能力的结果。


以太坊目前的分片策略是在一个周期内,将所有的节点分成若干份,然后将合约分配给每个分片。当周期结束时,会重新分片。这里会有几个问题:

1、需要一个全局的存储器来保存这个分片信息。

2、这个周期通常比较长,如果节点数动态变化比较大的话,分片的信息会很容易过时。

3、周期结束时,当前分片处理的合约必须重新分配到新的分片,造成不必要的切换资源操作。

4、分片的共识方式与底层的共识一样,这样分片的功能必须等主网切换到POS才能采用。


墨客采用分层的办法来实现分片。

墨客的底层采用POW的方式保证所有的数据的一致性。分片处理的节点称为SCS,其特点包括:

1、每个分片有自己的存储,就是子链。

2、SCS可以有不同于底层的共识方式,比如pos,pbft。

3、SCS的区块生成时间可以与底层不一致,比如可以采用快速的区块周期来进一步提高处理速度。

4、SCS周期性的向底层flush结果,从而获得阶段性的全局一致性。


与以太坊分片方法不同,墨客分片采用合约驱动的模式。就是说一个合约对应于一个系统分片。合约创建时自动随机选择相应数量的节点形成一个分片来处理这个合约。这个合约的生存周期包括从创建到结束合约都在这个分片中实现。当然,中间如果需要,可以重新洗牌来选择新的分片节点。


墨客系统提供一个Pos分片实现。用户也可以实现自己的共识协议,作为SCS的一个插件。这样就形成了子链的概念。


合约的执行尽可能都在SCS端执行。V-node只处理支付交易和必要的合约调用。如此可以降低支付交易的gas量,进一步提高处理能力,而不会造成系统太大的负担。


整个系统的处理速度上去之后,会对v-node的要求更高。体现在两个方面,一个是网络的带宽,另一个是存储的容量。当然还有每个节点的GPU运算能力。随着光纤网络和5G网络的普及,带宽预计不会成为一个瓶颈。存储器的价格则更加不是问题。对于普通用户而言,因为有SCS可以参与挖矿,并不一定需要部署一个v-node,只要有信任的v-node可以连就可以。这样墨客系统会形成两个层次的挖矿节点:

1、大量运算能力强大、高网络带宽、大存储的v-node,执行POW,并提供SCS接入服务,维持整个网络必须的挖矿能力,这个数量在几千到一万。

2、海量cpu –based的SCS用于处理合约的执行。针对子链的共识多样性,这样的SCS节点甚至可以是手机等移动设备。SCS节点的数量可以不受限制。在目前的架构下,可以有几十万甚至几百万的SCS参与,而不会影响系统的性能。