当前位置: 首页 > 专利查询>深圳大学专利>正文

一种基于树状结构的分片区块链生成方法技术

技术编号:19515173 阅读:29 留言:0更新日期:2018-11-21 10:11
本申请公开了一种基于树状结构的分片区块链生成方法,所述方法包括:将服务端系统划分为至少一个分组,并分别选取各分组的领导者;所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员;验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组。本方法通过树状分组架构提高区块链框架生成区块时的效率,并且根据领导者自身本地数据库状态生成区块,改善了系统生成区块时的资源浪费现象并减小了生成区块时产生的时延。

【技术实现步骤摘要】
一种基于树状结构的分片区块链生成方法
本申请涉及区块链
,特别涉及一种基于树状结构的分片区块链生成方法。
技术介绍
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链的最大特点是无需中心化的服务节点。借助区块链技术可以降低维护高性能中心化设备的人力物力。去中心化意味着在分布式服务集群中没有中心化的配置管理节点负责确定网络中消息的顺序。但是,去中心化结构由于缺失配置管理中心使得分布式服务集群中的成员节点可能会因为网络通信信道的不可靠性导致节点之间的状态不一致,因此区块链引入了一致性协议(共识算法)用于处理去中心化的分布式集群的一致性问题。传统的共识算法包括2PC,3PC,paxo和基于paxos算法衍生出的一系列算法。共识算法被用于保证分布式系统的一致性。但是传统的共识算法往往需要集群中产生一个领导者节点用于减小用户发往集群的消息量并确定消息的顺序。但由于区块链系统没有中心节点,所以客户端需要将自己的请求发送给所有的服务节点。而不可靠信道和网络延时会使得各个节点对收到的客户端请求的视角不一致,所以区块链的一致性协议首先需要让集群内部的节点确定客户端请求的顺序,然后再决定是否能够执行客户端请求。传统的区块链是采用了选举领导者的思想,通过选举领导者并让领导者决定执行哪些客户端的请求。此外,为了保证系统的一致性和可验证性,区块链采用了单链表的形式存储已经执行的客户端请求。此外,为了避免系统中的领导者带来过多的中心化,传统区块链采用了工作量证明(proofofwork)的方式选举领导者。服务节点会根据规则尝试着找到一个满足要求的客户端请求的集合。同时,为了保证区块链网络中节点的一致性,基于单链表存储形式的一致性协议要求整个区块链服务网络每次只会产生一个客户端请求的集合,并且区块链系统要求每次生成客户端请求的集合时需要利用单向散列函数对该集合进行验证,只有符合要求的集合才能被写入数据库。而由于单向散列函数具有不可逆性,所以服务节点只能利用穷举的方式去暴力寻找符合要求的集合,找寻集合的过程往往耗时很长且需要消耗大量的计算力。申请内容鉴于现有技术的不足,本申请旨在提供一种基于树状结构的分片区块链生成方法。本申请所采用的技术方案如下:一种基于树状结构的分片区块链生成方法,其包括:将服务端系统划分为至少一个分组,并分别选取各分组的领导者;所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员;验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组。所述基于树状结构的分片区块链生成方法,其中,所述将服务端系统划分为至少一个分组,并分别选取各分组的领导者具体为:根据预设条件将所述服务端系统划分为至少一个分组,其中,各分组的成员数量均为预设数量阈值;根据各分组包含的成员的工作量证明选取领导者,其中,所述领导者为具有最小工作证明量的成员。所述基于树状结构的分片区块链生成方法,其中,所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员具体包括:所述领导者获取自身的本地数据库状态,并根据所述本地数据库状态确定可执行的客户端请求以及执行顺序;根据可执行的客户端请求以及执行顺序打包生成至少一区块,并将所述至少一区块组播至其所在分组的所有成员。所述基于树状结构的分片区块链生成方法,其中,所述验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组具体包括:所述领导者生成所述区块产生对应的投票单,并将所述投票单按照预设的环状拓扑结构依次传送至其所在分组包含的所有成员,以对所述区块包含各客户端请求进行投票;领导者将投票完成的投票单,并根据所述投票完成的投票单确定各分组对应的区块,并将所述区块同步至其他分组。所述基于树状结构的分片区块链生成方法,其中,所述验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组之后还包括:根据各分组对应的区块构建默克尔树,并计算所述默克尔树的树根的哈希值;根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者偏移量分别确定各分组下一轮的领导者;各分组下一轮的领导者重复开启下一轮的区块。所述基于树状结构的分片区块链生成方法,其中,所述根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者偏移量分别确定各分组下一轮的领导者具体包括:根据各分组包含的成员数量对所述哈希值进行取模运行,以得到各分组对应的领导者与下一轮领导者之间的距离;根据各距离按照顺时针方向确定各分组的领导者偏移量,并各分组领导者按照所述领导者偏移量进行偏移,以得到下一轮的领导者。所述基于树状结构的分片区块链生成方法,其中,所述根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者偏移量分别确定各分组下一轮的领导者之后还包括:当接到新成员加入服务端系统的请求时,新成员查询所述服务端系统包含的所有分组以及各分组包含的成员;新成员完成自身的工作量证明,根据所述工作量证明确定其对应的分组,并将所述工作量证明广播至所述分组包含的所有成员;各成员对所述新成员进行表决,根据所述表决结果确定新成员是否加入所述分组。所述基于树状结构的分片区块链生成方法,其中,所述各成员对所述新成员进行表决,根据所述表决结果确定新成员是否加入所述分组之后包括:当监听到存在分组的成员数量达到预设数量时,判断服务端系统的分裂间隔时间是否达到预设时间阈值;当达到预设时间阈值时,各分组包含的各成员完成其自身的工作量证明,并将工作量证明广播至其所在分组的其他成员;各分组的领导者根据接收到工作量证明按照预设条件将其所在分组划分为至少一个子分组,以生成服务端系统新的分组。所述基于树状结构的分片区块链生成方法,其中,所述各分组的领导者根据接收到工作量证明按照预设条件将其所在分组划分为至少一个子分组,以生成服务端系统新的分组具体包括:分别获取各子分组包含的成员数量,并根据所述成员数量确定各子分组是否满足预设条件的第一子分组;将所有未满足预设条件的第一子分组去除,以生成服务端系统新的分组。所述基于树状结构的分片区块链生成方法,其中,所述各分组的领导者根据接收到工作量证明按照预设条件将其所在分组划分为至少一个子分组,以生成服务端系统新的分组之后还包括:领导者获取其所在分组划分得到的子分组的数量;当所述子分组的数量为1时,将所述子分组对应分组包含的客户端请求同步至所述子分组;当所述子分组的数量为大于1时,将所述子分组对应分组包含的客户端请求按照子分组生成顺序以及子分组的数量均分至各子分组。有益效果:与现有技术相比,本申请提供了一种基于树状结构的分片区块链生成方法,所述方法包括:将服务端系统划分为至少一个分组,并分别选取各分组的领导者;所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员;验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组。本方法通过树状分组架构提高区块链框架生成区块时的效率,并且根据领导者自身本地数据库状态生成区块,改善了系统生成区块时本文档来自技高网...

【技术保护点】
1.一种基于树状结构的分片区块链生成方法,其特征在于,其包括:将服务端系统划分为至少一个分组,并分别选取各分组的领导者;所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员;验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组。

【技术特征摘要】
1.一种基于树状结构的分片区块链生成方法,其特征在于,其包括:将服务端系统划分为至少一个分组,并分别选取各分组的领导者;所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员;验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组。2.根据权利要求1所述基于树状结构的分片区块链生成方法,其特征在于,所述将服务端系统划分为至少一个分组,并分别选取各分组的领导者具体为:根据预设条件将所述服务端系统划分为至少一个分组,其中,各分组的成员数量均为预设数量阈值;根据各分组包含的成员的工作量证明选取领导者,其中,所述领导者为具有最小工作证明量的成员。3.根据权利要求1所述基于树状结构的分片区块链生成方法,其特征在于,所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员具体包括:所述领导者获取自身的本地数据库状态,并根据所述本地数据库状态确定可执行的客户端请求以及执行顺序;根据可执行的客户端请求以及执行顺序打包生成至少一区块,并将所述至少一区块组播至其所在分组的所有成员。4.根据权利要求1所述基于树状结构的分片区块链生成方法,其特征在于,所述验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组具体包括:所述领导者生成所述区块产生对应的投票单,并将所述投票单按照预设的环状拓扑结构依次传送至其所在分组包含的所有成员,以对所述区块包含各客户端请求进行投票;领导者将投票完成的投票单,并根据所述投票完成的投票单确定各分组对应的区块,并将所述区块同步至其他分组。5.根据权利要求1-4任一所述基于树状结构的分片区块链生成方法,其特征在于,所述验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组之后还包括:根据各分组对应的区块构建默克尔树,并计算所述默克尔树的树根的哈希值;根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者偏移量分别确定各分组下一轮的领导者;各分组下一轮的领导者重复开启下一轮的区块。6.根据权利要求5所述基于树状结构的分片区块链生成方法,其特征在于,所述根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者...

【专利技术属性】
技术研发人员:蔡树彬杨凝盛明仲
申请(专利权)人:深圳大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1