关于bumo的orbit采用网络分片的设计构想

目前来说关于分片的技术很多,比如基于交易、网络、存储等分片技术。其实今天要谈和讨论的是对交易按照一点规则进行分组,最后选择不同的分区网络进行共识并行处理,最终对这些分区网络进行并行处理的交易合并为一个大块,最终更新的账本中,在讲这个设计前先要介绍几个关于本篇文章的术语。

术语:

验证节点:验证分区网络中的交易和共识。
节点:这里提的节点和验证节点有一些不同,只是针对存储来说的,验证节点也属于节点,节点要存储整个全网的区块。
选举委员会:选举会员会的作用是,普通节点想成为验证节点,在这个过程中做一些验证。
VMCC:节点和交易管理合约,有新的交易和新的验证节点加入进来,都会触发VMCC合约,VMCC的任务是分发交易和为验证节点选择分区网络。
DS块:为所有网络分区交易合并成的块。

网络架构图:

image.png


处理流程:

第一步:交押金,申请成为一个候选节点,现在bumo规定成为候选节点的押金数目为50000BU,成为候选节点的过程处理时间可能是一个1h,也可能是一天。

第二步:候选节点经过选举委员会选举成为一个合格的验证节点,选举会员把验证节点名单推送到VMCC合约,VMCC按照随机洗牌的方式对VMCC选择分区网络,这里的随机并没有随机函数。

第三步:交易提案经过VMCC,VMCC按照提交交易的账户地址前10位对交易进行分片处理,不同的交易,最终推送到不同的分区网络。

第四步:各个分区网络并行处理交易,不同的网络进行我们平时日常用的多核计算机一样,一个网络表示一个核,这样多核下能有效提高吞吐量。
第五步:合并成一个大块,分区网络处理完交易后最终会把所有交易推送到一个消息队列中,在这个消息队列中打包成一个大的块,最终更新到各个节点的账本中。

最后:验证节点因为各种原因退出验证节点,为了让验证节点对它以前处理的交易负责任,退出验证节点,在4个月之后才能获得自己保证金和奖励。

总结:这个设计的好处能比常规的区块链网络的吞吐量大很多,但是特别依赖于单机的处理能力;比状态分片好处是不用去跨分片去处理交易。要解决的问题是由于随着分区网络的增多,存储的速度赶不上网络的处理速度,采用MVCC机制。

大概介绍到这里,各位对这个设计有什么疑问请在下方留言。这个只是我的初步一个设计构想,这种方式也是目前比较简单的设计方式。

BTC钱包地址:3DBVvAdAdmUEpxyfeEXT8s77QVNtCVcAQt
ETH钱包地址:0xc2ee48e1c0b2993413ead7aaf274669954f50fbf
bu钱包地址:buQc1xgKuvtUpAEUP4szYPEkSh3ENh8pBm1a

原文地址:https://www.cnblogs.com/hzcya1995/p/13313186.html