一种区块块内交易数扩展方法及系统转让专利

申请号 : CN202210317947.X

文献号 : CN114422151B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 不公告发明人

申请人 : 北京微芯感知科技有限公司

摘要 :

本发明公开了一种区块块内交易数扩展方法及系统,包括以下步骤:对交易序列进行预排序并发送;主节点接收预排序交易序列并选择偏移量,打包形成候选区块,将候选区块的交易序列信息广播给各个从节点;主节点和各个从节点根据候选区块的交易序列信息获取交易,执行交易并将执行结果签名,主节点收集所有节点的执行结果并验证,将验证后的执行结果广播给各个从节点;各节点收到满足具体共识算法要求的投票数后,执行区块落库;本发明基于预排序交易序列的交易降低了交易顺序的不确定性及交易丢失的可能性;基于偏移量的调整,实现根据交易池交易数量自定义调整区块块内交易数,从而实现块内交易数的扩展。

权利要求 :

1.一种区块块内交易数扩展方法,其特征在于,包括以下步骤:S1.对交易序列进行预排序,得到预排序交易序列并发送;

S2.主节点接收预排序交易序列并选择偏移量,将上一区块偏移量和主节点的偏移量之间的交易作为候选区块,将候选区块的交易序列信息广播给各个从节点;

S3.各个从节点接收候选区块的交易序列信息,主节点和各个从节点根据候选区块的交易序列信息获取交易,执行交易并将执行结果签名,主节点收集所有节点的执行结果并验证,主节点将验证后的执行结果广播给各个从节点;

S4.主节点和各个从节点收到满足具体共识算法要求的投票数后,执行区块落库。

2.根据权利要求1所述的一种区块块内交易数扩展方法,其特征在于,偏移量的配置参数包括实际交易并发量需求、区块链系统的区块大小配置情况和出块时间配置情况。

3.根据权利要求1所述的一种区块块内交易数扩展方法,其特征在于,S2还包括主节点将打包区块信息进行广播,打包区块信息包括preHash、blockHash、时间戳和提案人签名。

4.根据权利要求1所述的一种区块块内交易数扩展方法,其特征在于,S3中主节点收集的所有节点的执行结果包括读写集hash。

5.根据权利要求1所述的一种区块块内交易数扩展方法,其特征在于,各节点独立完成预执行交易和区块打包。

6.一种区块块内交易数扩展系统,其特征在于,包括交易预排序模块和n个节点,n大于

1,选取其中一个节点为主节点,其余节点为从节点;

每个节点均包括调度模块、偏移量调整模块、交易计算模块和区块落库模块;

所述调度模块,用于接收和广播交易序列信息并获取交易,还用于收集、验证和广播执行结果;

所述偏移量调整模块,用于偏移量的选择和调整;

所述交易计算模块,用于执行交易并对执行结果签名;

所述区块落库模块,用于验证投票和执行区块落库。

7.根据权利要求6所述的一种区块块内交易数扩展系统,其特征在于,所述主节点的调度模块,用于接收预排序模块进行预排序后的交易序列,将上一区块偏移量和主节点的偏移量之间的交易作为候选区块,将候选区块的交易序列信息广播给各个从节点,还用于收集所有节点的执行结果并验证,将验证后的执行结果广播给各个从节点。

8.根据权利要求7所述的一种区块块内交易数扩展系统,其特征在于,所述从节点的调度模块,用于接收候选区块的交易序列信息并获取交易;还用于将执行结果反馈给主节点的调度模块,并接收主节点验证后的执行结果。

9.根据权利要求6所述的一种区块块内交易数扩展系统,其特征在于,所述区块落库模块,用于统计各节点收到满足具体共识算法要求的投票数并执行区块落库。

10.根据权利要求6所述的一种区块块内交易数扩展系统,其特征在于,各个节点的所述交易计算模块相互独立。

说明书 :

一种区块块内交易数扩展方法及系统

技术领域

[0001] 本发明涉及区块链技术领域,更具体的说是涉及一种区块块内交易数扩展方法及系统。

背景技术

[0002] 区块链采用区块存储交易,区块内的交易拥有严格的顺序,目前,扩展性非常弱,交易处理缓慢,在HyperledgerFabric中,区块分为普通区块和配置区块,可通过配置区块设定一个区块里面包含的交易数目和交易的大小,交易大小包含绝对交易大小以及建议交易大小,对于超过建议交易大小限制的交易,将会被放置在后续的区块中被打包;在Bitcoin中,区块大小被限制为不超过1MB。
[0003] 但是,Fabric中,配置区块中交易大小的限制使得区块块内交易数相对固定,不能动态适应交易处理规模的增加;比特币系统中区块1MB大小的限制,使得大量交易都需要排队等待被打包,区块无法处理交易规模的增加。
[0004] 因此,如何扩展区块块内交易数以适用高吞吐高并发的区块链应用场景是本领域技术人员亟需解决的问题。

发明内容

[0005] 有鉴于此,本发明提供了一种区块块内交易数扩展方法及系统以解决背景技术中提到的问题。
[0006] 为了实现上述目的,本发明采用如下技术方案:
[0007] 交易:对区块链智能合约的一次调用,包含调用智能合约的全部信息:智能合约名称、调用函数名称、参数等。
[0008] 交易预排序:节点基于一定规则,如按照交易发生时间、发送者优先级等对一批交易进行排序的操作。
[0009] 共识算法:区块链系统中各节点间为达成一致采用的计算方法。
[0010] 共识报文:共识过程广播的信息。
[0011] 偏移量:在预排序交易序列中选定的一个数量 ,基于上一区块偏移量与本区块偏移量可确定一组交易,形成一个区块。
[0012] 读写集合:通过将交易模拟执行的方式,可发现交易对世界状态的依赖和影响并用读写集合表示,其中读集合 是交易对当前世界状态依赖的key的子集,写集合 是交易对当前世界状态影响的key的子集。
[0013] 一种区块块内交易数扩展方法,包括以下步骤:
[0014] S1.对交易序列进行预排序,得到预排序交易序列并发送;
[0015] S2.主节点接收预排序交易序列并选择偏移量,将上一区块偏移量和主节点的偏移量之间的交易作为候选区块,将候选区块的交易序列信息广播给各个从节点;
[0016] S3.各个从节点接收候选区块的交易序列信息,主节点和各个从节点根据候选区块的交易序列信息获取交易,执行交易并将执行结果签名,主节点收集所有节点的执行结果并验证,主节点将验证后的执行结果广播给各个从节点;
[0017] S4.主节点和各个从节点收到满足具体共识算法要求的投票数后,执行区块落库。
[0018] 优选的,偏移量的配置参数包括实际交易并发量需求、区块链系统的区块大小配置情况和出块时间配置情况等。
[0019] 优选的,S2还包括主节点将打包区块信息进行广播,所述打包区块信息包括preHash、blockHash、时间戳和提案人签名。
[0020] 优选的,S3中主节点收集的所有节点的执行结果包括读写集合hash。
[0021] 优选的,各节点独立完成预执行交易和区块打包。
[0022] 一种区块块内交易数扩展系统,包括交易预排序模块和n个节点,n大于1,选取其中一个节点为主节点,其余节点为从节点;
[0023] 每个节点均包括调度模块、偏移量调整模块、交易计算模块和区块落库模块;
[0024] 所述调度模块,用于接收和广播交易序列信息并获取交易,还用于收集、验证和广播执行结果;
[0025] 所述偏移量调整模块,用于偏移量的选择和调整;
[0026] 所述交易计算模块,用于执行交易并对执行结果签名;
[0027] 所述区块落库模块,用于验证投票和执行区块落库。
[0028] 优选的,所述主节点的调度模块,用于接收预排序模块进行预排序后的交易序列,将上一区块偏移量和主节点的偏移量之间的交易作为候选区块,将候选区块的交易序列信息广播给各个从节点,还用于收集所有节点的执行结果并验证,将验证后的执行结果广播给各个从节点。
[0029] 优选的,所述从节点的调度模块,用于接收候选区块的交易序列信息并获取交易;还用于将执行结果反馈给主节点的调度模块,并接收主节点验证后的执行结果。
[0030] 优选的,所述区块落库模块,用于统计各节点收到满足具体共识算法要求的投票数并执行区块落库。
[0031] 优选的,各个节点的所述交易计算模块相互独立。
[0032] 经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种区块块内交易数扩展方法及系统,基于交易预排序的新型出块方案及报文压缩的共识算法,取自预排序交易序列的交易降低了交易顺序的不确定性及交易丢失的可能性;基于偏移量的调整,实现根据交易池交易数量自定义调整区块块内交易数,从而实现块内交易数的扩展,且有助于减少共识交易过多导致的高网络带宽占用问题,适用于需要高吞吐高并发的区块链应用场景。

附图说明

[0033] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0034] 图1附图为本发明提供的区块块内交易数扩展方法步骤框图;
[0035] 图2附图为本发明提供的根据偏移量打包交易示意图。

具体实施方式

[0036] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037] 本发明实施例公开了一种区块块内交易数扩展方法,包括以下步骤:
[0038] S1.对交易序列进行预排序,得到预排序交易序列并发送;
[0039] S2.主节点接收预排序交易序列并选择偏移量,将上一区块偏移量和主节点的偏移量之间的交易作为候选区块,将候选区块的交易序列信息广播给各个从节点;
[0040] S3.各个从节点接收候选区块的交易序列信息,主节点和各个从节点根据候选区块的交易序列信息获取交易,执行交易并将执行结果签名,主节点收集所有节点的执行结果并验证,主节点将验证后的执行结果广播给各个从节点;
[0041] S4.主节点和各个从节点收到满足具体共识算法要求的投票数后,执行区块落库。
[0042] 为了进一步实施上述技术方案,偏移量的配置参数包括实际交易并发量需求、区块链系统的区块大小配置情况和出块时间配置情况。
[0043] 需要说明的是:
[0044] 偏移量的选择决定了块内交易数量,基于偏移量的调整,将积压交易打包为一个区块,甚至将所有交易均打包为一个区块,实现全量交易打包,从而实现区块块内交易数可扩展。
[0045] 为了进一步实施上述技术方案,S2还包括主节点将打包区块信息进行广播,打包区块信息包括preHash、blockHash、时间戳和提案人签名。
[0046] 为了进一步实施上述技术方案,S3中主节点收集的所有节点的执行结果包括读写集hash。
[0047] 为了进一步实施上述技术方案,各节点独立完成预执行交易和区块打包。
[0048] 参与共识的各节点独立完成交易预执行和区块打包,共识过程中各节点不传递交易数据,偏移量的选择不影响整个共识及出块流程。
[0049] 一种区块块内交易数扩展系统,包括交易预排序模块和n个节点,n大于1,选取其中一个节点为主节点,其余节点为从节点;
[0050] 每个节点均包括调度模块、偏移量调整模块、交易计算模块和区块落库模块;
[0051] 调度模块,用于接收和广播交易序列信息并获取交易,还用于收集、验证和广播执行结果;
[0052] 偏移量调整模块,用于偏移量的选择和调整;
[0053] 交易计算模块,用于执行交易并对执行结果签名;
[0054] 区块落库模块,用于验证投票和执行区块落库。
[0055] 为了进一步实施上述技术方案,主节点的调度模块,用于接收预排序模块进行预排序后的交易序列,将上一区块偏移量和主节点的偏移量之间的交易作为候选区块,将候选区块的交易序列信息广播给各个从节点,还用于收集所有节点的执行结果并验证,将验证后的执行结果广播给各个从节点。
[0056] 为了进一步实施上述技术方案,从节点的调度模块,用于接收候选区块的交易序列信息并获取交易;还用于将执行结果反馈给主节点的调度模块,并接收主节点验证后的执行结果。
[0057] 为了进一步实施上述技术方案,区块落库模块,用于统计各节点收到满足具体共识算法要求的投票数并执行区块落库。
[0058] 为了进一步实施上述技术方案,各个节点的交易计算模块相互独立。
[0059] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0060] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。