CN114237900A - 区块链业务交易执行方法、装置、设备及可读存储介质 - Google Patents
区块链业务交易执行方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114237900A CN114237900A CN202111572625.1A CN202111572625A CN114237900A CN 114237900 A CN114237900 A CN 114237900A CN 202111572625 A CN202111572625 A CN 202111572625A CN 114237900 A CN114237900 A CN 114237900A
- Authority
- CN
- China
- Prior art keywords
- transaction
- information
- intelligent contract
- performance index
- parallelism
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种区块链业务交易执行方法、装置、设备及可读存储介质,所述方法包括:收集本节点的设备信息作为信息上报交易提交;根据信息上报交易将设备信息记录在智能合约中,并将信息上报交易广播给其他共识节点;接收其他共识节点广播的信息上报交易,并将信息上报交易中其他共识节点的设备信息记录在智能合约中;根据智能合约中记录的各个共识节点的设备信息计算得到并行度,并将并行度记录在智能合约中;在执行区块中的业务交易时,按照智能合约中记录的并行度启动多个线程并行执行各个业务交易。本发明综合考虑了联盟链中各个共识节点整体的计算资源情况,避免了单纯提升并行度而导致过度并行反而导致性能下降的情况。
Description
技术领域
本发明涉及金融科技技术领域,尤其涉及一种区块链业务交易执行方法、装置、设备及可读存储介质。
背景技术
区块链技术最开始主要是作为分布式账本来使用,其中最典型的场景就是转账场景。转账场景是一个高频场景,特别是多账户对单账户转账的场景。在将区块链应用于多对一转账的场景时,对区块链的交易执行性能要求较高。目前,可通过一些交易并行执行机制来提升区块链交易执行性能,但是,单纯提高并行度,并不能一直提升交易执行性能,而且过度并行会导致互相竞争抢占资源,导致资源切换成本变高性能下降。
发明内容
本发明的主要目的在于提供一种区块链业务交易执行方法、装置、设备及可读存储介质,旨在解决目前单纯通过提高并行度来提升区块链交易执行性能的方法可能会因为过度并行反而导致性能下降的技术问题。
为实现上述目的,本发明提供一种区块链业务交易执行方法,所述方法应用于联盟链中的共识节点,所述方法包括以下步骤:
收集本节点的第一设备信息并将所述第一设备信息作为第一信息上报交易提交;
根据提交的所述第一信息上报交易将所述第一设备信息记录在智能合约中,并将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点;
接收其他各个共识节点广播的第二信息上报交易,并将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中;
根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度,并将所述并行度记录在所述智能合约中;
在执行目标区块中的业务交易时,按照所述智能合约中记录的所述并行度启动多个线程并行执行所述目标区块中的各个业务交易。
可选地,所述根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度的步骤包括:
根据所述智能合约中记录的第i个共识节点的设备信息计算得到第i个共识节点的性能指标值;
将各个共识节点的性能指标值按照从大到小顺序排序后,选取前n-f个性能指标值中的最小性能指标值,其中,n为所述联盟链中共识节点的个数,3f+1=n;
根据所述最小性能指标值计算得到并行度。
可选地,所述第i个共识节点的设备信息包括第i个共识节点的CPU个数和CPU频率;
所述根据所述智能合约中记录的第i个共识节点的设备信息计算得到第i个共识节点的性能指标值的步骤包括:
将所述智能合约中记录的第i个共识节点的CPU个数和CPU频率相乘,得到第i个共识节点的第一性能指标值;
将所述智能合约中记录的第i个共识节点的CPU个数作为所述第i个共识节点的第二性能指标值;
所述将各个共识节点的性能指标值按照从大到小顺序排序后,选取前n-f个性能指标值中的最小性能指标值的步骤包括:
将各个共识节点的第一性能指标值按照从大到小顺序排序后,选取前n-f个第一性能指标值中的最小第一性能指标值;
将各个共识节点的第二性能指标值按照从大到小顺序排序后,选取前n-f个第二性能指标值中的最小第二性能指标值;
所述根据所述最小性能指标值计算得到并行度的步骤包括:
将所述最小第一性能指标值除以所述最小第二性能指标值后四舍五入处理得到并行度。
可选地,所述按照所述智能合约中记录的所述并行度启动多个线程并行执行所述目标区块中的各个业务交易的步骤包括:
将所述目标区块中的各个业务交易进行划分得到多个交易集,其中,一个所述交易集中包含至少一个业务交易,交易集的个数与所述智能合约中记录的所述并行度相同;
针对各所述交易集分别启动一个线程,通过各所述线程并行执行对应的交易集,其中,各所述线程分别按照串行方式执行对应交易集中的各个业务交易。
可选地,所述将所述目标区块中的各个业务交易进行划分得到多个交易集的步骤包括:
对所述目标区块中的任一目标业务交易,将所述目标业务交易在所述目标区块中的索引按所述智能合约中记录的所述并行度取模得到取模结果;
根据所述取模结果确定所述目标业务交易对应的目标子账号编号,以在执行所述目标业务交易时将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号;
将对应同一子账号编号的各个业务交易构建为一个交易集。
可选地,执行所述目标业务交易的步骤包括:
通过所述智能合约检测所述目标子账号编号对应的转账子账号是否存在;
若存在,则将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号进行交易执行;
若不存在,则通过智能合约创建一个转账子账号作为所述目标子账号编号对应的转账子账号,并将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号进行交易执行。
可选地,所述将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点的步骤包括:
采用本节点的私钥对所述第一信息上报交易进行签名,将签名后的第一信息上报交易广播给所述联盟链中的其他各个共识节点;
所述将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中的步骤包括:
采用其他各个共识节点的公钥对经过签名的所述第二信息上报交易进行签名验证,在签名验证通过时将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中。
为实现上述目的,本发明还提供一种区块链业务交易执行装置,所述装置部署于联盟链中的共识节点,所述装置包括:
信息收集模块,用于收集本节点的第一设备信息并将所述第一设备信息作为第一信息上报交易提交;
合约模块,用于根据提交的所述第一信息上报交易将所述第一设备信息记录在智能合约中,并将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点;
所述合约模块还用于接收其他各个共识节点广播的第二信息上报交易,并将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中;
所述合约模块还用于根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度,并将所述并行度记录在所述智能合约中;
并行执行模块,用于在执行目标区块中的业务交易时,按照所述智能合约中记录的所述并行度启动多个线程并行执行所述目标区块中的各个业务交易。
为实现上述目的,本发明还提供一种区块链业务交易执行设备,所述区块链业务交易执行设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块链业务交易执行程序,所述区块链业务交易执行程序被所述处理器执行时实现如上所述的区块链业务交易执行方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有区块链业务交易执行程序,所述区块链业务交易执行程序被处理器执行时实现如上所述的区块链业务交易执行方法的步骤。
本发明中,通过共识节点收集本节点的设备信息并将设备信息作为信息上报交易提交,根据提交的信息上报交易将设备信息记录在智能合约中,并将信息上报交易广播给所述联盟链中的其他各个共识节点;接收其他各个共识节点广播的信息上报交易,并将信息上报交易中其他各个共识节点的设备信息记录在智能合约中;根据智能合约中记录的各个共识节点的设备信息计算得到并行度,并将并行度记录在所述智能合约中;在执行目标区块中的业务交易时,按照智能合约中记录的并行度启动多个线程并行执行目标区块中的各个业务交易。本发明通过根据各个共识节点的设备信息来计算并行度,并按照计算得到的并行度来并行执行各个业务交易,综合考虑了联盟链中各个共识节点整体的计算资源情况,避免了单纯提升并行度而导致过度并行反而导致性能下降的情况。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明区块链业务交易执行方法第一实施例的流程示意图;
图3为本发明实施例涉及的一种***框架示意图;
图4为本发明区块链业务交易执行装置较佳实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
缩略语和关键术语定义:
智能合约:部署在区块链上,完成特定功能的一段程序。此程序会被区块链上所有的节点执行,并通过共识算法,确保程序执行结果的一致性。例如转账合约,能够在区块链上记录用户的账号余额,并提供了相关转账和查询接口。
交易:由用户发起,调用智能合约的操作请求。交易被发送到区块链上,用于调用智能合约上的某个接口,触发智能合约代码的执行。
区块:交易批量处理的单位,多个交易被打包到一个区块中,形成一个批次,被节点执行,节点以区块执行为节奏,共识执行的结果。
API:应用程序接口(又名:应用编程接口,外文名:Application ProgrammingInterface),简称API,是软件***不同组成部分衔接的约定。
PBFT是Practical Byzantine Fault Tolerance的缩写,即:实用拜占庭容错算法。
并行执行:在多核的机器上,在同一时间段内同处理多个任务的,能够提高执行的性能。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
需要说明的是,本发明实施例区块链业务交易执行设备可以是联盟链中的共识节点,在此不做具体限制。
如图1所示,该区块链业务交易执行设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对区块链业务交易执行设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及区块链业务交易执行程序。操作***是管理和控制设备硬件和软件资源的程序,支持区块链业务交易执行程序以及其它软件或程序的运行。在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与服务器建立通信连接;而处理器1001可以用于调用存储器1005中存储的区块链业务交易执行程序,并执行以下操作:
收集本节点的第一设备信息并将所述第一设备信息作为第一信息上报交易提交;
根据提交的所述第一信息上报交易将所述第一设备信息记录在智能合约中,并将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点;
接收其他各个共识节点广播的第二信息上报交易,并将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中;
根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度,并将所述并行度记录在所述智能合约中;
在执行目标区块中的业务交易时,按照所述智能合约中记录的所述并行度启动多个线程并行执行所述目标区块中的各个业务交易。
进一步地,所述根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度的操作包括:
根据所述智能合约中记录的第i个共识节点的设备信息计算得到第i个共识节点的性能指标值;
将各个共识节点的性能指标值按照从大到小顺序排序后,选取前n-f个性能指标值中的最小性能指标值,其中,n为所述联盟链中共识节点的个数,3f+1=n;
根据所述最小性能指标值计算得到并行度。
进一步地,所述第i个共识节点的设备信息包括第i个共识节点的CPU个数和CPU频率;
所述根据所述智能合约中记录的第i个共识节点的设备信息计算得到第i个共识节点的性能指标值的操作包括:
将所述智能合约中记录的第i个共识节点的CPU个数和CPU频率相乘,得到第i个共识节点的第一性能指标值;
将所述智能合约中记录的第i个共识节点的CPU个数作为所述第i个共识节点的第二性能指标值;
所述将各个共识节点的性能指标值按照从大到小顺序排序后,选取前n-f个性能指标值中的最小性能指标值的操作包括:
将各个共识节点的第一性能指标值按照从大到小顺序排序后,选取前n-f个第一性能指标值中的最小第一性能指标值;
将各个共识节点的第二性能指标值按照从大到小顺序排序后,选取前n-f个第二性能指标值中的最小第二性能指标值;
所述根据所述最小性能指标值计算得到并行度的操作包括:
将所述最小第一性能指标值除以所述最小第二性能指标值后四舍五入处理得到并行度。
进一步地,所述按照所述智能合约中记录的所述并行度启动多个线程并行执行所述目标区块中的各个业务交易的操作包括:
将所述目标区块中的各个业务交易进行划分得到多个交易集,其中,一个所述交易集中包含至少一个业务交易,交易集的个数与所述智能合约中记录的所述并行度相同;
针对各所述交易集分别启动一个线程,通过各所述线程并行执行对应的交易集,其中,各所述线程分别按照串行方式执行对应交易集中的各个业务交易。
进一步地,所述将所述目标区块中的各个业务交易进行划分得到多个交易集的操作包括:
对所述目标区块中的任一目标业务交易,将所述目标业务交易在所述目标区块中的索引按所述智能合约中记录的所述并行度取模得到取模结果;
根据所述取模结果确定所述目标业务交易对应的目标子账号编号,以在执行所述目标业务交易时将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号;
将对应同一子账号编号的各个业务交易构建为一个交易集。
进一步地,执行所述目标业务交易的操作包括:
通过所述智能合约检测所述目标子账号编号对应的转账子账号是否存在;
若存在,则将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号进行交易执行;
若不存在,则通过智能合约创建一个转账子账号作为所述目标子账号编号对应的转账子账号,并将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号进行交易执行。
进一步地,所述将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点的操作包括:
采用本节点的私钥对所述第一信息上报交易进行签名,将签名后的第一信息上报交易广播给所述联盟链中的其他各个共识节点;
所述将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中的操作包括:
采用其他各个共识节点的公钥对经过签名的所述第二信息上报交易进行签名验证,在签名验证通过时将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中。
基于上述的结构,提出区块链业务交易执行方法的各个实施例。
参照图2,图2为本发明区块链业务交易执行方法第一实施例的流程示意图。
本发明实施例提供了区块链业务交易执行方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。在本实施例中,区块链业务交易执行方法执行主体可以是联盟链中的共识节点,各个共识节点分别执行本实施例区块链业务交易执行方法。所述方法包括以下步骤:
步骤S10,收集本节点的第一设备信息并将所述第一设备信息作为第一信息上报交易提交;
在本实施例中,考虑到联盟链中一般采用的是PBFT这样的共识,共识范围是确定的,链的性能由参与节点共同决定,单节点的性能提升并不一定能带来整体性能的提升,而是需要考虑所有共识节点的性能来共同确定并行度。因此,为解决目前单纯通过提高并行度来提升区块链交易执行性能的方法可能会因为过度并行反而导致性能下降的技术问题,本实施例提出一种联盟链的全链共识节点共同配合计算并行度并进行交易执行的方法,合理分配并行数,达到合理使用链中各个节点资源,提升链交易执行性能的目的。
共识节点收集本节点的设备信息(以下将本节点的设备信息称为第一设备信息以区分于其他共识节点的设备信息)。设备信息可以包括与本节点的硬件计算资源相关的信息,例如,CPU个数、CPU频率等,在本实施例中具体不做限制。
共识节点将本节点的第一设备信息作为交易进行提交,该交易是专门用于上报设备信息的,与业务场景中客户端提交的业务交易不同,因此以下为示区别,将该交易称为信息上报交易,并且将本节点提交的信息上报交易称为第一信息上报交易以区分于其他共识节点的信息上报交易。其中,将第一信息上报交易进行提交是指提交给本节点。收集本节点的第一设备信息可以通过操作***提供的API来收集,在此并不做限制。
可以理解的是,其他共识节点也同样执行本实施例的区块链业务交易执行方法,故也会收集各自的设备信息并作为信息上报交易进行提交,以下将其他节点的设备信息和信息上报交易分别称为第二设备信息和第二信息上报交易以示区分。
步骤S20,根据提交的所述第一信息上报交易将所述第一设备信息记录在智能合约中,并将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点;
联盟链中的共识节点在收到业务交易时,会将交易广播给联盟链中的其他共识节点,本实施例中利用该特点,通过共识节点将本节点的第一设备信息作为第一信息上报交易提交给本节点,本节点在收到第一信息上报交易后,将第一信息上报交易广播给联盟链中的其他各个共识节点。可以理解的是,其他共识节点也同样执行本实施例的区块链业务交易执行方法,故其他节点也会将各自的第二信息上报交易进行广播。
共识节点在接收到提交的第一信息上报交易后,也会将第一信息上报交易中的第一设备信息记录在智能合约中,以供后续使用。
步骤S30,接收其他各个共识节点广播的第二信息上报交易,并将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中;
共识节点分别接收其他各个共识节点广播的第二信息上报交易,并从各个第二信息上报交易中分别提取出其他各个共识节点的第二设备信息,将各个第二设备信息记录在智能合约中。例如,若联盟链有四个共识节点,则每个共识节点都会在本节点的智能合约中记录自己的第一设备信息和另外三个共识节点的第二设备信息,也即,每个共识节点都会在本节点的智能合约中记录四个设备信息,且各个共识节点的智能合约中的设备信息是一致的。
步骤S40,根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度,并将所述并行度记录在所述智能合约中;
共识节点在智能合约中记录各个共识节点的设备信息后,可以根据各个共识节点的设备信息计算得到并行度。具体地,根据各个共识节点的设备信息计算并行度可以考虑各个节点的设备计算资源情况,确定合理地的并行度,避免过度并行导致互相竞争抢占资源,导致资源切换成本变高性能下降。
在一实施方式中,可以根据各个共识节点的设备信息确定各个共识节点的设备在合理利用硬件资源的情况下所能支持的并行度,并从各个并行度中选取最小的并行度作为计算得到的并行度。
共识节点在计算得到并行度后,可以将并行度记录在智能合约中,以供后续按照从智能合约中提取的并行度并行执行业务交易。
需要说明的是,各个共识节点根据各个设备信息计算并行度的方法是相同的,所以各个共识节点计算得到的并行度是相同的,进而记录在各自智能合约中的并行度也是相同的。
步骤S50,在执行目标区块中的业务交易时,按照所述智能合约中记录的所述并行度启动多个线程并行执行所述目标区块中的各个业务交易。
联盟链中的一个共识节点作为打包节点,从交易池中打包多个业务交易得到区块,将区块广播给其他共识节点,各个共识节点对该区块中的各个业务交易进行执行。共识节点在执行某个区块(以下称为目标区块以示区分)中的业务交易时,可以按照智能合约中记录的并行度启动多个线程并行执行各个业务交易。其中,启动的线程数与并行度相同,从而实现按照该并行度并行执行各个业务交易。需要说明的是,可以将各个业务交易中无冲突的交易采用不同的线程并行执行,以避免并行执行各个业务交易时存在冲突。分配给同一线程执行的各个业务交易,线程可以按照串行方式依次执行各个业务交易。
在一实施方式中,当共识节点的设备信息有更新时,可重新收集并上报,以更新智能合约中该共识节点的设备信息,根据智能合约中更新后的设备信息再计算新的并行度,根据新的并行度进行业务交易的并行执行。
在一实施方式中,如图3所示,共识节点可以包括信息收集模块、合约模块和并行执行模块,其中,共识节点通过信息收集模块收集本节点的第一设备信息,并作为第一信息上报交易提交给合约模块。信息收集模块可以以第一设备信息为参数构建合约模块的信息收集函数的调用交易,从而实现将第一设备信息作为第一信息上报交易提交给合约模块。共识节点可通过信息收集模块将第一信息上报交易提交给合约模块后,通过合约模块将第一信息上报交易广播给其他共识节点,并可通过合约模块接收其他共识节点广播的第二信息上报交易,将第二信息上报交易中的第二设备信息记录在智能合约中。共识节点可通过合约模块根据智能合约中记录的各个共识节点的设备信息计算得到并行度,并将并行度记录在智能合约中。共识节点可通过并行执行模块读取智能合约中记录的并行度,根据该并行度执行业务交易。
在本实施例中,通过共识节点收集本节点的设备信息并将设备信息作为信息上报交易提交,根据提交的信息上报交易将设备信息记录在智能合约中,并将信息上报交易广播给所述联盟链中的其他各个共识节点;接收其他各个共识节点广播的信息上报交易,并将信息上报交易中其他各个共识节点的设备信息记录在智能合约中;根据智能合约中记录的各个共识节点的设备信息计算得到并行度,并将并行度记录在所述智能合约中;在执行目标区块中的业务交易时,按照智能合约中记录的并行度启动多个线程并行执行目标区块中的各个业务交易。本实施例通过根据各个共识节点的设备信息来计算并行度,并按照计算得到的并行度来并行执行各个业务交易,综合考虑了联盟链中各个共识节点整体的计算资源情况,避免了单纯提升并行度而导致过度并行反而导致性能下降的情况,也避免了单纯提升并行度而带来存储的消耗成倍增长。并且,通过将收集的设备信息作为信息上报交易提交,以将信息上报交易广播给其他共识节点,将设备信息记录在智能合约中,利用智能合约的特点,实现了各个共识节点的并行度计算的一致性,从而保证了各个共识节点交易执行性能提升的一致性。
进一步地,在一实施方式中,所述步骤S20中将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点的步骤包括:
步骤S201,采用本节点的私钥对所述第一信息上报交易进行签名,将签名后的第一信息上报交易广播给所述联盟链中的其他各个共识节点;
共识节点在接收到本节点提交的第一信息上报交易后,可以先采用本节点的私钥对第一信息上报交易进行签名,再将签名后的第一信息上报交易广播给其他各个共识节点。其中,采用私钥对第一信息上报交易进行签名的方法具体可以是采用摘要算法对第一信息上报交易计算摘要,采用私钥对摘要进行加密得到数字签名;将签名后的第一信息上报交易广播给其他共识节点具体是将数字签名和第一信息上报交易一起广播给各个共识节点。
共识节点可预先将本节点的公钥发送给其他各个共识节点,以供其他各个共识节点在接收到签名后的第一信息上报交易后,采用该公钥对签名后的第一信息上报交易进行签名验证,并在签名验证通过后将第一信息上报交易中的第一设备信息记录在各自的智能合约中。
所述步骤S30中将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中的步骤包括:
步骤S301,采用其他各个共识节点的公钥对经过签名的所述第二信息上报交易进行签名验证,在签名验证通过时将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中。
共识节点在接收到其他各个共识节点广播的签名后的第二信息上报交易后,可先对签名后的第二信息上报交易进行签名验证,在签名验证通过时,说明该第二信息上报交易确实是其他共识节点发送的,此时,将第二信息上报交易中的第二设备信息记录在本节点的智能合约中。
其中,其他各个共识节点可先将各自的公钥发送给本节点,本节点在对签名后的第二信息上报交易进行签名验证时,先采用对应共识节点的公钥对其中的数字签名进行解密,再将接收到的第二信息上报交易采用同样的摘要算法计算摘要,与解密得到的结果进行比对,若一致,则确定签名验证通过,否则确定签名验证不通过。
在一实施方式中,若共识节点对接收到的第二信息上报交易进行签名验证不通过,则可以丢弃该交易。
进一步地,基于上述第一实施例,提出本发明区块链业务交易执行方法第二实施例,在本实施例中,所述步骤S40中根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度的步骤包括:
步骤S401,根据所述智能合约中记录的第i个共识节点的设备信息计算得到第i个共识节点的性能指标值;
考虑到联盟链的各个共识节点中可能会存在因故障宕机或被攻击的共识节点,为保证在有部分共识节点宕机或被攻击的情况下也能够完成并行度的联合计算,在本实施例中,提出一种并行度计算方式。
具体地,共识节点在智能合约中记录各个共识节点的设备信息后,可以根据智能合约中记录的第i个共识节点的设备信息计算得到第i个共识节点的性能指标值。其中,性能指标值可以有一个也可以有多个,例如可以是将CPU个数作为性能指标值,具体在本实施例中并不做限制。
步骤S402,将各个共识节点的性能指标值按照从大到小顺序排序后,选取前n-f个性能指标值中的最小性能指标值,其中,n为所述联盟链中共识节点的个数,3f+1=n;
共识节点在计算得到各个共识节点的性能指标值后,可将各个共识节点的性能指标值按照从大到小顺序排序,选取前n-f(“-”表示减号)个性能指标值中的最小的性能指标值(以下称为最小性能指标值)。n是联盟链中共识节点的个数,f是能够容忍的宕机节点的个数,根据拜占庭共识算法的原理,3f+1=n。
步骤S403,根据所述最小性能指标值计算得到并行度。
共识节点可根据选取出的最小性能指标值计算得到并行度。具体地,根据最小性能指标值计算得到并行度的具体方式在本实施例中并不做限制。例如,在一实施方式中,若最小性能指标值是CPU个数,那么共识节点可以直接将该最小性能指标值作为并行度。
通过将各个共识节点的性能指标值按照从大到小的顺序进行排序,并选取前n-f个性能指标值中最小的性能指标值,根据该最小性能指标值计算得到并行度,是假设有f个共识节点宕机的情况来进行并行度计算的,当有不超过f个共识节点宕机的情况下,仍然能够计算出一致的并行度。
进一步地,在一实施方式中,所述步骤S401包括:
步骤S4011,将所述智能合约中记录的第i个共识节点的CPU个数和CPU频率相乘,得到第i个共识节点的第一性能指标值;
步骤S4012,将所述智能合约中记录的第i个共识节点的CPU个数作为所述第i个共识节点的第二性能指标值;
由于各个共识节点设备的CPU个数和CPU频率共同决定了节点的计算性能,在本实施方式中,为进一步提高并行度计算的合理性,第i个共识节点的设备信息可以包括第i个共识节点的CPU个数和CPU频率。也即,共识节点可以收集本节点的CPU个数和CPU频率作为信息上报交易进行提交。
在计算第i个共识节点的性能指标值时,可以计算两个性能指标值。具体地,共识节点可将智能合约中记录的第i个共识节点的CPU个数和CPU频率相乘,得到第i个共识节点的一个性能指标值(以下称为第一性能指标值以示区分)。共识节点还将智能合约中记录的第i个共识节点的CPU个数作为第i个共识节点的另一个性能指标值(以下称为第二性能指标值以示区分)。也即,计算得到每个共识节点分别对应的两个性能指标值。
所述步骤S402包括:
步骤S4021,将各个共识节点的第一性能指标值按照从大到小顺序排序后,选取前n-f个第一性能指标值中的最小第一性能指标值;
步骤S4022,将各个共识节点的第二性能指标值按照从大到小顺序排序后,选取前n-f个第二性能指标值中的最小第二性能指标值;
在计算得到各个共识节点的第一性能指标值后,共识节点可以将各个第一性能指标值按照从大到小的顺序排序,再选取前n-f个第一性能指标值中的最小的第一性能指标值(以下称为最小第一性能指标值)。在计算得到各个共识节点的第二性能指标值后,共识节点可以将各个第二性能指标值按照从大到小的顺序排序,再选取前n-f个第二性能指标值中的最小的第二性能指标值(以下称为最小第二性能指标值)。
所述步骤S403包括:
步骤S4031,将所述最小第一性能指标值除以所述最小第二性能指标值后四舍五入处理得到并行度。
共识节点在计算得到最小第一性能指标值和最小第二性能指标值后,可以将最小第一性能指标值除以最小第二性能指标值后四舍五入处理,将结果作为并行度。例如,采用Zmin表示最小第一性能指标值,采用CPUmin表示最小第二性能指标值,那么,并行度P=四舍五入(Zmin/CPUmin)。
通过本实施例上述方法计算得到的并行度是综合考虑了各个共识节点设备的资源情况而计算得到的一个合理的并行度,一方面可以提升区块链交易执行升性能,另一方面也可以节约存储空间。
例如,以1W对1账号转账的场景,4个共识节点的联盟链为例,按照下
表1中的数据进行机器配置并进行测试:
表1
测试结果、交易性能对比数据如下表2:
表2
从表2中可以知道并行方案是好于非并行方案的,而高度并行因为多了很多线程切换,导致交易执行性能低于本发明实施例方案的交易执行性能。
存储性能对比数据如下表3:
表3
按照上述并行度P=四舍五入(Zmin/CPUmin)的计算公式,可以计算出并行度为6,从表3中数据可以看出来,在存储性能方面不并行的存储性能最高,本发明实施例方案次之,高度并行最差。
进一步地,基于上述第一和/或第二实施例,提出本发明区块链业务交易执行方法第三实施例,在本实施例中,所述步骤S50包括:
步骤S501,将所述目标区块中的各个业务交易进行划分得到多个交易集,其中,一个所述交易集中包含至少一个业务交易,交易集的个数与所述智能合约中记录的所述并行度相同;
在本实施例中,共识节点在执行目标区块中的业务交易时,具体可以先将目标区块中的各个业务交易进行划分,得到多个交易集,一个交易集中包含至少一个业务交易,交易集的个数与智能合约中记录的并行度相同。其中,将业务交易划分得到交易集的方法具体在本实施例中不做限制。
在一些实施方式中,当需要保证各个共识节点划分得到的交易集相同时,可以预先设置一种划分方法,使得各个共识节点对目标区块中的业务交易划分得到的交易集是相同的。例如,在一实施方式中,可以将目标区块中的业务交易的数量除以智能合约中的并行度并向上取整,得到每个交易集中的交易数量,按照该交易数量将目标区块中按顺序排列的各个业务交易划分得到多个交易集。可以理解的是,各个共识节点按照该方法划分得到的交易集是相同的。又如,在另一实施方式中,可以将目标区块中的业务交易的索引按照智能合约中的并行度取模,将相同取模结果的交易划分到一个交易集。可以理解的是,各个共识节点按照该方法划分得到的交易集也是相同的。
步骤S502,针对各所述交易集分别启动一个线程,通过各所述线程并行执行对应的交易集,其中,各所述线程分别按照串行方式执行对应交易集中的各个业务交易。
针对各个交易集分别启动一个线程,也即,有m个交易集就启动m个线程,通过各个线程并行执行对应的交易集,也即,第j个线程执行第j个交易集,且m个线程是并列执行的。各个线程分别按照串行方式执行对应交易集中的各个业务交易,也即,第j个线程串行执行第j个交易集中的各个业务交易。
进一步地,在一实施方式中,所述步骤S501包括:
步骤S5011,对所述目标区块中的任一目标业务交易,将所述目标业务交易在所述目标区块中的索引按所述智能合约中记录的所述并行度取模得到取模结果;
在多对一转账的场景中,当目标区块中的各个业务交易的收款账号是同一账号时,可以通过增加收款账号,将各个业务交易的收款账号区别开,从而构建无冲突交易,避免并行执行时造成冲突。
具体地,对目标区块中的任一一个业务交易(以下称为目标业务交易以示区分),共识节点可将该目标业务交易在目标区块中的索引按该智能合约中记录的并行度取模,得到的结果称为取模结果。
步骤S5012,根据所述取模结果确定所述目标业务交易对应的目标子账号编号,以在执行所述目标业务交易时将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号;
共识节点根据取模结果确定目标业务交易对应的子账号编号(以下称为目标子账号编号)。其中,预先可在智能合约中设置多个转账子账号用于作为收款账号,并可对各个转账子账号进行编号以区分各个子账号。需要说明的是,由于各个共识节点的智能合约是相同的,所以各个共识节点智能合约中设置的各个转账子账号以及对应的编号也是相同的。
当各个转账子账号的编号是从0开始时,共识节点可以将取模结果直接作为目标子账号编号;当各个转账子账号的编号是从1开始时,共识节点可以将取模结果加1后作为目标子账号编号。也即,根据各个转账子账号的编号方式不同,基于取模结果确定目标子账号编号的方式也不同。
共识节点确定目标业务交易对应的目标子账号编号目的是在执行该目标业务交易时将目标子账号编号对应的转账子账号作为目标业务交易的收款账号,从而将需要并行执行的交易的收款账号区分开,避免交易执行时发生冲突。
步骤S5013,将对应同一子账号编号的各个业务交易构建为一个交易集。
共识节点在确定目标区块中的各个业务交易分别对应的子账号编号后,可以将对应同一子账号编号的各个业务交易构建为一个交易集,也即,对应同一子账号编号的各个业务交易需要串行执行,对应不同子账号编号的业务交易可以并行执行。
进一步地,在一实施方式中,执行所述目标业务交易的步骤包括:
步骤a,通过所述智能合约检测所述目标子账号编号对应的转账子账号是否存在;
共识节点在执行目标区块中的各个业务交易时,可以先通过智能合约判断对应的转账子账号是否存在,若不存在则可以动态地创建。
具体地,以其中一个业务交易(目标业务交易)为例进行说明。共识节点可以先通过智能合约检测目标业务交易对应的目标子账号编号对应的转账子账号是否存在,也即,确定是否有该编号对应的转账子账号。例如,共识节点智能合约中预先创建了五个转账子账号,编号是0-4,而并行度是6,假设目标业务交易的索引对6取模得到5,也即,目标子账号编号为5,那么共识节点在检测目标子账号编号对应的转账子账号是否存在时,检测到没有编号为5的转账子账号,则确定目标子账号编号对应的转账子账号不存在。
步骤b,若存在,则将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号进行交易执行;
若检测到目标子账号编号对应的转账子账号存在,则共识节点可以直接将该转账子账号作为目标业务交易的收款账号进行交易执行。
步骤c,若不存在,则通过智能合约创建一个转账子账号作为所述目标子账号编号对应的转账子账号,并将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号进行交易执行。
若检测到目标子账号编号对应的转账子账号不存在,则共识节点可以通过智能合约创建一个转账子账号,将新创建的该转账子账号作为目标业务交易的收款账号进行交易执行。需要说明的是,各个共识节点的智能合约是相同的,所以各个共识接收通过智能合约创建的转账子账号也是相同的,从而保证各个共识节点对目标区块中的各个业务交易的执行结果是一致的。
此外,本发明实施例还提出一种区块链业务交易执行装置,参照图4,所述装置部署于联盟链中的共识节点,所述装置包括:
信息收集模块10,用于收集本节点的第一设备信息并将所述第一设备信息作为第一信息上报交易提交;
合约模块20,用于根据提交的所述第一信息上报交易将所述第一设备信息记录在智能合约中,并将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点;
所述合约模块20还用于接收其他各个共识节点广播的第二信息上报交易,并将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中;
所述合约模块20还用于根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度,并将所述并行度记录在所述智能合约中;
并行执行模块30,用于在执行目标区块中的业务交易时,按照所述智能合约中记录的所述并行度启动多个线程并行执行所述目标区块中的各个业务交易。
进一步地,所述合约模块20还用于:
根据所述智能合约中记录的第i个共识节点的设备信息计算得到第i个共识节点的性能指标值;
将各个共识节点的性能指标值按照从大到小顺序排序后,选取前n-f个性能指标值中的最小性能指标值,其中,n为所述联盟链中共识节点的个数,3f+1=n;
根据所述最小性能指标值计算得到并行度。
进一步地,所述第i个共识节点的设备信息包括第i个共识节点的CPU个数和CPU频率;
所述合约模块20还用于:
将所述智能合约中记录的第i个共识节点的CPU个数和CPU频率相乘,得到第i个共识节点的第一性能指标值;
将所述智能合约中记录的第i个共识节点的CPU个数作为所述第i个共识节点的第二性能指标值;
将各个共识节点的第一性能指标值按照从大到小顺序排序后,选取前n-f个第一性能指标值中的最小第一性能指标值;
将各个共识节点的第二性能指标值按照从大到小顺序排序后,选取前n-f个第二性能指标值中的最小第二性能指标值;
将所述最小第一性能指标值除以所述最小第二性能指标值后四舍五入处理得到并行度。
进一步地,所述并行执行模块30还用于:
将所述目标区块中的各个业务交易进行划分得到多个交易集,其中,一个所述交易集中包含至少一个业务交易,交易集的个数与所述智能合约中记录的所述并行度相同;
针对各所述交易集分别启动一个线程,通过各所述线程并行执行对应的交易集,其中,各所述线程分别按照串行方式执行对应交易集中的各个业务交易。
进一步地,所述并行执行模块30还用于:
对所述目标区块中的任一目标业务交易,将所述目标业务交易在所述目标区块中的索引按所述智能合约中记录的所述并行度取模得到取模结果;
根据所述取模结果确定所述目标业务交易对应的目标子账号编号,以在执行所述目标业务交易时将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号;
将对应同一子账号编号的各个业务交易构建为一个交易集。
进一步地,所述并行执行模块30还用于:
通过所述智能合约检测所述目标子账号编号对应的转账子账号是否存在;
若存在,则将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号进行交易执行;
若不存在,则通过智能合约创建一个转账子账号作为所述目标子账号编号对应的转账子账号,并将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号进行交易执行。
进一步地,所述合约模块20还用于:
采用本节点的私钥对所述第一信息上报交易进行签名,将签名后的第一信息上报交易广播给所述联盟链中的其他各个共识节点;
所述将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中的步骤包括:
采用其他各个共识节点的公钥对经过签名的所述第二信息上报交易进行签名验证,在签名验证通过时将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中。
本发明区块链业务交易执行的具体实施方式的拓展内容与上述区块链业务交易执行各实施例基本相同,在此不做赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有区块链业务交易执行程序,所述区块链业务交易执行程序被处理器执行时实现如上实施例中所述的区块链业务交易执行方法的步骤。
本发明区块链业务交易执行设备和计算机可读存储介质各实施例,均可参照本发明区块链业务交易执行方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种区块链业务交易执行方法,其特征在于,所述方法应用于联盟链中的共识节点,所述方法包括以下步骤:
收集本节点的第一设备信息并将所述第一设备信息作为第一信息上报交易提交;
根据提交的所述第一信息上报交易将所述第一设备信息记录在智能合约中,并将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点;
接收其他各个共识节点广播的第二信息上报交易,并将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中;
根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度,并将所述并行度记录在所述智能合约中;
在执行目标区块中的业务交易时,按照所述智能合约中记录的所述并行度启动多个线程并行执行所述目标区块中的各个业务交易。
2.如权利要求1所述的区块链业务交易执行方法,其特征在于,所述根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度的步骤包括:
根据所述智能合约中记录的第i个共识节点的设备信息计算得到第i个共识节点的性能指标值;
将各个共识节点的性能指标值按照从大到小顺序排序后,选取前n-f个性能指标值中的最小性能指标值,其中,n为所述联盟链中共识节点的个数,3f+1=n;
根据所述最小性能指标值计算得到并行度。
3.如权利要求2所述的区块链业务交易执行方法,其特征在于,所述第i个共识节点的设备信息包括第i个共识节点的CPU个数和CPU频率;
所述根据所述智能合约中记录的第i个共识节点的设备信息计算得到第i个共识节点的性能指标值的步骤包括:
将所述智能合约中记录的第i个共识节点的CPU个数和CPU频率相乘,得到第i个共识节点的第一性能指标值;
将所述智能合约中记录的第i个共识节点的CPU个数作为所述第i个共识节点的第二性能指标值;
所述将各个共识节点的性能指标值按照从大到小顺序排序后,选取前n-f个性能指标值中的最小性能指标值的步骤包括:
将各个共识节点的第一性能指标值按照从大到小顺序排序后,选取前n-f个第一性能指标值中的最小第一性能指标值;
将各个共识节点的第二性能指标值按照从大到小顺序排序后,选取前n-f个第二性能指标值中的最小第二性能指标值;
所述根据所述最小性能指标值计算得到并行度的步骤包括:
将所述最小第一性能指标值除以所述最小第二性能指标值后四舍五入处理得到并行度。
4.如权利要求1所述的区块链业务交易执行方法,其特征在于,所述按照所述智能合约中记录的所述并行度启动多个线程并行执行所述目标区块中的各个业务交易的步骤包括:
将所述目标区块中的各个业务交易进行划分得到多个交易集,其中,一个所述交易集中包含至少一个业务交易,交易集的个数与所述智能合约中记录的所述并行度相同;
针对各所述交易集分别启动一个线程,通过各所述线程并行执行对应的交易集,其中,各所述线程分别按照串行方式执行对应交易集中的各个业务交易。
5.如权利要求4所述的区块链业务交易执行方法,其特征在于,所述将所述目标区块中的各个业务交易进行划分得到多个交易集的步骤包括:
对所述目标区块中的任一目标业务交易,将所述目标业务交易在所述目标区块中的索引按所述智能合约中记录的所述并行度取模得到取模结果;
根据所述取模结果确定所述目标业务交易对应的目标子账号编号,以在执行所述目标业务交易时将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号;
将对应同一子账号编号的各个业务交易构建为一个交易集。
6.如权利要求5所述的区块链业务交易执行方法,其特征在于,执行所述目标业务交易的步骤包括:
通过所述智能合约检测所述目标子账号编号对应的转账子账号是否存在;
若存在,则将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号进行交易执行;
若不存在,则通过智能合约创建一个转账子账号作为所述目标子账号编号对应的转账子账号,并将所述目标子账号编号对应的转账子账号作为所述目标业务交易的收款账号进行交易执行。
7.如权利要求1至6任一项所述的区块链业务交易执行方法,其特征在于,所述将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点的步骤包括:
采用本节点的私钥对所述第一信息上报交易进行签名,将签名后的第一信息上报交易广播给所述联盟链中的其他各个共识节点;
所述将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中的步骤包括:
采用其他各个共识节点的公钥对经过签名的所述第二信息上报交易进行签名验证,在签名验证通过时将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中。
8.一种区块链业务交易执行装置,其特征在于,所述装置部署于联盟链中的共识节点,所述装置包括:
信息收集模块,用于收集本节点的第一设备信息并将所述第一设备信息作为第一信息上报交易提交;
合约模块,用于根据提交的所述第一信息上报交易将所述第一设备信息记录在智能合约中,并将所述第一信息上报交易广播给所述联盟链中的其他各个共识节点;
所述合约模块还用于接收其他各个共识节点广播的第二信息上报交易,并将所述第二信息上报交易中其他各个共识节点的第二设备信息记录在所述智能合约中;
所述合约模块还用于根据所述智能合约中记录的各个共识节点的设备信息计算得到并行度,并将所述并行度记录在所述智能合约中;
并行执行模块,用于在执行目标区块中的业务交易时,按照所述智能合约中记录的所述并行度启动多个线程并行执行所述目标区块中的各个业务交易。
9.一种区块链业务交易执行设备,其特征在于,所述区块链业务交易执行设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块链业务交易执行程序,所述区块链业务交易执行程序被所述处理器执行时实现如权利要求1至7中任一项所述的区块链业务交易执行方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有区块链业务交易执行程序,所述区块链业务交易执行程序被处理器执行时实现如权利要求1至7中任一项所述的区块链业务交易执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111572625.1A CN114237900A (zh) | 2021-12-21 | 2021-12-21 | 区块链业务交易执行方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111572625.1A CN114237900A (zh) | 2021-12-21 | 2021-12-21 | 区块链业务交易执行方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114237900A true CN114237900A (zh) | 2022-03-25 |
Family
ID=80760501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111572625.1A Pending CN114237900A (zh) | 2021-12-21 | 2021-12-21 | 区块链业务交易执行方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114237900A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114997866A (zh) * | 2022-05-26 | 2022-09-02 | 成都质数斯达克科技有限公司 | 一种业务合约生成方法、装置、设备及可读存储介质 |
-
2021
- 2021-12-21 CN CN202111572625.1A patent/CN114237900A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114997866A (zh) * | 2022-05-26 | 2022-09-02 | 成都质数斯达克科技有限公司 | 一种业务合约生成方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10831530B2 (en) | Secure consensus-based endorsement for self-monitoring blockchain | |
CN110502546B (zh) | 一种数据处理方法及装置 | |
US11169898B2 (en) | System and method for database replication benchmark testing using a pipeline-based microservices model | |
CN110730225A (zh) | 基于区块链的物联网的数据处理方法、物联网及存储介质 | |
CN109901786B (zh) | 数据迁移方法、***、装置及计算机可读存储介质 | |
US9218210B2 (en) | Distributed processing system | |
CN109725995B (zh) | 数据抽取任务执行方法、装置、设备及可读存储介质 | |
CN109445768B (zh) | 数据库脚本生成方法、装置、计算机设备及存储介质 | |
US11405328B2 (en) | Providing on-demand production of graph-based relationships in a cloud computing environment | |
CN111858062A (zh) | 评估规则优化方法、业务评估方法及相关设备 | |
CN113835874A (zh) | 深度学习业务调度方法、***、终端及存储介质 | |
CN113157710A (zh) | 区块链数据并行写入方法、装置、计算机设备及存储介质 | |
US10979327B2 (en) | Monitoring cloud computing | |
CN111259045B (zh) | 一种数据处理方法、装置、服务器及介质 | |
CN113126980A (zh) | 页面生成方法、装置及电子设备 | |
CN114237900A (zh) | 区块链业务交易执行方法、装置、设备及可读存储介质 | |
CN112347394A (zh) | 网页信息的获取方法、装置、计算机设备和存储介质 | |
CN111400051A (zh) | 一种资源调度方法、装置及*** | |
CN110609924A (zh) | 基于图数据的全量关系计算方法、装置、设备及存储介质 | |
CN115168014A (zh) | 一种作业调度方法及装置 | |
WO2022267395A1 (zh) | 代付请求处理方法及*** | |
CN108021597B (zh) | 一种并行计数器、服务器和一种计数方法 | |
CN110929207B (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN113656410A (zh) | 一种订单存储方法及相关装置 | |
CN116051018B (zh) | 选举处理方法、装置、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |