一种区块链的分片方法及装置制造方法及图纸

技术编号:21480064 阅读:17 留言:0更新日期:2019-06-29 05:21
本申请公开了一种区块链的分片方法及装置,通过根据新节点接收的K个分区告知响应,利用K近邻分类算法,确定新节点所属的目标网络分区,以便新节点加入该目标网络分区中。由于K近邻分类算法能够根据分区告知响应筛选出包括新节点的近邻节点最多的网络分区,因而利用K近邻分类算法能够将新节点划分至包括其近邻节点最多的网络分区中,使得距离较近的节点能够被划分至同一个网络分区,提高了网络分区内不同节点之间的通信效率,进而提高了网络分区中交易处理效率。另外,每个网络分区能够独自处理交易,使得每个分片能够并行处理不同的交易,从而提高交易处理和确认的并发度,进而提高整个区块链网络的吞吐量。

【技术实现步骤摘要】
一种区块链的分片方法及装置
本申请涉及区块链
,尤其涉及一种区块链的分片方法及装置。
技术介绍
传统的区块链是单链结构,在某个节点进行交易时需要区块链网络中的所有节点都进行参与,而且只有当所有节点达成共识时,该交易才能够真正被确认下来。然而,随着区块链网络中节点数量的增加,达成全局共识所需的时间也在不断增加,使得整个区块链网络的吞吐量受到了极大影响。为了解决上述问题,可以对区块链网络进行扩容,而且分片技术是一种常见的扩容方法。然而,如何进行准确地实现区块链的分片是一个亟待解决的问题。
技术实现思路
为了解决现有技术中存在的以上技术问题,本申请提供一种区块链的分片方法及装置,能够实现区块链网络的分片目的,使得每个分片能够并行处理不同的交易,从而提高交易处理和确认的并发度,进而提高整个区块链网络的吞吐量。为了实现上述目的,本申请提供的技术方案如下:本申请提供一种区块链的分片方法,包括:当新节点加入区块链网络时,所述新节点向所述区块链网络中的已有节点发送分区获取请求,以便所述已有节点根据所述分区获取请求向所述新节点反馈分区告知响应;其中,所述区块链网络包括至少一个网络分区;所述网络分区包括至少一个所述已有节点;所述分区告知响应包括已有节点所属的网络分区;所述新节点按照所述分区告知响应的到达时间,接收最先到达的K个分区告知响应;所述新节点根据接收的K个分区告知响应,利用K近邻分类算法,确定目标网络分区,以便所述新节点加入所述目标网络分区中。可选的,当所述新节点加入所述目标网络分区之后,还包括:判断所述目标网络分区的节点数是否达到第一预设阈值;当所述目标网络分区的节点数达到第一预设阈值时,所述目标网络分区分裂为第一网络分区和第二网络分区。可选的,所述目标网络分区分裂为第一网络分区和第二网络分区,具体包括:利用预设选举算法选举出所述目标网络分区的管理节点,作为第一管理节点;根据所述目标网络分区中所有已有节点到所述第一管理节点的距离,获取到所述第一管理节点距离最远的已有节点,作为第二管理节点;将所述第一管理节点作为第一网络分区的管理节点,并将所述第二管理节点作为第二网络分区的管理节点;比较所述目标网络分区中所有已有节点到所述第一管理节点的距离与所述目标网络分区中所有已有节点到所述第二管理节点的距离,并将距离所述第一管理节点较近的已有节点加入到第一网络分区,将距离所述第二管理节点较近的已有节点加入到第二网络分区。可选的,还包括:当旧节点从第三网络分区中退出之后,第三管理节点向所述区块链网络中除所述第三网络分区以外的其他网络分区发送心跳信号,以便所述其他网络分区根据所述心跳信号生成反馈信号;其中,所述第三管理节点为所述第三网络分区的管理节点;所述心跳信号携带有所述第三网络分区的节点数;所述反馈信号携带有是否与所述第三网络分区进行合并的信息;当所述反馈信号携带有与所述第三网络分区进行合并的信息时,则所述第三管理节点根据所述反馈信号对应的网络分区确定待合并网络分区,并将所述第三网络分区与所述待合并网络分区进行合并。可选的,所述其他网络分区根据所述心跳信号生成反馈信号,具体包括:将所述心跳信号所携带的第三网络分区的节点数和当前网络分区的节点数进行加和,得到节点数总和;当确定所述节点数总和小于第二预设阈值时,则生成携带有与所述第三网络分区进行合并的信息的反馈信号;其中,所述第二预设阈值小于所述第一预设阈值。可选的,当所述第三管理节点接收到至少一个网络分区发送的携带有与所述第三网络分区进行合并的信息的反馈信号时,则所述第三管理节点根据所述反馈信号对应的网络分区确定待合并网络分区,具体包括:所述第三管理节点将最先接收到的所述携带有与所述第三网络分区进行合并的信息的反馈信号对应的网络分区作为待合并网络分区。可选的,所述第三管理节点向所述区块链网络中除所述第三网络分区以外的其他网络分区发送心跳信号,具体包括:所述第三管理节点向预设数量的网络分区发送心跳信号,其中,所述预设数量的网络分区是从所述区块链网络中除所述第三网络分区以外的其他网络分区中选取的距离所述第三网络分区最近的网络分区。本申请还提供了一种区块链的分片装置,包括:分区获取请求发送单元,用于当新节点加入区块链网络时,所述新节点向所述区块链网络中的已有节点发送分区获取请求,以便所述已有节点根据所述分区获取请求向所述新节点反馈分区告知响应;其中,所述区块链网络包括至少一个网络分区;所述网络分区包括至少一个所述已有节点;所述分区告知响应包括已有节点所属的网络分区;分区告知响应接收单元,用于所述新节点按照所述分区告知响应的到达时间,接收最先到达的K个分区告知响应;分区确定单元,用于所述新节点根据接收的K个分区告知响应,利用K近邻分类算法,确定目标网络分区,以便所述新节点加入所述目标网络分区中。可选的,还包括:判断单元,用于当所述新节点加入所述目标网络分区之后,判断所述目标网络分区的节点数是否达到第一预设阈值;分裂单元,用于当所述目标网络分区的节点数达到第一预设阈值时,所述目标网络分区分裂为第一网络分区和第二网络分区。可选的,还包括:心跳信号发送单元,用于当旧节点从第三网络分区中退出之后,第三管理节点向所述区块链网络中除所述第三网络分区以外的其他网络分区发送心跳信号;其中,所述第三管理节点为所述第三网络分区的管理节点;所述心跳信号携带有所述第三网络分区的节点数;反馈信号生成单元,用于所述其他网络分区根据所述心跳信号生成反馈信号;其中,所述反馈信号携带有是否与所述第三网络分区进行合并的信息;分区合并单元,用于当所述反馈信号携带有与所述第三网络分区进行合并的信息时,则所述第三管理节点根据所述反馈信号对应的网络分区确定待合并网络分区,并将所述第三网络分区与所述待合并网络分区进行合并。与现有技术相比,本申请至少具有以下优点:本申请提供的区块链的分片方法,通过根据新节点接收的K个分区告知响应,利用K近邻分类算法,确定新节点所属的目标网络分区,以便新节点加入该目标网络分区中。由于新节点接收的K个分区告知响应是由区块链网络中距离新节点最近的K个已有节点发送的,而且K近邻分类算法能够筛选出包括新节点的近邻节点最多的网络分区,因而利用K近邻分类算法能够将新节点划分至包括其近邻节点最多的网络分区中,使得距离较近的节点能够被划分至同一个网络分区,如此能够提高了网络分区内不同节点之间的通信效率,进而提高了网络分区中交易处理效率。另外,区块链网络包括多个网络分区,使得每个网络分区能够独自地处理交易,使得每个分片能够并行处理不同的交易,从而提高交易处理和确认的并发度,进而提高整个区块链网络的吞吐量。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本申请方法实施例一提供的区块链的分片方法流程图;图2为本申请实施例提供的S103的一种实施方式的示意图;图3为本申请方法实施例二提供的区块链的分片方法的流程图;图4为本申请实施例提供的Paxos-like算法的示意图;图5为本申请实本文档来自技高网...

【技术保护点】
1.一种区块链的分片方法,其特征在于,包括:当新节点加入区块链网络时,所述新节点向所述区块链网络中的已有节点发送分区获取请求,以便所述已有节点根据所述分区获取请求向所述新节点反馈分区告知响应;其中,所述区块链网络包括至少一个网络分区;所述网络分区包括至少一个所述已有节点;所述分区告知响应包括已有节点所属的网络分区;所述新节点按照所述分区告知响应的到达时间,接收最先到达的K个分区告知响应;所述新节点根据接收的K个分区告知响应,利用K近邻分类算法,确定目标网络分区,以便所述新节点加入所述目标网络分区中。

【技术特征摘要】
1.一种区块链的分片方法,其特征在于,包括:当新节点加入区块链网络时,所述新节点向所述区块链网络中的已有节点发送分区获取请求,以便所述已有节点根据所述分区获取请求向所述新节点反馈分区告知响应;其中,所述区块链网络包括至少一个网络分区;所述网络分区包括至少一个所述已有节点;所述分区告知响应包括已有节点所属的网络分区;所述新节点按照所述分区告知响应的到达时间,接收最先到达的K个分区告知响应;所述新节点根据接收的K个分区告知响应,利用K近邻分类算法,确定目标网络分区,以便所述新节点加入所述目标网络分区中。2.根据权利要求1所述的方法,其特征在于,当所述新节点加入所述目标网络分区之后,还包括:判断所述目标网络分区的节点数是否达到第一预设阈值;当所述目标网络分区的节点数达到第一预设阈值时,所述目标网络分区分裂为第一网络分区和第二网络分区。3.根据权利要求1所述的方法,其特征在于,所述目标网络分区分裂为第一网络分区和第二网络分区,具体包括:利用预设选举算法选举出所述目标网络分区的管理节点,作为第一管理节点;根据所述目标网络分区中所有已有节点到所述第一管理节点的距离,获取到所述第一管理节点距离最远的已有节点,作为第二管理节点;将所述第一管理节点作为第一网络分区的管理节点,并将所述第二管理节点作为第二网络分区的管理节点;比较所述目标网络分区中所有已有节点到所述第一管理节点的距离与所述目标网络分区中所有已有节点到所述第二管理节点的距离,并将距离所述第一管理节点较近的已有节点加入到第一网络分区,将距离所述第二管理节点较近的已有节点加入到第二网络分区。4.根据权利要求1所述的方法,其特征在于,还包括:当旧节点从第三网络分区中退出之后,第三管理节点向所述区块链网络中除所述第三网络分区以外的其他网络分区发送心跳信号,以便所述其他网络分区根据所述心跳信号生成反馈信号;其中,所述第三管理节点为所述第三网络分区的管理节点;所述心跳信号携带有所述第三网络分区的节点数;所述反馈信号携带有是否与所述第三网络分区进行合并的信息;当所述反馈信号携带有与所述第三网络分区进行合并的信息时,则所述第三管理节点根据所述反馈信号对应的网络分区确定待合并网络分区,并将所述第三网络分区与所述待合并网络分区进行合并。5.根据权利要求4所述的方法,其特征在于,所述其他网络分区根据所述心跳信号生成反馈信号,具体包括:将所述心跳信号所携带的第三网络分区的节点数和当前网络分区的节点数进行加和,得到节点数总和;当确定所述节点数总和小于第二预设阈值时,则生成携带有与所述第三网络分区进行...

【专利技术属性】
技术研发人员:金思惠子
申请(专利权)人:上海优扬新媒信息技术有限公司
类型:发明
国别省市:上海,31

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

1