【技术实现步骤摘要】
一种在联盟链中实现联合共识分片的方法和装置
本申请涉及区块链
,尤其涉及一种在联盟链中实现联合共识分片的技术。
技术介绍
对于突破区块链的性能瓶颈,业界提出了许多解决思路,其中比较著名的当属交易并行化和分片。但交易并行化只能最大程度地开发单节点性能,而不能突破区块链处理能力受限于单节点的技术藩篱。分片技术则试图从更高维度上来解决这个问题,通过将区块链划分为更多的子网络,每个子网络处理不同的交易,以达到全网性能随分片的增加而提升的目的。相较于交易并行化技术致力于单节点性能最大化的治标之策,分片技术能使网络通过增加节点和扩展分片而创造出增量的计算和存储能力,从而打破区块链的性能天花板限制。但分片技术的实现同样面临许多技术难题,比如,如何划分分片。如果按照账户的网络IP划分,则计算复杂度过高,实现难度太大,且容易出现分片大小差异巨大和负载不均的问题;如果按照节点数量平均划分,可能造成跨分片交易比例过高,严重拖累性能的问题。又比如,如何保证分片的安全性。对无分片的区块链来说,突破安全防护需要超过51%的算力(Pow共识)或者控制(n-1)/3的节点(PBFT共识),但如果采用分片技术,攻破某个分片显然比攻破全链容易的多,且理论上单个分片的安全性将随分片数量的增加而不断降低。因此,如何在联盟链中实现安全高效的分片,成为本领域技术人员亟需解决的技术问题之一。
技术实现思路
本申请的目的是提供一种在联盟链中实现联合共识分片的方法和装置。根据本申请的一个方面,提供了一种在联盟链中实现 ...
【技术保护点】
1.一种在联盟链中实现联合共识分片的方法,其中,该方法包括以下步骤:/n联盟链的共识集合中的任一共识节点获取所述联盟链中的任一节点所发送的共识请求,其中,所述共识请求中包括所述任一节点请求加入的一个或多个联盟链分片的编号和/或请求加入所述共识集合的消息;/n所述共识集合中的任一共识节点在所述共识集合中广播所述共识请求,所述共识集合中的各个共识节点在收到所述共识请求后进行缓存;/n当满足第一预定条件,所述共识集合中的主节点将缓存中的共识请求打包成第一共识提案,并在所述共识集合中发起共识;/n当所述共识集合通过对所述第一共识提案的共识,所述任一节点加入所述联盟链分片和/或加入所述共识集合。/n
【技术特征摘要】
1.一种在联盟链中实现联合共识分片的方法,其中,该方法包括以下步骤:
联盟链的共识集合中的任一共识节点获取所述联盟链中的任一节点所发送的共识请求,其中,所述共识请求中包括所述任一节点请求加入的一个或多个联盟链分片的编号和/或请求加入所述共识集合的消息;
所述共识集合中的任一共识节点在所述共识集合中广播所述共识请求,所述共识集合中的各个共识节点在收到所述共识请求后进行缓存;
当满足第一预定条件,所述共识集合中的主节点将缓存中的共识请求打包成第一共识提案,并在所述共识集合中发起共识;
当所述共识集合通过对所述第一共识提案的共识,所述任一节点加入所述联盟链分片和/或加入所述共识集合。
2.根据权利要求1所述的方法,其中,所述任一共识节点在所述共识集合中广播所述共识请求之前,还包括:
对所述共识请求进行校验,校验所述共识请求中所包括的所述任一节点的签名以及请求加入所述一个或多个联盟链分片的编号和/或请求加入所述共识集合的消息。
3.根据权利要求1或2所述的方法,其中,所述共识集合由多个共识节点组成,所述共识节点中记录有所述联盟链的分片的状态信息,所述分片的状态信息至少包括总分片个数、每个分片内所有节点的地址、每个分片的区块高度中至少任一项。
4.根据权利要求1至3中任一项所述的方法,其中,该方法还包括:
所述联盟链分片中的主节点将交易池中的交易打包成交易提案,将所述交易提案发送给所述共识集合中的任一共识节点;
所述共识集合中的任一共识节点接收到所述交易提案,在所述共识集合中广播所述交易提案,所述共识集合中的各个共识节点在收到所述交易提案后进行缓存;
当满足第二预定条件,所述共识集合中的主节点将缓存中的交易提案打包成第二共识提案,并在所述共识集合中发起共识;
当所述共识集合通过对所述第二共识提案的共识,将对应的共识消息广播给所述联盟链中所有分片中的分片节点;
各个联盟链分片中的分片节点接收到所述共识消息,从中识别出与自身分片相关联的共识消息,并执行对应的交易提案,生成新的区块分片。
5.根据权利要求4所述的方法,其中,所述联盟链分片中的主节点将交易池中的交易打包成交易提案之前还包括:
所述联盟链分片中的任一分片节点接收交易,在其所处的联盟链分片中进行广播,所述联盟链分片的各个分片节点在收到所述交易后缓存至各自的交易池;
当满足第三预定条件,所述联盟链分片中的主节点将交易池中的交易打包成交易提案。
6.根据权利要求4或5所述的方法,其中,各个联盟链分片对应的交易提案具有其对应的哈希值,所述各个联盟链分片中的分片节点接收到所述共识消息,从中识别出与自身分片相关联的共识消息,并执行对应的交易提案包括:
所述各个联盟链分片中的分片节点接收到所述共识消息,根据所述交易提案的哈希值,从中识别出与自身分片相关联的共识消息,并执行对应的交易提案。
7.根据权利要求4至6中任一项所述的方法,其中,所述共识集合对所述第二共识提案进行共识包括:
并行化地执行对所述交易提案的检查,所述共识集合中的各个共识节点根据检查结果对所述第二共识提案进行共识。
8.根据权利要求5所述的方法,其中,所述联盟链分片中的任一分片节点接收到的交易包括跨片交易,所述从中识别出与自身分片相关联的共识消息,并执行对应的交易提案包括:
执行所述跨片交易在本分片内的部分交易;
其中,该方法还包括:
检查所述跨片交易的目的地址;
将所述跨片交易在本分片内的部分交易的执行成功的结果,以及所述跨片交易的剩余部分,广播至所述目的地址所对应的目的分片;
所述目的分片中的分片节点接收到所述跨片交易的剩余部分,进行缓存、打包提案并发送给所述共识集合进行共识的操作;
所述目的分片校验所述执行成功的结果,校验通过且所述共识集合共识通过后执行所述跨片交易的剩余部分。
...
【专利技术属性】
技术研发人员:丁有振,杨春福,
申请(专利权)人:上海简苏网络科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。