CN109285006A - 一种区块链数据的并行验证处理方法及装置 - Google Patents
一种区块链数据的并行验证处理方法及装置 Download PDFInfo
- Publication number
- CN109285006A CN109285006A CN201811117485.7A CN201811117485A CN109285006A CN 109285006 A CN109285006 A CN 109285006A CN 201811117485 A CN201811117485 A CN 201811117485A CN 109285006 A CN109285006 A CN 109285006A
- Authority
- CN
- China
- Prior art keywords
- block
- verifying
- thread
- packing
- packaged
- 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
Classifications
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种区块链数据的并行验证处理方法及装置,涉及区块链技术领域。方法包括:启动区块链验证节点中的多个验证线程;接收交易任务数据被打包成块的各打包区块;控制多个验证线程并行对各打包区块进行验证处理;将验证通过的打包区块写入区块链。本发明通过多个验证线程同时的并行处理,可以极大缩短验证所需时间,提高区块链处理交易的性能。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链数据的并行验证处理方法及装置。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,具有去中心化,信息不可篡改,开放性和匿名性等特点,近几年来得到广泛发展和应用。
区块链可以实现基本的数字资产交易功能,可将收到的交易信息按照一定的数量或者时间间隔打包成块(block),再将这些块按照时间顺序逐一记录,后面的块会记录前一个块的信息,彼此关联从而形成一条链。为保证区块链中每个区块信息的准确性,当区块链中的验证节点(peer节点)收到打包区块后会对区块中的每条交易信息进行验证。现有的验证方案为串行验证,其流程如图1所示,即当peer节点收到多个打包区块(例如block0至blockn)后,会根据区块的时间顺序采用一个VSCC(Verify System Chaincode,验证系统链码)线程逐一验证后写入到链中,这使得当有大量的打包区块(每个区块有大量的交易任务数据txid0至txidn)同时到达peer节点时,节点验证所消耗的时间较长,从而大大影响区块链处理交易的性能。
发明内容
本发明的实施例提供一种区块链数据的并行验证处理方法及装置,以解决现有的区块链数据的验证方案中存在的验证所消耗的时间较长,极大影响区块链处理交易的性能的问题。
为达到上述目的,本发明采用如下技术方案:
一种区块链数据的并行验证处理方法,包括:启动区块链验证节点中的多个验证线程;接收交易任务数据被打包成块的各打包区块;控制所述多个验证线程并行对所述各打包区块进行验证处理;将验证通过的打包区块写入区块链。
可选地,在所述启动区块链验证节点中的多个验证线程的步骤之前,所述方法还包括:对所述区块链的验证节点预先配置多个验证线程。
可选地,所述控制所述多个验证线程并行对所述各打包区块进行验证处理,包括:控制多个验证线程并行运行,并在一预先设置的通道内依次放入打包区块;控制多个验证线程中的任意个线程通过所述预先设置的通道抢占通道内的一打包区块;控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
可选地,所述控制所述多个验证线程并行对所述各打包区块进行验证处理,还包括:预先为所述多个验证线程分配线程编号;控制所述多个验证线程并行运行,并根据所述线程编号的顺序依次为各验证线程分配打包区块;控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
可选地,所述控制所述多个验证线程并行对所述各打包区块进行验证处理,还包括:预先为所述多个验证线程分配线程编号;控制所述多个验证线程并行运行;根据所述线程编号,产生随机数,且每一次产生的随机数对应到一个验证线程;
将打包区块分配给对应该随机数的验证线程;控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
可选地,所述控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理的步骤,包括:若打包区块中存在交易任务数据验证失败,则丢弃所述交易任务数据,保留验证成功的交易任务数据;若打包区块中全部的交易任务数据验证失败,则将所述打包区块丢弃;保留存在验证成功的交易任务数据的打包区块,将存在验证成功的交易任务数据的打包区块判定为验证通过的打包区块。
可选地,所述将验证通过的打包区块写入区块链,包括:将验证通过的打包区块放入到预先设置的数组中;以各打包区块的成块顺序确定当前待写入的打包区块是否在预先设置的数组中;若当前待写入的打包区块在预先设置的数组中,则将该当前待写入的打包区块写入到区块链上;若当前待写入的打包区块未在预先设置的数组中,则等待当前待写入的打包区块被放入到预先设置的数组中,或者在确定当前待写入的打包区块被丢弃时,重新根据各打包区块的成块顺序确定当前待写入的打包区块。
一种区块链数据的并行验证处理装置,包括:验证线程启动单元,用于启动区块链验证节点中的多个验证线程;打包区块接收单元,用于接收交易任务数据被打包成块的各打包区块;打包区块验证单元,用于控制所述多个验证线程并行对所述各打包区块进行验证处理;打包区块写入单元,用于将验证通过的打包区块写入区块链。
一种非暂态计算机可读存储介质,其上存储有至少一可执行指令,所述可执行指令使处理器执行如上述的区块链数据的并行验证处理方法对应的操作。
一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上述的区块链数据的并行验证处理方法对应的操作。
本发明实施例提供的一种区块链数据的并行验证处理方法及装置,能够在区块链的验证节点中预先启动多个验证线程,来等待打包区块的到来;之后接收交易任务数据被打包成块的各打包区块;控制多个验证线程并行对各打包区块进行验证处理;将验证通过的打包区块写入区块链。本发明可以通过多个验证线程同时的并行处理,可以极大缩短验证所需时间,提高区块链处理交易的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的区块链数据的串行验证方案的流程示意图;
图2为本发明实施例提供的一种区块链数据的并行验证处理方法的流程图一;
图3为本发明实施例提供的一种区块链数据的并行验证处理方法的流程图二;
图4为本发明实施例提供的一种区块链数据的并行验证处理方法的示意图;
图5为本发明实施例提供的一种区块链数据的并行验证处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,本发明实施例提供一种区块链数据的并行验证处理方法,包括:
步骤101、启动区块链验证节点中的多个验证线程。
此处的验证线程可以优选VSCC(Verify System Chaincode)线程,VSCC线程是指验证系统链码的线程,其可以用于处理交易(transaction)任务验证,包括检查交易任务中的认可(endorsement)策略以及对多进程并发控制。
步骤102、接收交易任务数据被打包成块的各打包区块。
步骤103、控制多个验证线程并行对各打包区块进行验证处理。
步骤104、将验证通过的打包区块写入区块链。
本发明实施例提供的一种区块链数据的并行验证处理方法,能够在区块链的验证节点中预先启动多个验证线程,来等待打包区块的到来;之后接收交易任务数据被打包成块的各打包区块;控制多个验证线程并行对各打包区块进行验证处理;将验证通过的打包区块写入区块链。本发明可以通过多个验证线程同时的并行处理,可以极大缩短验证所需时间,提高区块链处理交易的性能。
为了使得本领域的技术人员更好的了解本发明,下面结合一具体实例来对本发明进行说明。如图3和图4所示,本发明实施例提供一种区块链数据的并行验证处理方法,包括:
步骤201、对区块链的验证节点预先配置多个验证线程。
此处,验证线程的配置数量可以根据需求预先设置,例如可预先对区块链的交易任务数据任务量进行测试,以预估得到所需的验证线程的配置数量。同时验证节点的数量也可不同,在采用不同验证节点数量的情况下,得到的处理相同数量的交易任务数据的时间并不相同,此处不对验证节点的数量进行限定,优选的保证测试时间最短即可。
步骤202、启动区块链验证节点中的多个验证线程。
例如,在图4中,此处的验证节点即为区块链中的peer节点。此处与现有技术不同的是,在现有技术中,验证节点中仅存在一个验证线程,其无需预先启动,而是被动的接收打包区块,再进行后续验证处理。而此处本发明实施例采用在区块链的验证节点预先配置多个验证线程,并启动多个验证线程来等待打包区块,以便于后续的多验证线程的并行处理。
步骤203、接收交易任务数据被打包成块的各打包区块。
其中,打包区块中可包含多笔交易,而在区块链系统中,每笔交易对应有唯一交易编号,并对应相应的交易任务数据。例如,如图4所示的txid0至txidn表示每笔交易任务数据对应的唯一交易编号,该唯一交易编号可保证在区块链系统中每笔交易任务的唯一性。另外,各个交易任务数据是被采用预设的数量来打包成块的,此处预设的数量是指每个打包区块所包含的交易任务数量。
例如在图4中,txid0至txidn打包为了block0,txidn+1至txidm打包成了block1,以此类推,txidj至txidk打包成了blockn。经过打包成块处理,形成了大量的打包区块。如果此时采用现有技术方案,一个验证线程将很难同时处理如此大量的打包区块。
步骤204、控制多个验证线程并行对各打包区块进行验证处理。
此处,该步骤204可以采用多种方式来处理:
其中一种可以采用如下方式实现:
步骤S1:控制多个验证线程并行运行,并在一预先设置的通道内依次放入打包区块;控制多个验证线程中的任意个线程通过预先设置的通道抢占通道内的一打包区块。
本发明实施例一般可基于go语言实现,而在go语言中存在通道(channel)的概念,而每个打包区块将逐一被放入该通道,以供多个验证线程进行抢占,其中若验证线程处于空闲状态(即该验证线程没有抢占到打包区块),则会参与通道中打包区块的抢占,在一个验证线程抢占得到打包区块后,在其处理完成其区块中包含的交易任务数据之前,将不再从通道中抢占打包区块(即暂时不参与通道中打包区块的抢占)。在一个打包区块被抢占后,会继续将下一个打包区块放入该通道以供抢占。由于计算机的原子机制,不会出现多个验证线程抢占到同一个打包区块的情况。例如,图4中,VSCC1抢占到了block0、VSCC2抢占到了block1,以及VSCC3抢占到了blockn。
步骤S2:控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
此处的对各交易任务数据进行验证处理一般是指验证每笔交易任务是否正确,例如交易方、交易金额、交易时间等是否正确,但不仅局限于此。
另一种还可以采用如下方式实现:
步骤S3:预先为多个验证线程分配线程编号。
例如,有5个验证线程,分别被分配了1至5的线程编号。
步骤S4:控制多个验证线程并行运行,并根据线程编号的顺序依次为各验证线程分配打包区块。
例如打包区块为block0至block4,则将这5个打包区块依次分配给线程编号1至5的验证线程,但不仅局限于此,例如若有更多的打包区块,则可以以线程编号来循环为各验证线程分配打包区块。
例如,图4中,VSCC1被分配到了block0、VSCC2被分配到了block1,以及VSCC3被分配到了blockn。
步骤S5:控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
再一种还可以采用如下方式实现:
步骤S6:预先为多个验证线程分配线程编号。
步骤S7:控制多个验证线程并行运行。
步骤S8:根据线程编号,产生随机数,且每一次产生的随机数对应到一个验证线程。
步骤S9:将打包区块分配给对应该随机数的验证线程。
例如,线程编号为1至5,产生的随机数的范围也可以为1至5,则每次产生随机数后,可以根据随机数的值来确定对应的线程编号,从而将打包区块分配给对应的验证线程。如第一次产生随机数为1,将一个打包区块分配给线程编号为1的验证线程,第二次产生随机数为4,将下一个打包区块分配给线程编号为4的验证线程。由于随机数的范围和线程编号的范围是相同的,因此此处每个验证线程得到打包区块的概率是相等的。
当然,由于验证线程处理速度可能存在差异,因此可以为处理速度较快的验证线程分配更多的打包区块。例如,线程编号为1至5,而产生的随机数的范围可以大于5,例如为1至20,此处假设线程编号4、5的验证线程的处理速度较高,而线程编号1、2、3的验证线程的处理速度较低,则可以设置线程编号4、5的验证线程对应的随机数更多,如线程编号4、5的验证线程分别对应了20个随机数中的7个随机数(如随机数1、3、5、7、9、11、13对应线程编号4,随机数2、4、6、8、10、12、14对应线程编号5),而线程编号1、2、3的验证线程分别对应了20个随机数中的2个随机数(如随机数15、18对应线程编号1,随机数16、19对应线程编号2,随机数17、20对应线程编号3)。可见线程编号4、5对应的验证线程得到打包区块的概率要远大于线程编号1、2、3对应的验证线程。本发明实施例可以根据线程处理速度的快慢来增加和减少验证线程对应的随机数的数量,使得打包区块的分配更为灵活。
步骤S10:控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
上述步骤S2、步骤S5和步骤S10中,控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理的步骤可以有如下处理方式:
若打包区块中存在交易任务数据验证失败,则丢弃交易任务数据,保留验证成功的交易任务数据。
若打包区块中全部的交易任务数据验证失败,则将打包区块丢弃。
保留存在验证成功的交易任务数据的打包区块,将存在验证成功的交易任务数据的打包区块判定为验证通过的打包区块。
值得说明的是,该步骤204中控制多个验证线程并行对各打包区块进行验证处理的步骤还可以有多种方式,此处不再一一赘述。
步骤205、将验证通过的打包区块放入到预先设置的数组中。
该数组用于存储验证通过后的打包区块,以便后续按照各打包区块的成块顺序进行写入到区块链。例如图4中,buf[0,1…n]表示该数组。
步骤206、以各打包区块的成块顺序确定当前待写入的打包区块是否在预先设置的数组中。
在步骤206之后执行步骤207、步骤208或步骤209。
步骤207、若当前待写入的打包区块在预先设置的数组中,则将该当前待写入的打包区块写入到区块链上。
具体的,将打包区块写入到区块链上是要按照成块顺序的,例如图4所示,成块顺序为block0、block1、……、blockn,那么首先要确定block0是否在数组中,若在则将block0写入到区块链上,然后再确定block1是否在数组中,依次类推。
步骤208、若当前待写入的打包区块未在预先设置的数组中,则等待当前待写入的打包区块被放入到预先设置的数组中。之后执行步骤207。
例如,block1和block2已经在数组中,而block0未在数组中,则需要等待该block0被放入数组中,然后将block0写入到区块链上,再将block1写入到区块链上。
步骤209、若当前待写入的打包区块未在预先设置的数组中,在确定当前待写入的打包区块被丢弃时,重新根据各打包区块的成块顺序确定当前待写入的打包区块。之后返回执行步骤206。
另外,例如block1和block2已经在数组中,而block0未在数组中,而由于block0中的全部交易任务数据均验证失败,导致block0被丢弃,则根据成块顺序,block1被重新确定为待写入的打包区块。
需要说明的是,在区块链上,各打包区块之间是相互关联的,后一打包区块存储着前一打包区块的哈希值,最终如图4所示,形成从block0至blockn相互关联的一条链,如果改变其中一个打包区块中的信息,那么后面的区块就无法关联,则可判定该打包区块被修改,这就保证了区块链上信息不能被篡改。
本发明实施例提供的一种区块链数据的并行验证处理方法,能够在区块链的验证节点中预先启动多个验证线程,来等待打包区块的到来;之后接收交易任务数据被打包成块的各打包区块;控制多个验证线程并行对各打包区块进行验证处理;将验证通过的打包区块写入区块链。本发明可以通过多个验证线程同时的并行处理,可以极大缩短验证所需时间,提高区块链处理交易的性能。
对应于上述图2和图3所对应的方法实施例,如图5所示,本发明实施例还提供一种区块链数据的并行验证处理装置,包括:
验证线程启动单元31,用于启动区块链验证节点中的多个验证线程。
打包区块接收单元32,用于接收交易任务数据被打包成块的各打包区块。
打包区块验证单元33,用于控制多个验证线程并行对各打包区块进行验证处理。
打包区块写入单元34,用于将验证通过的打包区块写入区块链。
进一步的,如图5所示,该区块链数据的并行验证处理装置还包括:
验证线程配置单元35,用于对区块链的验证节点预先配置多个验证线程。
另外,该打包区块验证单元33,具体用于:
控制多个验证线程并行运行,并在一预先设置的通道内依次放入打包区块。
控制多个验证线程中的任意个线程通过预先设置的通道抢占通道内的一打包区块。
控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
另外,打包区块验证单元33,具体还可以用于:
预先为多个验证线程分配线程编号。
控制多个验证线程并行运行,并根据线程编号的顺序依次为各验证线程分配打包区块。
控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
另外,打包区块验证单元33,具体还可以用于:
预先为多个验证线程分配线程编号。
控制多个验证线程并行运行。
根据线程编号,产生随机数,且每一次产生的随机数对应到一个验证线程。
将打包区块分配给对应该随机数的验证线程。
控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
另外,该打包区块验证单元33中,控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理可以采用如下方式实现:
若打包区块中存在交易任务数据验证失败,则丢弃交易任务数据,保留验证成功的交易任务数据。
若打包区块中全部的交易任务数据验证失败,则将打包区块丢弃。
保留存在验证成功的交易任务数据的打包区块,将存在验证成功的交易任务数据的打包区块判定为验证通过的打包区块。
另外,打包区块写入单元34,具体用于:
将验证通过的打包区块放入到预先设置的数组中。
以各打包区块的成块顺序确定当前待写入的打包区块是否在预先设置的数组中。
若当前待写入的打包区块在预先设置的数组中,则将该当前待写入的打包区块写入到区块链上。
若当前待写入的打包区块未在预先设置的数组中,则等待当前待写入的打包区块被放入到预先设置的数组中,或者在确定当前待写入的打包区块被丢弃时,重新根据各打包区块的成块顺序确定当前待写入的打包区块。
本发明实施例提供的一种区块链数据的并行验证处理装置,能够在区块链的验证节点中预先启动多个验证线程,来等待打包区块的到来;之后接收交易任务数据被打包成块的各打包区块;控制多个验证线程并行对各打包区块进行验证处理;将验证通过的打包区块写入区块链。本发明可以通过多个验证线程同时的并行处理,可以极大缩短验证所需时间,提高区块链处理交易的性能。
另外,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有至少一可执行指令,可执行指令使处理器执行如上述的区块链数据的并行验证处理方法对应的操作。
另外,本发明实施例还提供一种计算机设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信,存储器用于存放至少一可执行指令,可执行指令使处理器执行如上述的区块链数据的并行验证处理方法对应的操作。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种区块链数据的并行验证处理方法,其特征在于,包括:
启动区块链验证节点中的多个验证线程;
接收交易任务数据被打包成块的各打包区块;
控制所述多个验证线程并行对所述各打包区块进行验证处理;
将验证通过的打包区块写入区块链。
2.根据权利要求1所述的区块链数据的并行验证处理方法,其特征在于,在所述启动区块链验证节点中的多个验证线程的步骤之前,所述方法还包括:
对所述区块链的验证节点预先配置多个验证线程。
3.根据权利要求1所述的区块链数据的并行验证处理方法,其特征在于,所述控制所述多个验证线程并行对所述各打包区块进行验证处理,包括:
控制多个验证线程并行运行,并在一预先设置的通道内依次放入打包区块;
控制多个验证线程中的任意个线程通过所述预先设置的通道抢占通道内的一打包区块;
控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
4.根据权利要求1所述的区块链数据的并行验证处理方法,其特征在于,所述控制所述多个验证线程并行对所述各打包区块进行验证处理,还包括:
预先为所述多个验证线程分配线程编号;
控制所述多个验证线程并行运行,并根据所述线程编号的顺序依次为各验证线程分配打包区块;
控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
5.根据权利要求1所述的区块链数据的并行验证处理方法,其特征在于,所述控制所述多个验证线程并行对所述各打包区块进行验证处理,还包括:
预先为所述多个验证线程分配线程编号;
控制所述多个验证线程并行运行;
根据所述线程编号,产生随机数,且每一次产生的随机数对应到一个验证线程;
将打包区块分配给对应该随机数的验证线程;
控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理。
6.根据权利要求3-5中任一项所述的区块链数据的并行验证处理方法,其特征在于,所述控制获取到打包区块的验证线程对其区块中包含的交易任务数据进行验证处理的步骤,包括:
若打包区块中存在交易任务数据验证失败,则丢弃所述交易任务数据,保留验证成功的交易任务数据;
若打包区块中全部的交易任务数据验证失败,则将所述打包区块丢弃;
保留存在验证成功的交易任务数据的打包区块,将存在验证成功的交易任务数据的打包区块判定为验证通过的打包区块。
7.根据权利要求6所述的区块链数据的并行验证处理方法,其特征在于,所述将验证通过的打包区块写入区块链,包括:
将验证通过的打包区块放入到预先设置的数组中;
以各打包区块的成块顺序确定当前待写入的打包区块是否在预先设置的数组中;
若当前待写入的打包区块在预先设置的数组中,则将该当前待写入的打包区块写入到区块链上;
若当前待写入的打包区块未在预先设置的数组中,则等待当前待写入的打包区块被放入到预先设置的数组中,或者在确定当前待写入的打包区块被丢弃时,重新根据各打包区块的成块顺序确定当前待写入的打包区块。
8.一种区块链数据的并行验证处理装置,其特征在于,包括:
验证线程启动单元,用于启动区块链验证节点中的多个验证线程;
打包区块接收单元,用于接收交易任务数据被打包成块的各打包区块;
打包区块验证单元,用于控制所述多个验证线程并行对所述各打包区块进行验证处理;
打包区块写入单元,用于将验证通过的打包区块写入区块链。
9.一种非暂态计算机可读存储介质,其上存储有至少一可执行指令,其特征在于,所述可执行指令使处理器执行如权利要求1-7中任一项所述的区块链数据的并行验证处理方法对应的操作。
10.一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信,其特征在于,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的区块链数据的并行验证处理方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811117485.7A CN109285006A (zh) | 2018-09-20 | 2018-09-20 | 一种区块链数据的并行验证处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811117485.7A CN109285006A (zh) | 2018-09-20 | 2018-09-20 | 一种区块链数据的并行验证处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109285006A true CN109285006A (zh) | 2019-01-29 |
Family
ID=65181939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811117485.7A Pending CN109285006A (zh) | 2018-09-20 | 2018-09-20 | 一种区块链数据的并行验证处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109285006A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110276688A (zh) * | 2019-06-14 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种区块链中交易处理的方法及装置 |
CN111144887A (zh) * | 2019-12-20 | 2020-05-12 | 辽宁振兴银行股份有限公司 | 一种区块链共享数据的保护方法 |
CN111221639A (zh) * | 2020-01-09 | 2020-06-02 | 杭州趣链科技有限公司 | 一种区块链平台的区块流水线执行方法 |
CN111985928A (zh) * | 2020-09-03 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 一种验证方法、装置、电子设备和存储介质 |
CN112019350A (zh) * | 2020-08-31 | 2020-12-01 | 光大科技有限公司 | 区块链的区块验证方法及装置 |
CN112039987A (zh) * | 2020-08-28 | 2020-12-04 | 平安科技(深圳)有限公司 | 区块链中区块的处理方法、装置、节点设备及存储介质 |
CN112131236A (zh) * | 2020-09-21 | 2020-12-25 | 中国电子科技网络信息安全有限公司 | 一种新型区块链并行处理性能优化方法 |
CN112231105A (zh) * | 2020-10-26 | 2021-01-15 | 中国工商银行股份有限公司 | 基于区块链的区块写入方法及系统 |
CN112508577A (zh) * | 2021-02-04 | 2021-03-16 | 北京全息智信科技有限公司 | 区块生成及验证的方法、装置、电子设备和可读存储介质 |
WO2021068477A1 (zh) * | 2019-10-11 | 2021-04-15 | 深圳壹账通智能科技有限公司 | 区块处理方法、装置、计算机设备及存储介质 |
CN113157710A (zh) * | 2021-02-01 | 2021-07-23 | 苏宁金融科技(南京)有限公司 | 区块链数据并行写入方法、装置、计算机设备及存储介质 |
EP3933639A1 (en) * | 2020-07-03 | 2022-01-05 | Alipay (Hangzhou) Information Technology Co., Ltd. | Transaction processing method, apparatus, and electronic device for blockchain |
WO2023184052A1 (zh) * | 2022-03-26 | 2023-10-05 | 华为技术有限公司 | 一种数据处理方法、区块链节点及区块链系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423124A (zh) * | 2017-07-27 | 2017-12-01 | 中链科技有限公司 | 一种用于对交易数据进行并行处理的方法 |
CN107678865A (zh) * | 2017-09-20 | 2018-02-09 | 中国银行股份有限公司 | 基于交易分组的区块链的验证方法以及系统 |
CN107688999A (zh) * | 2017-08-11 | 2018-02-13 | 杭州秘猿科技有限公司 | 一种基于区块链的并行交易执行方法 |
CN107704269A (zh) * | 2017-10-16 | 2018-02-16 | 中国银行股份有限公司 | 一种基于区块链生成区块的方法以及系统 |
CN108053211A (zh) * | 2017-12-27 | 2018-05-18 | 北京欧链科技有限公司 | 基于区块链的交易处理方法及装置 |
CN108269072A (zh) * | 2016-12-30 | 2018-07-10 | 深圳瀚德创客金融投资有限公司 | 用于区块链的交易处理方法和网络节点 |
-
2018
- 2018-09-20 CN CN201811117485.7A patent/CN109285006A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108269072A (zh) * | 2016-12-30 | 2018-07-10 | 深圳瀚德创客金融投资有限公司 | 用于区块链的交易处理方法和网络节点 |
CN107423124A (zh) * | 2017-07-27 | 2017-12-01 | 中链科技有限公司 | 一种用于对交易数据进行并行处理的方法 |
CN107688999A (zh) * | 2017-08-11 | 2018-02-13 | 杭州秘猿科技有限公司 | 一种基于区块链的并行交易执行方法 |
CN107678865A (zh) * | 2017-09-20 | 2018-02-09 | 中国银行股份有限公司 | 基于交易分组的区块链的验证方法以及系统 |
CN107704269A (zh) * | 2017-10-16 | 2018-02-16 | 中国银行股份有限公司 | 一种基于区块链生成区块的方法以及系统 |
CN108053211A (zh) * | 2017-12-27 | 2018-05-18 | 北京欧链科技有限公司 | 基于区块链的交易处理方法及装置 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110276688B (zh) * | 2019-06-14 | 2024-02-06 | 深圳前海微众银行股份有限公司 | 一种区块链中交易处理的方法及装置 |
CN110276688A (zh) * | 2019-06-14 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种区块链中交易处理的方法及装置 |
WO2021068477A1 (zh) * | 2019-10-11 | 2021-04-15 | 深圳壹账通智能科技有限公司 | 区块处理方法、装置、计算机设备及存储介质 |
CN111144887A (zh) * | 2019-12-20 | 2020-05-12 | 辽宁振兴银行股份有限公司 | 一种区块链共享数据的保护方法 |
CN111221639A (zh) * | 2020-01-09 | 2020-06-02 | 杭州趣链科技有限公司 | 一种区块链平台的区块流水线执行方法 |
US11803447B2 (en) | 2020-07-03 | 2023-10-31 | Alipay (Hangzhou) Information Technology Co., Ltd. | Transaction processing method, apparatus, and electronic device for blockchain |
EP3933639A1 (en) * | 2020-07-03 | 2022-01-05 | Alipay (Hangzhou) Information Technology Co., Ltd. | Transaction processing method, apparatus, and electronic device for blockchain |
CN112039987A (zh) * | 2020-08-28 | 2020-12-04 | 平安科技(深圳)有限公司 | 区块链中区块的处理方法、装置、节点设备及存储介质 |
CN112039987B (zh) * | 2020-08-28 | 2022-05-20 | 平安科技(深圳)有限公司 | 区块链中区块的处理方法、装置、节点设备及存储介质 |
CN112019350A (zh) * | 2020-08-31 | 2020-12-01 | 光大科技有限公司 | 区块链的区块验证方法及装置 |
CN112019350B (zh) * | 2020-08-31 | 2024-02-02 | 光大科技有限公司 | 区块链的区块验证方法及装置 |
CN111985928A (zh) * | 2020-09-03 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 一种验证方法、装置、电子设备和存储介质 |
CN112131236B (zh) * | 2020-09-21 | 2022-07-05 | 中国电子科技网络信息安全有限公司 | 一种新型区块链并行处理性能优化方法 |
CN112131236A (zh) * | 2020-09-21 | 2020-12-25 | 中国电子科技网络信息安全有限公司 | 一种新型区块链并行处理性能优化方法 |
CN112231105A (zh) * | 2020-10-26 | 2021-01-15 | 中国工商银行股份有限公司 | 基于区块链的区块写入方法及系统 |
CN112231105B (zh) * | 2020-10-26 | 2023-10-27 | 中国工商银行股份有限公司 | 基于区块链的区块写入方法及系统 |
CN113157710A (zh) * | 2021-02-01 | 2021-07-23 | 苏宁金融科技(南京)有限公司 | 区块链数据并行写入方法、装置、计算机设备及存储介质 |
CN112508577A (zh) * | 2021-02-04 | 2021-03-16 | 北京全息智信科技有限公司 | 区块生成及验证的方法、装置、电子设备和可读存储介质 |
WO2023184052A1 (zh) * | 2022-03-26 | 2023-10-05 | 华为技术有限公司 | 一种数据处理方法、区块链节点及区块链系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109285006A (zh) | 一种区块链数据的并行验证处理方法及装置 | |
CN110737664B (zh) | 一种区块链节点同步的方法及装置 | |
CN107528882A (zh) | 区块链共识网络中处理共识请求的方法、装置和电子设备 | |
WO2020011182A1 (zh) | 一种基于有效算力贡献的共识方法、装置及系统 | |
EP3779760B1 (en) | Blockchain-based data processing method and apparatus, and electronic device | |
JP2021515311A (ja) | ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム | |
CN108322309B (zh) | 基于区块链的交易处理方法及装置 | |
CN107679863B (zh) | 一种区块链系统及快速验证区块的方法 | |
CN109067737B (zh) | 一种输出非同步保序条件下的拟态判决装置及方法 | |
TWI733390B (zh) | 在區塊鏈中同時執行交易的方法和裝置及電腦可讀儲存媒體與計算設備 | |
CN108711212A (zh) | 投票存证方法、装置及系统 | |
CN111629039A (zh) | 一种区块链共识方法及客户端、背书节点、排序节点 | |
WO2021036260A1 (zh) | 在区块链中并发执行交易的方法和装置 | |
CN110235162A (zh) | 区块链系统数据处理方法和区块的生成方法 | |
CN107341054A (zh) | 任务执行方法、装置及计算机可读存储介质 | |
CN110276688A (zh) | 一种区块链中交易处理的方法及装置 | |
CN109739684A (zh) | 基于向量时钟的分布式键值数据库的副本修复方法与装置 | |
CN111401875B (zh) | 基于账户模型的区块链转账方法及装置 | |
CN114529415A (zh) | 基于区块链的交易验证方法及装置、电子设备 | |
CN114298713A (zh) | 一种联盟链分片方法、装置及存储介质 | |
CN107688301A (zh) | Hil仿真系统及其控制方法 | |
CN113869902A (zh) | 一种区块链交易执行方法及装置 | |
TWI732501B (zh) | 在區塊鏈中並行執行交易的方法和裝置及電腦可讀儲存媒體與計算設備 | |
CN111327565A (zh) | 区块链出块方法和系统 | |
CN110706108B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210713 Address after: 101300 420, 4th floor, building 3, yard 11, Yuxi Road, Shunyi District, Beijing Applicant after: Zhongji Education Technology Co.,Ltd. Address before: 100034 4008, 4 floor, 9 building, 56 half moon street, Xicheng District, Beijing. Applicant before: SINOCHAIN TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190129 |
|
RJ01 | Rejection of invention patent application after publication |