区块链交易处理方法及系统与流程

文档序号:21323604发布日期:2020-06-30 20:57阅读:339来源:国知局
区块链交易处理方法及系统与流程

本发明涉及区块链技术领域,尤其涉及区块链交易处理方法及系统。



背景技术:

区块链是一个去中心化去信任的集体维护的可靠数据库,目前面临的最大问题之一就是可扩展性。所有主流的平台系统都在努力提高每秒的交易量。事实上,当今的比特币网络平均每秒可以处理7-10笔交易、以太坊网络每秒处理20-30笔交易,这一数字远低于像维萨visa这样的中心化支付系统,后者平均每秒能处理约8000笔交易。缓慢的交易处理速度造成了区块链系统的一个主要问题:大量的未完成交易阻塞了网络,使得那些诸如实时支付这样的应用程序很难在区块链上一展身手,确认支付的时间拉长,就会给用户带来诸多不便,这也是为什么visa这样的信用卡支付方式仍然更具吸引力的主要原因之一。



技术实现要素:

本发明的目的在于提供一种区块链交易处理方法及系统,能够增加区块链网络每秒的交易量,使得区块链网络的交易吞吐量得到提升。

为解决上述技术问题,根据本发明的一个方面,提供了一种区块链交易处理方法,应用于区块链网络上的节点,其中,节点具有主碎片以及m个子碎片;该方法包括:主碎片将若干个待处理交易划分为a个交易集合,并分配a个交易集合至m个子碎片进行处理;其中,其中,a和m为大于0的自然数;主碎片获取各子碎片新生成的子区块,并根据各子区块进行区块打包;主碎片对打包生成的新区块进行广播;其中,若新区块在区块链网络中验证通过,则新区块作为有效区块记录在区块链网络的各节点中。

本发明的实施例还提供了一种区块链交易处理系统,包括:主碎片以及m个子碎片;主碎片用于将若干个待处理交易划分为a个交易集合,并分配a个交易集合至m个子碎片进行处理;其中,a和m为大于0的自然数;主碎片用于获取各子碎片新生成的子区块,并根据各子区块进行区块打包;主碎片用于对打包生成的新区块进行广播;其中,若新区块在区块链网络中验证通过,则新区块作为有效区块记录在区块链网络的各节点中。

本发明实施例相对于现有技术而言,区块链网络中的节点包括一主碎片以及若干个子碎片,主碎片将各待处理交易划分为a个交易集合,并将所划分出的a个交易集合分配到子碎片进行处理,而后,主碎片根据各子碎片生成的新的子区块进行区块的打包,以便于后续新区块的广播以及上链。这样,利用主碎片对待处理交易进行分配,利用子碎片对交易进行处理,以及,利用主碎片进行信息的统筹、主网通信,实现了交易的并行处理,提高了处理效率,在保证区块链一致性和可靠性的情况下,增加了区块链网络每秒的交易量,使得区块链网络的交易吞吐量得到提升。

可选地,a等于m,分配a个交易集合至m个子碎片进行处理,具体包括:平均分配a个交易集合至m个子碎片进行处理。这样,实现了子碎片的充分利用,交易的并行处理效率较高。

可选地,分配a个交易集合至m个子碎片进行处理后,还包括:若第一预设时长内生成的所有子区块中未对应到全部的待处理交易,则主碎片放弃各待处理交易,并生成错误日志。这样,避免了节点长时间无响应导致资源浪费的情况,并能够帮助技术人员及时地进行故障排查。

可选地,若一子碎片生成子区块超过第二预设时长的次数超过预设次数,则认定子碎片故障。

可选地,区块链交易处理方法还包括:若主碎片故障,则移除主碎片,并在m个子碎片中选取一子碎片作为新的主碎片。这样,及时地选举出新的子碎片来替换故障主碎片,能够保证节点的正常运作,避免主碎片故障所导致的节点瘫痪的情况。

可选地,若某一子碎片故障,则移除子碎片。

可选地,主碎片与m个子碎片的共识算法相同,从而能够实现主碎片与各个子碎片的一致性,有效地保证了节点的稳定性。

可选地,若区块链网络中新增节点,则新增节点获取并同步区块链网络中的最长区块链。

根据本发明的另一方面,提供了一种区块链交易处理装置,该装置包括:主碎片单元以及m个子碎片单元;主碎片单元用于将若干个待处理交易划分为a个交易集合,并分配a个交易集合至m个子碎片单元进行处理;其中,a和m为大于0的自然数;主碎片单元用于获取各子碎片单元新生成的子区块,并根据各子区块进行区块打包;主碎片单元用于对打包生成的新区块进行广播;其中,若新区块在区块链网络中验证通过,则新区块作为有效区块记录在区块链网络的各节点中。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种区块链交易处理方法的流程图;

图2是本发明实施例提供的一种区块链交易处理方法的交易划分示意图;

图3是本发明实施例提供的一种区块链交易处理方法的区块生成示意图;

图4是本发明实施例提供的一种区块链网络的概览图;

图5是本发明实施例提供的一种区块链网络的细节图;

图6是本发明实施例提供的一种区块链交易处理方法的区块链示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请的权利要求的保护的范围。

第一实施例

本发明第一实施例涉及一种区块链交易处理方法,具体流程如图1所示。本实施例中的交易处理方法应用于区块链网络上的节点,其中,节点具有主碎片以及m个子碎片,m为大于0的自然数。以下对本实施例中区块链交易处理方法的具体实现进行说明,步骤如下:

步骤101,主碎片将若干个待处理交易划分为a个交易集合,并分配a个交易集合至m个子碎片进行处理。

具体地说,a的数值可以由技术人员预先设置并保存在节点中。如,a可以为3。如图2所示,给出了n个待处理交易,主碎片将这n个待处理交易划分为3份,分别为第1个交易至第i个交易的交易集合[第1个待处理交易,第i个待处理交易],第i+1个交易到第j个交易的交易集合[第i+1个待处理交易,第j个待处理交易],第j+1个交易至第n个交易的交易集合[第j+1个待处理交易,第n个待处理交易]。其中,i,j均为大于0的自然数,i,j的数值可以由技术人员预设,即,i,j的数值固定,也可以由主碎片根据实际需要划分的待处理交易的个数进行选择。如,假设待处理交易的个数为n,主碎片可以根据余数算法nmod3=c,设置i=c;j=2c。

本实施例中,主碎片可以根据子碎片的个数进行交易集合的划分,即令a等于m。这样,主碎片可以将所划分出的a个交易集合平均分配给m个子碎片,以实现子碎片的充分利用,便于后续交易并行处理效率的提高。其中,m的数值可以由技术人员预先设置并保存在节点中,也可以由主碎片根据实际待处理交易的数量n进行选择。如,节点中预存有待处理交易的数量区间与m的数值的对应关系,以便于主碎片根据当前待处理交易的数量n所处的数值区间,设置出对应数量的子碎片。

步骤102,主碎片获取各子碎片新生成的子区块,并根据各子区块进行区块打包。

具体地说,各子碎片对分配到的交易集合中的各待处理交易进行处理,打包生成一个或多个子区块,主碎片定期获取各子碎片新生成的各子区块的哈希值,将这些哈希值记录在最新生成的区块中,从而实现一个或多个新区块的打包。

如,以上述n个待处理交易被划分为3份为例,其中一个子碎片生成子区块0,一个子碎片生成子区块1,一个子碎片生成子区块3,则主碎片生成新的区块0中包括子区块0、子区块1以及子区块2的信息。如,区块0中可以记录子区块0、子区块1以及子区块2的哈希值,如图3所示。

步骤103,主碎片对打包生成的新区块进行广播。

具体地说,主碎片对打包形成的最新区块进行广播,区块链网络中的各节点接收新的区块,对该新的区块进行验证,若验证通过,则该新的区块便会作为有效区块被各节点记录,加入区块链中,区块链由此不断变长。

本发明实施例相对于现有技术而言,区块链网络中的节点包括一主碎片以及若干个子碎片,主碎片将各待处理交易划分为a个交易集合,并将所划分出的a个交易集合分配到子碎片进行处理,而后,主碎片根据各子碎片生成的新的子区块进行区块的打包,以便于后续新区块的广播以及上链。这样,利用主碎片对待处理交易进行分配,利用子碎片对交易进行处理,以及,利用主碎片进行信息的统筹、主网通信,实现了交易的并行处理,提高了处理效率,在保证区块链一致性和可靠性的情况下,增加了区块链网络每秒的交易量,使得区块链网络的交易吞吐量得到提升。

需要注意的是,由于区块链网络是由多个节点组成的分布式网络(如图4所示),各交易通过某一节点输入、发起后,便可以通过主网到达任一节点,即,区块链网络中的各个节点均能够获知该交易,以进行处理计算。因此,本实施例中所提及的具有主碎片以及m个子碎片的节点可以为区块链网络上的任意一节点(如图5所示)。也就是说,区块链网络上的每一节点都可以具有主碎片以及m个子碎片。

其中,如果区块链网络中的所有节点都包括子碎片以及主碎片,且所有交易在节点中都可以通过上述步骤101至步骤103进行处理,就会出现如图6所示的区块链。即,每一区块中包括打包该区块的节点中子碎片生成的子区块的信息,且每一新生成的区块中包括上一区块的信息。这样,即使区块链中新增节点,新增节点获取并同步最长区块链即可实现信息的同步,保证了区块链的一致性。

值得一提的是,各节点中的主碎片与其关联的各子碎片的共识算法是相同的,各主碎片的共识算法是相同的,因此各主碎片之间可以相互通信,主碎片可以与其关联的各子碎片进行通信,从而能够实现节点上交易的并行处理,以及区块链上交易的记录同步。

第二实施例

本发明第二实施例涉及一种区块链交易处理方法。本发明第二实施例在第一实施例的基础上加以改进,主要改进之处在于:在本发明第二实施例中,若第一预设时长内生成的所有子区块中未对应到全部的待处理交易,则主碎片放弃各待处理交易,并生成错误日志。这样,避免了节点长时间无响应导致资源浪费的情况,并能够帮助技术人员及时地进行故障排查。以下进行具体说明:

具体地说,主碎片在获取到全部子碎片生成的子区块后,才进行新区块的打包,以避免交易的遗漏,保证区块链的一致性。然而,如若某一子碎片故障,则该子碎片便不能定期生成子区块,如此便会造成主碎片一直不进行新区块打包,节点长时间无响应的情况。因此,为提升节点的资源率,避免上述情况的发生,还设置第一预设时长内生成的所有子区块中未对应到全部的待处理交易时,主碎片放弃各待处理交易,并生成错误日志,以便于技术人员及时地进行故障排查。其中,第一预设时长可以等于子碎片定期生成子区块的时长,也可以大于子碎片定期生成子区块的时长。

更具体地说,若一子碎片生成子区块超过第二预设时长的次数超过预设次数,则认定子碎片故障。此时,主碎片可以将该子碎片的信息反映在错误日志中,以便于技术人员进行及时修复,或者主碎片可以直接移除该子碎片,以保证节点的正常运行。其中,预设次数可以由技术人员预设,第二预设时长可以等于子碎片定期生成子区块的时长,也可以略大于子碎片定期生成子区块的时长。并且,在实际操作时,还可以设置第二预设时长小于或等于第一预设时长。

需要注意的是,若主碎片故障,则可以移除主碎片,并在m个子碎片中选取一子碎片作为新的主碎片。这样,及时地选举出新的子碎片来替换故障主碎片,能够保证节点的正常运作,避免主碎片故障所导致的节点瘫痪的情况。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

第三实施例

本发明第三实施例涉及一种区块链交易处理系统,包括:主碎片以及m个子碎片;其中,m为大于0的自然数。主碎片用于将若干个待处理交易划分为a个交易集合,并分配a个交易集合至m个子碎片进行处理;其中,n为大于0的自然数。主碎片用于获取各子碎片新生成的子区块,并根据各子区块进行区块打包。主碎片用于对打包生成的新区块进行广播。其中,若新区块在区块链网络中验证通过,则新区块作为有效区块记录在区块链网络的各节点中。

具体地说,a的数值可以由技术人员预先设置并保存在节点中。如,a可以为3。如图2所示,给出了n个待处理交易,主碎片将这n个待处理交易划分为3份,分别为第1个交易至第i个交易的交易集合[第1个待处理交易,第i个待处理交易],第i+1个交易到第j个交易的交易集合[第i+1个待处理交易,第j个待处理交易],第j+1个交易至第n个交易的交易集合[第j+1个待处理交易,第n个待处理交易]。其中,i,j均为大于0的自然数,i,j的数值可以由技术人员预设,即,i,j的数值固定,也可以由主碎片根据实际需要划分的待处理交易的个数进行选择。如,假设待处理交易的个数为n,主碎片可以根据余数算法nmod3=c,设置i=c;j=2c。

本实施例中,主碎片可以根据子碎片的个数进行交易集合的划分,即令a等于m。这样,主碎片可以将所划分出的a个交易集合平均分配给m个子碎片,以实现子碎片的充分利用,便于后续交易并行处理效率的提高。其中,m的数值可以由技术人员预先设置并保存在节点中,也可以由主碎片根据实际待处理交易的数量n进行选择。如,节点中预存有待处理交易的数量区间与m的数值的对应关系,以便于主碎片根据当前待处理交易的数量n所处的数值区间,设置出对应数量的子碎片。

具体地说,各子碎片对分配到的交易集合中的各待处理交易进行处理,打包生成一个或多个子区块,主碎片定期获取各子碎片新生成的各子区块的哈希值,将这些哈希值记录在最新生成的区块中,从而实现一个或多个新区块的打包。

如,以上述n个待处理交易被划分为3份为例,其中一个子碎片生成子区块0,一个子碎片生成子区块1,一个子碎片生成子区块3,则主碎片生成新的区块0中包括子区块0、子区块1以及子区块2的信息。如,区块0中可以记录子区块0、子区块1以及子区块2的哈希值。

具体地说,主碎片对打包形成的最新区块进行广播,区块链网络中的各节点接收新的区块,对该新的区块进行验证,若验证通过,则该新的区块便会作为有效区块被各节点记录,加入区块链中,区块链由此不断变长。

更具体地说,由于区块链网络是由多个节点组成的分布式网络,各交易通过某一节点输入、发起后,便可以通过主网到达任一节点,即,区块链网络中的各个节点均能够获知该交易,以进行处理计算。因此,本实施例中所提及的区块链交易处理系统可以理解为区块链网络上的任意一节点。也就是说,区块链网络上的每一节点都可以具有主碎片以及m个子碎片。

不难发现,本实施例为与第一实施例相对应的系统实施例,本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。

第四实施例

本发明第四实施例涉及一种区块链交易处理系统。第四实施例在第三实施例的基础上加以改进,主要改进之处在于:在本发明第四实施例中,若第一预设时长内生成的所有子区块中未对应到全部的待处理交易,则主碎片还用于放弃各待处理交易,并生成错误日志。这样,避免了节点长时间无响应导致资源浪费的情况,并能够帮助技术人员及时地进行故障排查。

不难发现,本实施例为与第二实施例相对应的系统实施例,本实施例可与第二实施例互相配合实施。第二实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第二实施例中。

第五实施例

本发明第五实施例提供了一种区块链交易处理装置,该装置包括:主碎片单元以及m个子碎片单元。主碎片单元用于将若干个待处理交易划分为a个交易集合,并分配a个交易集合至m个子碎片单元进行处理;其中,a和m为大于0的自然数;主碎片单元用于获取各子碎片单元新生成的子区块,并根据各子区块进行区块打包;主碎片单元用于对打包生成的新区块进行广播;其中,若新区块在区块链网络中验证通过,则新区块作为有效区块记录在区块链网络的各节点中。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1