CN117408694A - 数据处理方法、装置及设备、介质、产品 - Google Patents
数据处理方法、装置及设备、介质、产品 Download PDFInfo
- Publication number
- CN117408694A CN117408694A CN202210797362.2A CN202210797362A CN117408694A CN 117408694 A CN117408694 A CN 117408694A CN 202210797362 A CN202210797362 A CN 202210797362A CN 117408694 A CN117408694 A CN 117408694A
- Authority
- CN
- China
- Prior art keywords
- transaction data
- transaction
- data
- block
- consensus
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 159
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000004806 packaging method and process Methods 0.000 claims abstract description 43
- 238000012795 verification Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012856 packing Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请提出一种数据处理方法、装置及设备、介质、产品。该方法包括:获取待处理的N个交易数据,并执行N个交易数据,N为正整数;根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N;打包N个交易数据,生成待共识区块,在待共识区块中基于区别记录规则记录了M个第一交易数据和除M个第一交易数据以外的N‑M个第二交易数据;将待共识区块广播至共识节点集合,以使共识节点集合中的共识节点基于区别记录规则对待共识区块中的M个第一交易数据进行并行共识处理,对N‑M个第二交易数据进行串行共识处理。本申请可以提高数据处理的效率,以及提高系统的呑吐量。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据处理方法、一种数据处理装置、一种计算机设备、一种计算机可读存储介质及一种计算机程序产品。
背景技术
一个区块可以由多个交易数据构成,当打包节点将该区块写入区块链之前,需要通过共识网络中的共识节点分别对该区块进行共识,即需要这些共识节点分别对该区块中的每个交易数据进行交易验证。
目前,当这些共识节点对该区块中的这些交易数据进行交易验证时,往往需要将这些交易数据(例如,交易数据1、交易数据2和交易数据3)统一打包到区块中。在共识过程中,也一般是串行处理,确保每个交易数据都会被处理到,例如,每个共识节点均需要先执行完交易数据1之后,再执行交易数据2,且在执行完交易数据2之后,再继续执行交易数据3。
共识节点通过串行执行区块中的这些交易数据的方式,不够灵活,不能很好地对某些情况下存在并行处理的交易数据进行处理,目前笼统地进行交易数据打包以便于串行进行共识处理的方式,降低了这些共识节点的共识性能,以至于降低了区块链的吞吐量。
发明内容
本申请实施例提出了一种数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品,可以提高数据处理的效率,以及提高系统的呑吐量。
一方面,本申请实施例提供了一种数据处理方法,该方法包括:
获取待处理的N个交易数据,并执行N个交易数据,N为正整数;
根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N;
打包N个交易数据,生成待共识区块,在待共识区块中基于区别记录规则记录了M个第一交易数据和除M个第一交易数据以外的N-M个第二交易数据;
将待共识区块广播至共识节点集合,以使共识节点集合中的共识节点基于区别记录规则对待共识区块中的M个第一交易数据进行并行共识处理,对N-M 个第二交易数据进行串行共识处理。
一方面,本申请实施例提供了一种数据处理方法,该方法包括:
获取打包节点发送的待共识区块,待共识区块是所述打包节点对待处理的N 个交易数据打包后生成的,待共识区块中基于区别记录规则记录了M个第一交易数据和N-M个第二交易数据,M个第一交易数据是在对N个交易数据并行执行后,根据每个交易数据的交易执行结果确定出来的,N、M均为正整数,且M ≤N;
对待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果;
对待共识区块中的N-M个第二交易数据进行串行共识处理,得到每个第二交易数据的第二交易执行结果;
对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
一方面,本申请实施例提供了一种数据处理装置,该装置包括:
获取单元,用于获取待处理的N个交易数据,并执行N个交易数据,N为正整数;
处理单元,用于根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N;
处理单元,还用于打包N个交易数据,生成待共识区块,在待共识区块中基于区别记录规则记录了M个第一交易数据和除M个第一交易数据以外的N-M 个第二交易数据;
发送单元,用于将待共识区块广播至共识节点集合,以使共识节点集合中的共识节点基于区别记录规则对待共识区块中的M个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。
在一种可能的实现方式中,区别记录规则包括:排列规则和标签设置规则;处理单元打包N个交易数据,生成待共识区块,用于执行以下操作:
按照排列规则打包N个交易数据,生成待共识区块;
其中,基于排列规则打包N个交易数据之后,待共识区块中任意一个第一交易数据会优先于任一个第二交易数据被执行共识处理;
并且,标签设置规则用于指示被打包至待共识区块中的任一个第二交易数据被设置有目标标签。
在一种可能的实现方式中,处理单元执行N个交易数据之前,还用于执行以下操作:
为N个交易数据中的每个交易数据创建对应的交易读缓存、交易写缓存;
其中,交易读缓存用于存储任一个交易数据的读数据集,读数据集用于指示执行交易数据所对应的智能合约的调用信息;交易写缓存用于存储任一个交易数据的写数据集,写数据集用于存储调用智能合约执行交易数据后得到的交易执行结果。
在一种可能的实现方式中,处理单元还用于执行以下操作:
从交易读缓存中获取目标交易数据的读数据集,并基于目标交易数据的读数据集中的调用信息,获取用于执行目标交易数据的目标智能合约;
调用目标智能合约执行目标交易数据,得到目标交易执行结果,目标交易执行结果被作为目标交易数据的写数据集。
在一种可能的实现方式中,任一个交易数据的执行结果是以键key-值value 对的形式存储至相应的交易写缓存中的;处理单元还用于执行以下操作:
从交易写缓存中获取每个交易数据的写关键字key,并对每个交易数据的写关键字key进行哈希运算,得到每个交易数据的第一哈希字符串;
将每个交易数据的第一哈希字符串写入至布隆过滤器中。
在一种可能的实现方式中,任一个交易数据的读数据集是以键key-值value 对的形式存储至相应的交易读缓存中的;
处理单元根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,用于执行以下操作:
遍历每个交易数据的读数据集,并对每个交易数据的读关键字key进行哈希运算,得到每个交易数据的第二哈希字符串;
对每个交易数据的第二哈希字符串,与所述布隆过滤器中的各个第一哈希字符串进行匹配处理,并根据匹配结果从N个交易数据中确定出满足并行执行条件的M个第一交易数据。
在一种可能的实现方式中,处理单元根据匹配结果从N个交易数据中确定出满足并行执行条件的M个第一交易数据,用于执行以下操作:
对目标交易数据的第二哈希字符串,与布隆过滤器中的各个第一哈希字符串进行匹配处理;
若匹配结果为匹配不成功,则确定目标交易数据满足并行执行条件,并将目标交易数据确定为第一交易数据;
若匹配结果为匹配成功,则确定目标交易数据不满足并行执行条件,并将目标交易数据确定为第二交易数据。
在一种可能的实现方式中,在发送单元将待共识区块广播至共识节点集合之后,处理单元还用于执行以下操作:
串行执行N个交易数据中的N-M个第二交易数据,得到每个第二交易数据的第二交易执行结果;
从每个交易数据的交易执行结果中获取M个第一交易数据的第一交易执行结果;
对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
一方面,本申请实施例提供了一种数据处理装置,该装置包括:
获取单元,用于获取打包节点发送的待共识区块,待共识区块是所述打包节点对待处理的N个交易数据打包后生成的,待共识区块中基于区别记录规则记录了M个第一交易数据和N-M个第二交易数据,M个第一交易数据是在对N 个交易数据并行执行后,根据每个交易数据的交易执行结果确定出来的,N、M 均为正整数,且M≤N;
处理单元,用于对待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果;
处理单元,还用于对待共识区块中的N-M个第二交易数据进行串行共识处理,得到每个第二交易数据的第二交易执行结果;
处理单元,还用于对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
在一种可能的实现方式中,处理单元对待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果之后,还用于执行以下操作:
对并行共识处理过程进行有效性验证,若验证不通过,则删除各个第一交易执行结果和各个第二交易执行结果;
对N个交易数据进行串行共识处理,得到每个交易数据的交易执行结果。
在一种可能的实现方式中,处理单元对并行共识处理过程进行有效性验证,用于执行以下操作:
遍历目标第二交易数据的交易读缓存,获取目标第二交易数据的读数据集,读数据集是以键key-值value对的形式存储至交易读缓存中的;
对目标第二交易数据的读关键字key进行哈希运算,得到目标第二交易数据的验证哈希字符串;
基于布隆过滤器保存的第一哈希字符串对验证哈希字符串进行匹配处理,若匹配成功,则确定对并行执行过程验证通过。
一方面,本申请实施例提供一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述的数据处理方法。
一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的数据处理方法。
一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的数据处理方法。
本申请实施例中,可以获取待共识的N个交易数据,并执行这N个交易数据,N为正整数;然后,根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N。接下来,打包N个交易数据,生成待共识区块,待共识区块中包括M个第一交易数据和除M个第一交易数据以外的N-M个第二交易数据;最后,可以将待共识区块广播至共识节点集合,以使共识节点集合中的共识节点对待共识区块中的M 个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。由此可见,本申请实施例中可以预先执行多个交易数据,然后按照交易执行结果识别出可并行的交易数据,然后再将这些交易数据中可并行的交易数据(即第一交易数据)和不可并行的交易数据(即第二交易数据)打包至区块中,最后将打包好的区块广播至多个共识节点,使得共识节点可以并行执行第一交易数据,然后串行执行第二交易数据,这种共识方式可以对可并行执行的部分交易数据进行并行共识处理,相比于对所有的交易数据均串行执行而言,本申请可以提高数据处理的效率,从而提高系统的呑吐量。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链节点系统的结构示意图;
图2是本申请实施例提供的一种区块链的结构示意图;
图3是本申请实施例提供的一种数据处理方案的原理示意图;
图4是本申请实施例提供的一种数据处理方法的流程示意图;
图5a是本申请实施例提供的一种并行执行交易数据的流程示意图;
图5b是本申请实施例提供的一种交易数据的执行过程的流程示意图;
图6是本申请实施例提供的一种布隆过滤器的原理示意图;
图7a是本申请实施例提供的一种确定第二交易数据的流程示意图;
图7b是本申请实施例提供的一种确定第一交易数据的流程示意图;
图8是本申请实施例提供的一种生成待共识区块的流程示意图;
图9是本申请实施例提供的另一种数据处理方法的流程示意图;
图10是本申请实施例提供的一种数据处理装置的结构示意图;
图11是本申请实施例提供的另一种数据处理装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
本申请的数据处理方案可以与区块链技术相结合。接下来,对本申请提供的数据处理方案涉及到的区块链技术进行详细介绍:
一、区块链节点系统:
本申请实施例所涉及的数据处理系统可以是由多个节点通过网络通信的形式连接形成的分布式系统(即区块链节点系统)。接下来结合附图1对区块链节点系统所涉及的相关技术进行详细介绍:
请参见图1,图1是本申请实施例提供的一种区块链节点系统的结构示意图。区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,该数据库中的每个节点均存储一条相同的区块链,区块链网络中包括共识节点,共识节点负责区块链全网的共识。
如图1所示的区块链节点系统可以对应于区块链网络,该区块链网络可以包括但不限于联盟链、公有链、私有链等所对应的区块链网络。区块链节点系统是指用于进行区块链节点与区块链节点之间数据共享的系统,该区块链节点系统中可以包括多个节点,多个节点具体可以包括节点101、节点102、节点 103、…、节点10n,这里的节点101、节点102、节点103、…、节点10n可以统称为区块链节点。可以理解的是,节点与节点之间可以通过信息连接的方式建立通信连接,上述的信息连接不限定具体的连接方式,例如可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。
其中,区块链节点系统中的每个节点在进行正常工作时可以接收到输入信息,并基于接收到的输入信息维护该区块链节点系统内的共享数据。为了保证区块链节点系统内的信息互通,区块链节点系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当区块链节点系统中的任意节点接收到输入信息时,区块链节点系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链节点系统中全部节点上存储的数据均一致。
可以理解的是,区块链网络可以基于节点标识实现节点之间的信息连接,对于区块链节点系统中的每个节点,均具有与其对应的节点标识,而且区块链节点系统中的每个节点均可以存储有区块链节点系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链节点系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。
其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识区块链网络中节点的信息,表1中仅以IP地址为例进行说明。例如,节点1(例如,节点1可以为图1所示的节点101)可以通过节点标识000.000.000.000向节点2(例如,节点2可以为图1所示的节点102)发送信息(例如,区块),且节点2可以通过节点标识111.111.111.111确定该信息是由节点1所发送的。
表1.节点标识列表
节点名称 | 节点标识 |
节点1 | 000.000.000.000 |
节点2 | 111.111.111.111 |
… | … |
节点N | xxx.xxx.xxx.xxx |
可以理解的是,区块链系统中可以包括有智能合约,该智能合约在区块链系统中可以理解为是一种区块链各节点(包括共识节点,所谓共识节点是指在区块链系统中,拥有全量账本信息,并且参与记账共识的节点)可以理解并执行的代码,可以执行任意逻辑并得到结果。应当理解,区块链中可以包括一个或多个智能合约,这些智能合约可以标识号(Identity document,ID)或名称来进行区分,而交易数据请求中可以携带智能合约的标识号或名称,以此指定区块链需要运行的智能合约。
二、区块链结构:
参见图2,图2是本申请实施例提供的一种区块链的结构示意图。如图2所示,区块链由多个区块(包括创始块)组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
可以理解的是,区块(Block)是在区块链网络上承载交易数据的数据包,是一种被标记上时间戳和之前一个区块的哈希值的数据结构,区块经过网络的共识机制验证并确定区块中的交易。
可以理解的是,本申请实施例所提供的交易数据处理方法可以由计算机设备执行,计算机设备包括但不限于终端设备或服务器。其中,终端设备可以包括但不限于:手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(Mobile Internet Device,MID)、智能语音交互设备、车载终端、路边设备、飞行器、可穿戴设备、智能家电、或者例如智能手表、智能手环、计步器等具有网络配置管理功能的可穿戴设备,等等。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
应当理解,在区块链中,在将一个区块(即待共识区块)进行上链之前,该区块需要经过区块链网络中的共识节点进行共识,在共识通过后才能将该区块添加到区块链上。可以理解的是,当区块链被用于政府或者商业机构的一些场景中时,并非区块链中的所有参与节点(即上述区块链节点系统中的区块链节点)都有足够的资源和必要性成为区块链的共识节点。例如,在图1所示的区块链节点系统中,可以将节点101、节点102、节点103作为该区块链节点系统中的共识节点,其中,节点101可以作为打包生成区块的打包节点,节点102和节点103可以作为参与共识的共识节点。
可以理解的是,区块链所在打包节点(打包节点属于共识节点)可以根据区块链节点系统中其他共识节点的节点标识,将新生成的区块分别发送给打包节点所在的区块链节点系统中的其他共识节点,由共识节点对新生成的区块进行共识,并在共识成功后将新生成的区块添加至其存储的区块链。
基于以上描述,本申请提供了一种数据处理方案,请参见图3,图3是本申请实施例提供的一种数据处理方案的原理示意图。如图3所示,该数据处理方案的原理如下:打包节点(当前出块节点,也属于共识节点)可以获取待共识的N个交易数据,并执行这N个交易数据,N为正整数。然后,根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N。接下来,打包N个交易数据,生成待共识区块,待共识区块中包括M个第一交易数据和除M个第一交易数据以外的N-M 个第二交易数据;最后,可以将待共识区块广播至共识节点集合(包括至少一个共识节点),以使共识节点集合中的共识节点对待共识区块进行共识验证处理,所谓共识验证处理包括:对待共识区块中的M个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。最后,各个共识节点还可以对并行共识过程进行有效性验证,若验证通过,则可以合并各个交易数据(第一交易数据和第二交易数据)的交易执行结果。
由此可见,本申请实施例中打包节点可以预先执行多个交易数据,然后按照交易执行结果识别出可并行的交易数据,然后再将这些交易数据中可并行的交易数据(即第一交易数据)和不可并行的交易数据(即第二交易数据)打包至区块中,最后将打包好的区块广播至多个共识节点。然后,共识节点在接收到打包节点发送的待共识区块后,共识节点可以并行执行第一交易数据,然后串行执行第二交易数据。这种共识方式解决了因需串行执行大量交易数据所带来的性能低下,系统呑吐量低的问题,由于本申请可并行执行交易数据,从而提升了区块链的执行效率,大大提高了系统的呑吐量。
特别需要说明的是,在本申请的后续具体实施方式中,涉及到对象信息(例如对象的身份标识)等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
基于上述对数据处理方案和系统的相关描述,本申请实施例提出了一种数据处理方法。参见图4所示,图4是本申请实施例提供的一种数据处理方法的流程示意图,该数据处理方法可应用于区块链中,可由上述所提及的区块链节点(例如打包节点)执行,为便于阐述,后续均以计算机设备执行该数据处理方法为例进行说明。其中,该数据处理方法可包括如下步骤S401~S404:
S401、获取待处理的N个交易数据,并执行N个交易数据,N为正整数。
本申请实施例中,计算机设备可以从交易缓存池中获取N个交易数据,这 N个交易数据可以是交易缓存池中部分或全部的交易数据,其中,若N个交易数据是交易缓存池中的部分交易数据,那么计算机设备获取这N个交易数据的方式可以为:按照交易生成时间戳从交易缓存池中依次获取N个交易数据,或者从交易缓存池中随机获取N个交易数据。
其中,计算机设备执行N个交易数据具体可以包括:并行执行N个交易数据。假设N个交易数据分别表示为:交易数据1、交易数据2...交易数据n,那么,所谓并行执行N个交易数据具体包括:在执行交易数据1的同时,也在执行交易数据2、交易数据3...交易数据n。
在一种可能的实现方式中,计算机设备执行n个交易数据之前,计算机设备还可以为N个交易数据中的每个交易数据创建对应的交易读缓存和交易写缓存。其中,交易读缓存用于存储任一个交易数据的读数据集,所谓读数据集用于指示执行交易数据所对应的智能合约的调用信息;交易写缓存用于存储任一个交易数据的写数据集,所谓写数据集用于存储调用智能合约执行交易数据后得到的交易执行结果。其中,调用信息可以包括但不限于:智能合约的调用地址、合约标识(例如合约名称)等。
具体来说,计算机设备可以从交易读缓存中获取目标交易数据的读数据集,并基于目标交易数据的读数据集中的调用信息,获取用于执行目标交易数据的目标智能合约;然后,计算机设备可以调用目标智能合约执行目标交易数据,得到目标交易执行结果,目标交易执行结果被作为目标交易数据的写数据集。其中,目标交易数据是指N个交易数据中的任一个。
应当理解,假设N个交易数据中任意两个交易数据分别表示为第一交易数据和第二交易数据。其中,第一交易数据对应的交易读缓存中包括第一交易数据对应的读数据集。因此,计算机设备(打包节点)可以从第一交易数据对应的交易读缓存中获取第一交易数据对应的读数据集,基于第一交易数据对应的读数据集中的合约调用地址以及合约名称,获取用于执行第一交易数据的智能合约,调用该智能合约执行第一交易数据,从而可以得到第一交易数据对应的交易执行结果,并可以将交易执行结果添加至第一交易数据的交易写缓存,进而可以基于交易写缓存中所存储的数据构建得到第一交易数据对应的写数据集。
请参见图5a,图5a是本申请实施例提供的一种并行执行交易数据的流程示意图。如图5a所示,计算机设备可以基于账本缓存为每个交易数据分别创建对应的交易读缓存和交易写缓存,一个交易数据对应一个交易读缓存和一个交易写缓存。例如交易1读缓存、交易2读缓存…交易n读缓存,以及,交易1写缓存、交易2写缓存…交易n写缓存。
接下来,以任一交易数据(第一交易数据、或第二交易数据)为例,通过调用智能合约对其执行过程进行详细说明。请参见图5b,图5b是本申请实施例提供的一种交易数据的执行过程的流程示意图。如图5b所示,调用智能合约执行任一交易数据的执行过程可以包括如下步骤S1-S6:
S1、触发合约。
具体实现时,计算机设备可以从第一交易数据对应的交易读缓存中获取第一交易数据对应的读数据集,基于第一交易数据对应的读数据集触发调用其相应的智能合约。
S2、分析交易。
具体实现时,计算机设备基于第一交易数据对应的读数据集中的合约调用地址以及合约名称,获取用于执行第一交易数据的智能合约(例如包括合约名、合约方法、以及合约输入等信息)。
S3、载入合约的存储信息和合约的字节码。
具体实现时,计算机设备从第一交易数据和状态数据库中获取相应的合约字节码和合约输入。
S4、执行合约。
具体实现时,合约代码在计算机设备中执行,完成对应第一交易数据的业务逻辑。
S5、返回结果更新状态数据库。
具体实现时,计算机设备将交易执行结果写回到状态数据库中,完成业务状态的更新。
S6、制作默克尔树树根,存储在区块中。
具体实现时,当待共识区块中的所有的交易数据(第一交易数据和第二交易数据)都已执行时,系统会将状态数据库的当前状态的哈希摘要作为认证记录存储在区块链中。
通过上述方式,针对每个交易数据(可包括第一交易数据和第二交易数据) 而言,通过调用相应的智能合约执行相关的业务操作,即可得到每个交易数据的交易执行结果,并将每个交易数据的交易执行结果写入至交易写缓存中,从而将交易执行结果作为其写数据集中的数据。
S402、根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N。
在一种可能的实现方式中,任一个交易数据的交易执行结果是以键(key) -值(value)对的形式存储至相应的交易写缓存中的,即key=value。其中,计算机设备还可以从交易写缓存中获取每个交易数据的写关键字key,并对每个交易数据的写关键字key进行哈希运算,得到每个交易数据的第一哈希字符串;然后,可以将每个交易数据的第一哈希字符串写入至布隆过滤器(Bloom Filter) 中。需要说明的是,通过将每个交易数据的第一哈希字符串写入至布隆过滤器的方式,可以用于对每个交易数据进行识别分类处理,从而从N个交易数据中确定出满足并行执行条件的第一交易数据,以及从N个交易数据中确定出不满足并行执行条件的第二交易数据。
具体来说,布隆过滤器是一个bit(比特)向量或者说bit(比特)数组。其中,布隆过滤器的数据结构可以如下表2所示:
表2.布隆过滤器的数据结构
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
基于表2所示,布隆过滤器的原理大致如下:布隆过滤器是一个包含多个 (例如11个)比特位的数组,且初始化的布隆过滤器中的各个比特位的值均为 0,若需要向布隆过滤器添加一个值时,则需要使用多个不同的哈希函数生成多个哈希值,并对每个生成的哈希值指向的比特位置1。
举例来说,本申请实施例中,针对任一交易数据(例如交易数据1)对应的写关键字key1,可以利用一个或多个哈希函数分别进行哈希运算,得到对应的哈希字符串。请参见图6,图6是本申请实施例提供的一种布隆过滤器的原理示意图。如图6所示,假设布隆过滤器为11个比特位的比特数组,且哈希函数包含5个,那么对该交易数据1对应的写关键字key1进行哈希运算后,得到的第一哈希字符串为:10101010100,然后将第一哈希字符串10101010100写入至布隆过滤器中。可以理解的是,针对每个交易数据,其对应写入至布隆过滤器的详细过程如上所示,在此不再赘述。
在一种可能的实现方式中,任一个交易数据的读数据集是以键key-值value 对的形式存储至相应的交易读缓存中的。计算机设备根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,具体可以包括:首先,遍历每个交易数据的读数据集,并对每个交易数据的读关键字key进行哈希运算,得到每个交易数据的第二哈希字符串;然后,对每个交易数据的第二哈希字符串,与布隆过滤器中的各个第一哈希字符串进行匹配处理,并根据匹配结果从N个交易数据中确定出满足并行执行条件的M个第一交易数据。
具体来说,若任一交易数据表示为目标交易数据。计算机设备根据匹配结果从N个交易数据中确定出满足并行执行条件的M个第一交易数据,具体可以包括:对目标交易数据的第二哈希字符串,与布隆过滤器中的各个第一哈希字符串进行匹配处理;若匹配结果为匹配不成功,则确定目标交易数据满足并行执行条件,并将目标交易数据确定为第一交易数据;若匹配结果为匹配成功,则确定目标交易数据不满足并行执行条件,并将目标交易数据确定为第二交易数据。
例如,请参见图7a,图7a是本申请实施例提供的一种确定第二交易数据的流程示意图。如图7a所示,从交易数据2的交易读缓存中获取交易数据2的读关键字key2,并利用一个或多个哈希函数(例如5个)对该读关键字key2进行哈希运算后,得到第二哈希字符串假设为:10101010100。接下来,将该第二哈希字符串与布隆过滤器中各个第一哈希字符串进行比对,由于该交易数据2的第二哈希字符串与布隆过滤器中交易数据1的第一哈希字符串10101010100相同,那么可以确定交易数据2读到了交易数据1写的数据,因此交易数据2需要在交易数据1之后执行,则交易数据2为不满足并行执行条件的交易数据(即第二交易数据)。
又如,请参见图7b,图7b是本申请实施例提供的一种确定第一交易数据的流程示意图。如图7b所示,从交易数据3的交易读缓存中获取交易数据3的读关键字key3,并利用一个或多个哈希函数(例如5个)对该读关键字key3进行哈希运算后,得到第二哈希字符串假设为:0101010101011。接下来,将该第二哈希字符串与布隆过滤器中各个第一哈希字符串进行比对,由于该交易数据3 的第二哈希字符串与布隆过滤器中任一第一哈希字符串均不同,那么可以确定交易数据3为满足并行执行条件的交易数据(即第一交易数据)。
通过上述方式,可以从N个交易数据中将满足并行执行条件的交易数据确定为第一交易数据,将不满足并行执行条件的交易数据确定为第二交易数据,以此得到M个第一交易数据和N-M个第二交易数据。
S403、打包N个交易数据,生成待共识区块,在待共识区块中基于区别记录规则记录了M个第一交易数据和除M个第一交易数据以外的N-M个第二交易数据。
在一种可能的实现方式中,区别记录规则包括:排列规则和标签设置规则。计算机设备打包N个交易数据,生成待共识区块,具体可以包括如下步骤:按照排列规则打包N个交易数据,生成待共识区块。其中,基于排列规则打包N 个交易数据之后,待共识区块中任意一个第一交易数据会优先于任一个第二交易数据被执行共识处理;并且,标签设置规则用于指示被打包至待共识区块中的任一个第二交易数据被设置有目标标签。
具体来说,在从N个交易数据中确定出M个第一交易数据和N-M个第二交易数据后,可以优先将满足并行执行条件的M个第一交易数据打包到区块,然后再将不满足并行执行条件的N-M个第二交易数据打包到区块,从而生成待共识区块。其中,将M个第一交易数据打包到区块的过程中,可以按照每个第一交易数据的交易生成时间由早到晚依次排序打包;将N-M个第二交易数据打包到区块的过程中,可以按照每个第二交易数据的交易生成时间戳由早到晚依次排序打包。并且,任一个第二交易数据还可以被设置有目标标签,例如NeedRedo,当然,针对任一个第一交易数据而言,可以不对其设置任何标签,也可以对其设置有与目标标签不相同的其它标签,例如unNeedRedo。
举例来说,请参见图8,图8是本申请实施例提供的一种生成待共识区块的流程示意图。如图8所示,假设N个交易数据分别表示为:交易数据a、交易数据b、交易数据c、交易数据d、交易数据e。其中,交易数据a、交易数据c、交易数据e被确定为第一交易数据,即可并行执行的交易数据;交易数据b、交易数据d被确定为第二交易数据,即不可并行执行(即需串行执行)的交易数据,那么,可以将交易数据a、交易数据c、交易数据优先打包至区块中,然后将交易数据b、交易数据d再打包至区块中,从而生成如图8所示的待共识区块。
S404、将待共识区块广播至共识节点集合,以使共识节点集合中的共识节点对待共识区块中的M个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。
其中,共识节点集合中包括一个或多个共识节点,计算机设备(打包节点,同样也属于共识节点)将待共识区块广播至共识节点集合中后,可以使得共识节点集合中的全部或部分共识节点对待共识区块中的M个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。
在一种可能的实现方式中,计算机设备将待共识区块广播至共识节点集合之后,还可以执行如下步骤:串行执行N个交易数据中的N-M个第二交易数据,得到每个第二交易数据的第二交易执行结果;从每个交易数据的交易执行结果中获取M个第一交易数据的第一交易执行结果;对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
其中,所谓串行执行N-M个第二交易数据(假设分别表示为第二交易数据 a、第二交易数据b...第二交易数据x)可以包括:在执行完第二交易数据a之后,然后再执行第二交易数据b,接下来执行第二交易数据c,以此类推,依次执行完这N-M个第二交易数据。其中,执行顺序可以是指按照每个第二交易数据的交易生成时间戳由早到晚的顺序。
另外,计算机设备可以按照每个交易数据(第一交易数据、第二交易数据) 在待共识区块中的交易排列顺序对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。其中,所谓的交易排列顺序可以是指基于各个交易数据的交易生成时间戳由早到晚的顺序。
本申请实施例中,可以获取待共识的N个交易数据,并执行这N个交易数据,N为正整数;然后,根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N。接下来,打包N个交易数据,生成待共识区块,待共识区块中包括M个第一交易数据和除M个第一交易数据以外的N-M个第二交易数据;最后,可以将待共识区块广播至共识节点集合,以使共识节点集合中的共识节点对待共识区块中的M 个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。由此可见,本申请实施例中可以预先并行执行多个交易数据,然后按照交易执行结果识别出可并行的交易数据,然后再将这些交易数据中可并行的交易数据 (即第一交易数据)和不可并行的交易数据(即第二交易数据)打包至区块中,最后将打包好的区块广播至多个共识节点,使得共识节点可以并行执行第一交易数据,然后串行执行第二交易数据,这种共识方式可以对可并行执行的部分交易数据进行并行共识处理,相比于对所有的交易数据均串行执行而言,本申请可以提高数据处理的效率。
请参见图9,图9是本申请实施例提供的另一种数据处理方法的流程示意图。该数据处理方法可应用于区块链中,可由上述所提及的区块链节点(例如除打包节点以外的任一共识节点)执行,为便于阐述,后续均以计算机设备执行该数据处理方法为例进行说明。其中,该数据处理方法可包括如下步骤S901~S904:
S901、获取打包节点发送的待共识区块。
其中,待共识区块是打包节点对待处理的N个交易数据打包后生成的,待共识区块中基于区别记录规则记录了M个第一交易数据和N-M个第二交易数据,M个第一交易数据是在对N个交易数据并行执行后,根据每个交易数据的交易执行结果确定出来的,N、M均为正整数,且M≤N。
其中,区别记录规则包括:排列规则和标签设置规则;其中,排列规则用于指示打包N个交易数据并生成待共识区块,标签设置规则用于指示被打包至待共识区块中的任一个第二交易数据被设置有目标标签。举例来说,任一个第二交易数据所携带的目标标签可以为NeedRedo。
需要说明的是,计算机设备根据每个交易数据的交易执行结果确定出M个第一交易数据的具体执行步骤,详细可以参考上述图4实施例中步骤S402中所执行的具体步骤,本申请实施例在此不再赘述。
S902、对待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果。
具体实现时,计算机设备对M个第一交易数据进行并行共识处理包括:并行执行M个第一交易数据,假设M个第一交易数据分别表示为:第一交易数据 1、第一交易数据2...第一交易数据m,那么,并行执行这M个第一交易数据具体包括:在执行第一交易数据1的同时,也执行第一交易数据2、第一交易数据3...第一交易数据m。
在一种可能的实现方式中,计算机设备对待共识区块中的M个第一交易数据进行并行共识处理之前,还用于获取打包节点的节点标识,并基于获取到的节点标识对打包节点进行验证,若验证通过,则触发执行对待共识区块中的M 个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果的步骤;若验证不通过,则删除该待共识区块。通过这种方式,在共识处理之前对打包节点的身份信息进行校验,可以提高数据处理过程的准确性。
具体来说,待共识区块中的任一个第一交易数据不携带目标标签,任一个第二交易数据携带有目标标签。那么,计算机设备获取到待共识区块之后,将不携带有目标标签的交易数据确定为满足并行执行条件的第一交易数据,然后执行这些第一交易数据(即M个第一交易数据)后,可以分别得到每个第一交易数据的第一交易执行结果。需要说明的是,计算机设备执行任一第一交易数据,从而得到相应的第一交易执行结果的具体步骤,详细可以参考上述图4实施例中所描述的相关内容,本申请实施例在此不再赘述。
在一种可能的实现方式中,计算机设备对待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果之后,还用于执行以下步骤:对并行共识处理过程进行有效性验证,若验证不通过,则删除各个第一交易执行结果和各个第二交易执行结果;对N个交易数据进行串行共识处理,得到每个交易数据的交易执行结果。
具体来说,计算机上设备对并行共识处理过程进行有效性验证,具体可以包括:遍历目标第二交易数据的交易读缓存,获取目标第二交易数据的读数据集,读数据集是以键key-值value对(key-value)的形式存储至交易读缓存中的;对目标第二交易数据的读关键字key进行哈希运算,得到目标第二交易数据的验证哈希字符串;基于布隆过滤器保存的第一哈希字符串对验证哈希字符串进行匹配处理,若匹配成功,则确定对并行执行过程验证通过;若匹配不成功,则确定对并行执行过程验证不通过。
应当理解,任一交易数据(第一交易数据、第二交易数据)对应一个交易读缓存和一个交易写缓存,其中,交易读缓存用于存储任一个交易数据的读数据集,读数据集用于指示执行交易数据所对应的智能合约的调用信息(例如合约名称、调用地址等信息);交易写缓存用于存储任一个交易数据的写数据集,写数据集用于存储调用智能合约执行交易数据后得到的交易执行结果。
需要说明的是,关于布隆过滤器保存的第一哈希字符串的具体过程详细可以参考上述图4实施例中,计算机设备将每个交易数据的第一哈希字符串写入至布隆过滤器中的相关内容,本申请实施例在此不再赘述。
S903、对待共识区块中的N-M个第二交易数据进行串行共识处理,得到每个第二交易数据的第二交易执行结果。
具体实现时,计算机设备对N-M个第二交易数据进行串行共识处理包括:串行执行N-M个第一交易数据,假设N-M个第二交易数据分别表示为:第二交易数据a、第二交易数据b...第二交易数据x,那么,并行执行这N-M个第二交易数据具体包括:在执行完第二交易数据a之后,然后执行第二交易数据b,以及,在执行完第二交易数据b之后,然后执行第二交易数据c,以此类推,直至执行完第二交易数据x。
可以理解的是,待共识区块中的任一个第二交易数据被设置有目标标签(例如NeedRedo)。那么,计算机设备获取到待共识区块之后,将携带有目标标签的交易数据确定为不满足并行执行条件(即需要串行执行)的第二交易数据,然后执行这些第二交易数据(即N-M个第二交易数据)后,可以分别得到每个第二交易数据的第二交易执行结果。需要说明的是,计算机设备执行任一第二交易数据,从而得到相应的第二交易执行结果的具体步骤,详细可以参考上述图4实施例中所描述的相关内容,本申请实施例在此不再赘述。
S904、对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
在一种可能的实现方式中,计算机设备可以按照每个交易数据(第一交易数据、第二交易数据)在待共识区块中的交易排列顺序对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。其中,所谓的交易排列顺序可以是指基于各个交易数据的交易生成时间戳由早到晚的顺序。例如,N个交易数据包括:交易数据1、交易数据2、交易数据3,其中,交易数据1的交易生成时间戳为t1,交易数据2的交易生成时间戳为t2,交易数据3的交易生成时间戳为t3,且t1<t2<t3,那么,在对交易数据1的交易执行结果s1、交易数据2的交易执行结果s2、交易数据3的交易执行结果s3进行合并处理时,可以首先将s1与s2进行合并得到s12,然后再将s12与s3合并得到S123,以此类推,将所有交易数据的交易执行结果合并后,即可得到交易合并执行结果。
在一种可能的实现方式中,计算机设备还可以将交易合并执行结果写回至区块链的状态数据库中,以使状态数据库可以根据当前写入的最新的区块(待共识区块)中的各个交易数据的交易执行结果,实现业务状态的更新。例如,待共识区块中所包括的任一交易数据为:对象A向对象B的账户转移m个单位的虚拟资源。那么,在得到该交易数据的交易执行结果并写入至状态数据库后,在状态数据库中所执行业务状态的更新操作可以包括:从对象A的账户中扣除 m个单位的虚拟资源,并在对象B的账户中增加m个单位的虚拟资源。
本申请实施例中,区块链中的共识节点在接收到打包节点发送的待共识区块后,可以并行执行待共识区块中的部分交易数据,然后再串行执行待共识区块中剩余的交易数据,这种共识方式解决了因需串行执行大量交易数据所带来的性能低下,系统呑吐量低的问题。由于本申请可并行执行交易数据,从而提升了区块链的执行效率,大大提高了系统的呑吐量。
请参见图10,图10是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置1000可应用于前述实施例中的计算机设备(例如打包节点)。数据处理装置1000可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置1000为一个应用软件;该数据处理装置1000可以用于执行本申请实施例提供的数据处理方法中的相应步骤。该数据处理装置 1000可包括:
获取单元1001,用于获取待处理的N个交易数据,并执行N个交易数据, N为正整数;
处理单元1002,用于根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N;
处理单元1002,还用于打包N个交易数据,生成待共识区块,在待共识区块中基于区别记录规则记录了M个第一交易数据和除M个第一交易数据以外的 N-M个第二交易数据;
发送单元1003,用于将待共识区块广播至共识节点集合,以使共识节点集合中的共识节点基于区别记录规则对待共识区块中的M个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。
在一种可能的实现方式中,区别记录规则包括:排列规则和标签设置规则;处理单元1002打包N个交易数据,生成待共识区块,用于执行以下操作:
按照排列规则打包N个交易数据,生成待共识区块;
其中,基于排列规则打包N个交易数据之后,待共识区块中任意一个第一交易数据会优先于任一个第二交易数据被执行共识处理;
并且,标签设置规则用于指示被打包至待共识区块中的任一个第二交易数据被设置有目标标签。
在一种可能的实现方式中,处理单元1002执行N个交易数据之前,还用于执行以下操作:
为N个交易数据中的每个交易数据创建对应的交易读缓存、交易写缓存;
其中,交易读缓存用于存储任一个交易数据的读数据集,读数据集用于指示执行交易数据所对应的智能合约的调用信息;交易写缓存用于存储任一个交易数据的写数据集,写数据集用于存储调用智能合约执行交易数据后得到的交易执行结果。
在一种可能的实现方式中,处理单元1002还用于执行以下操作:
从交易读缓存中获取目标交易数据的读数据集,并基于目标交易数据的读数据集中的调用信息,获取用于执行目标交易数据的目标智能合约;
调用目标智能合约执行目标交易数据,得到目标交易执行结果,目标交易执行结果被作为目标交易数据的写数据集。
在一种可能的实现方式中,任一个交易数据的执行结果是以键key-值value 对的形式存储至相应的交易写缓存中的;处理单元1002还用于执行以下操作:
从交易写缓存中获取每个交易数据的写关键字key,并对每个交易数据的写关键字key进行哈希运算,得到每个交易数据的第一哈希字符串;
将每个交易数据的第一哈希字符串写入至布隆过滤器中。
在一种可能的实现方式中,任一个交易数据的读数据集是以键key-值value 对的形式存储至相应的交易读缓存中的;
处理单元1002根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,用于执行以下操作:
遍历每个交易数据的读数据集,并对每个交易数据的读关键字key进行哈希运算,得到每个交易数据的第二哈希字符串;
对每个交易数据的第二哈希字符串,与所述布隆过滤器中的各个第一哈希字符串进行匹配处理,并根据匹配结果从N个交易数据中确定出满足并行执行条件的M个第一交易数据。
在一种可能的实现方式中,处理单元1002根据匹配结果从N个交易数据中确定出满足并行执行条件的M个第一交易数据,用于执行以下操作:
对目标交易数据的第二哈希字符串,与布隆过滤器中的各个第一哈希字符串进行匹配处理;
若匹配结果为匹配不成功,则确定目标交易数据满足并行执行条件,并将目标交易数据确定为第一交易数据;
若匹配结果为匹配成功,则确定目标交易数据不满足并行执行条件,并将目标交易数据确定为第二交易数据。
在一种可能的实现方式中,在发送单元1003将待共识区块广播至共识节点集合之后,处理单元1002还用于执行以下操作:
串行执行N个交易数据中的N-M个第二交易数据,得到每个第二交易数据的第二交易执行结果;
从每个交易数据的交易执行结果中获取M个第一交易数据的第一交易执行结果;
对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
本申请实施例中,可以获取待共识的N个交易数据,并执行这N个交易数据,N为正整数;然后,根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N。接下来,打包N个交易数据,生成待共识区块,待共识区块中包括M个第一交易数据和除M个第一交易数据以外的N-M个第二交易数据;最后,可以将待共识区块广播至共识节点集合,以使共识节点集合中的共识节点对待共识区块中的M 个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。由此可见,本申请实施例中可以预先执行多个交易数据,然后按照交易执行结果识别出可并行的交易数据,然后再将这些交易数据中可并行的交易数据(即第一交易数据)和不可并行的交易数据(即第二交易数据)打包至区块中,最后将打包好的区块广播至多个共识节点,使得共识节点可以并行执行第一交易数据,然后串行执行第二交易数据,这种共识方式可以对可并行执行的部分交易数据进行并行共识处理,相比于对所有的交易数据均串行执行而言,本申请可以提高数据处理的效率,从而提高系统的呑吐量。
请参见图11,图11是本申请实施例提供的另一种数据处理装置的结构示意图。该数据处理装置1100可应用于前述实施例中的计算机设备(例如共识节点)。数据处理装置1100可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置1100为一个应用软件;该数据处理装置1100可以用于执行本申请实施例提供的数据处理方法中的相应步骤。该数据处理装置 1100可包括:
获取单元1101,用于获取打包节点发送的待共识区块,待共识区块是所述打包节点对待处理的N个交易数据打包后生成的,待共识区块中基于区别记录规则记录了M个第一交易数据和N-M个第二交易数据,M个第一交易数据是在对N个交易数据并行执行后,根据每个交易数据的交易执行结果确定出来的, N、M均为正整数,且M≤N;
处理单元1102,用于对待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果;
处理单元1102,还用于对待共识区块中的N-M个第二交易数据进行串行共识处理,得到每个第二交易数据的第二交易执行结果;
处理单元1102,还用于对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
在一种可能的实现方式中,处理单元1102对待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果之后,还用于执行以下操作:
对并行共识处理过程进行有效性验证,若验证不通过,则删除各个第一交易执行结果和各个第二交易执行结果;
对N个交易数据进行串行共识处理,得到每个交易数据的交易执行结果。
在一种可能的实现方式中,处理单元1102对并行共识处理过程进行有效性验证,用于执行以下操作:
遍历目标第二交易数据的交易读缓存,获取目标第二交易数据的读数据集,读数据集是以键key-值value对的形式存储至交易读缓存中的;
对目标第二交易数据的读关键字key进行哈希运算,得到目标第二交易数据的验证哈希字符串;
基于布隆过滤器保存的第一哈希字符串对验证哈希字符串进行匹配处理,若匹配成功,则确定对并行执行过程验证通过。
本申请实施例中,区块链中的共识节点在接收到打包节点发送的待共识区块后,可以并行执行待共识区块中的部分交易数据,然后再串行执行待共识区块中剩余的交易数据,这种共识方式解决了因需串行执行大量交易数据所带来的性能低下,系统呑吐量低的问题。由于本申请可并行执行交易数据,从而提升了区块链的执行效率,大大提高了系统的呑吐量。
请参见图12,图12是本申请实施例提供的一种计算机设备的结构示意图。该计算机设备1200用于执行前述方法实施例中打包节点、共识节点所执行的步骤,该计算机设备1200包括:一个或多个处理器1210;一个或多个输入设备 1220,一个或多个输出设备1230和存储器1240。上述处理器1210、输入设备 1220、输出设备1230和存储器1240通过总线1250连接。存储器1240用于存储计算机程序,所述计算机程序包括程序指令,处理器1210用于调用存储器1240 存储的程序指令,执行以下操作:
获取待处理的N个交易数据,并执行N个交易数据,N为正整数;
根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N;
打包N个交易数据,生成待共识区块,在待共识区块中基于区别记录规则记录了M个第一交易数据和除M个第一交易数据以外的N-M个第二交易数据;
将待共识区块广播至共识节点集合,以使共识节点集合中的共识节点基于区别记录规则对待共识区块中的M个第一交易数据进行并行共识处理,对N-M 个第二交易数据进行串行共识处理。
在一种可能的实现方式中,区别记录规则包括:排列规则和标签设置规则;处理器1210打包N个交易数据,生成待共识区块,用于执行以下操作:
按照排列规则打包N个交易数据,生成待共识区块;
其中,基于排列规则打包N个交易数据之后,待共识区块中任意一个第一交易数据会优先于任一个第二交易数据被执行共识处理;
并且,标签设置规则用于指示被打包至待共识区块中的任一个第二交易数据被设置有目标标签。
在一种可能的实现方式中,处理器1210执行N个交易数据之前,还用于执行以下操作:
为N个交易数据中的每个交易数据创建对应的交易读缓存、交易写缓存;
其中,交易读缓存用于存储任一个交易数据的读数据集,读数据集用于指示执行交易数据所对应的智能合约的调用信息;交易写缓存用于存储任一个交易数据的写数据集,写数据集用于存储调用智能合约执行交易数据后得到的交易执行结果。
在一种可能的实现方式中,处理器1210还用于执行以下操作:
从交易读缓存中获取目标交易数据的读数据集,并基于目标交易数据的读数据集中的调用信息,获取用于执行目标交易数据的目标智能合约;
调用目标智能合约执行目标交易数据,得到目标交易执行结果,目标交易执行结果被作为目标交易数据的写数据集。
在一种可能的实现方式中,任一个交易数据的执行结果是以键key-值value 对的形式存储至相应的交易写缓存中的;处理器1210还用于执行以下操作:
从交易写缓存中获取每个交易数据的写关键字key,并对每个交易数据的写关键字key进行哈希运算,得到每个交易数据的第一哈希字符串;
将每个交易数据的第一哈希字符串写入至布隆过滤器中。
在一种可能的实现方式中,任一个交易数据的读数据集是以键key-值value 对的形式存储至相应的交易读缓存中的;
处理器1210根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,用于执行以下操作:
遍历每个交易数据的读数据集,并对每个交易数据的读关键字key进行哈希运算,得到每个交易数据的第二哈希字符串;
对每个交易数据的第二哈希字符串,与所述布隆过滤器中的各个第一哈希字符串进行匹配处理,并根据匹配结果从N个交易数据中确定出满足并行执行条件的M个第一交易数据。
在一种可能的实现方式中,处理器1210根据匹配结果从N个交易数据中确定出满足并行执行条件的M个第一交易数据,用于执行以下操作:
对目标交易数据的第二哈希字符串,与布隆过滤器中的各个第一哈希字符串进行匹配处理;
若匹配结果为匹配不成功,则确定目标交易数据满足并行执行条件,并将目标交易数据确定为第一交易数据;
若匹配结果为匹配成功,则确定目标交易数据不满足并行执行条件,并将目标交易数据确定为第二交易数据。
在一种可能的实现方式中,处理器1210将待共识区块广播至共识节点集合之后,还用于执行以下操作:
串行执行N个交易数据中的N-M个第二交易数据,得到每个第二交易数据的第二交易执行结果;
从每个交易数据的交易执行结果中获取M个第一交易数据的第一交易执行结果;
对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
在一种可能的实现方式中,处理器1210用于调用存储器1240存储的程序指令,还用于执行以下操作:
获取打包节点发送的待共识区块,待共识区块是打包节点对待处理的N个交易数据打包后生成的,待共识区块中基于区别记录规则记录了M个第一交易数据和N-M个第二交易数据,M个第一交易数据是在对N个交易数据并行执行后,根据每个交易数据的交易执行结果确定出来的,N、M均为正整数,且M ≤N;
对待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果;
对待共识区块中的N-M个第二交易数据进行串行共识处理,得到每个第二交易数据的第二交易执行结果;
对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
在一种可能的实现方式中,处理器1210对待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果之后,还用于执行以下操作:
对并行共识处理过程进行有效性验证,若验证不通过,则删除各个第一交易执行结果和各个第二交易执行结果;
对N个交易数据进行串行共识处理,得到每个交易数据的交易执行结果。
在一种可能的实现方式中,处理器1210对并行共识处理过程进行有效性验证,用于执行以下操作:
遍历目标第二交易数据的交易读缓存,获取目标第二交易数据的读数据集,读数据集是以键key-值value对的形式存储至交易读缓存中的;
对目标第二交易数据的读关键字key进行哈希运算,得到目标第二交易数据的验证哈希字符串;
基于布隆过滤器保存的第一哈希字符串对验证哈希字符串进行匹配处理,若匹配成功,则确定对并行执行过程验证通过。
本申请实施例中,可以获取待共识的N个交易数据,并执行这N个交易数据,N为正整数;然后,根据每个交易数据的交易执行结果,从N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N。接下来,打包N个交易数据,生成待共识区块,待共识区块中包括M个第一交易数据和除M个第一交易数据以外的N-M个第二交易数据;最后,可以将待共识区块广播至共识节点集合,以使共识节点集合中的共识节点对待共识区块中的M 个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。由此可见,本申请实施例中可以预先执行多个交易数据,然后按照交易执行结果识别出可并行的交易数据,然后再将这些交易数据中可并行的交易数据(即第一交易数据)和不可并行的交易数据(即第二交易数据)打包至区块中,最后将打包好的区块广播至多个共识节点,使得共识节点可以并行执行第一交易数据,然后串行执行第二交易数据,这种共识方式可以对可并行执行的部分交易数据进行并行共识处理,相比于对所有的交易数据均串行执行而言,本申请可以提高数据处理的效率,从而提高系统的呑吐量。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文所对应实施例中的方法,因此,这里将不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文所对应实施例中的方法,因此,这里将不再进行赘述。
本领域普通技术对象可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM) 或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
获取待处理的N个交易数据,并执行所述N个交易数据,N为正整数;
根据每个交易数据的交易执行结果,从所述N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N;
打包所述N个交易数据,生成待共识区块,在所述待共识区块中基于区别记录规则记录了M个第一交易数据和除所述M个第一交易数据以外的N-M个第二交易数据;
将所述待共识区块广播至共识节点集合,以使共识节点集合中的共识节点基于所述区别记录规则对所述待共识区块中的M个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。
2.如权利要求1所述的方法,其特征在于,所述区别记录规则包括:排列规则和标签设置规则;所述打包所述N个交易数据,生成待共识区块,包括:
按照排列规则打包所述N个交易数据,生成待共识区块;
其中,基于所述排列规则打包所述N个交易数据之后,待共识区块中任意一个第一交易数据会优先于任一个第二交易数据被执行共识处理;
并且,所述标签设置规则用于指示被打包至所述待共识区块中的任一个第二交易数据被设置有目标标签。
3.如权利要求1所述的方法,其特征在于,所述并执行所述N个交易数据之前,还包括:
为所述N个交易数据中的每个交易数据创建对应的交易读缓存、交易写缓存;
其中,所述交易读缓存用于存储任一个交易数据的读数据集,所述读数据集用于指示执行交易数据所对应的智能合约的调用信息;所述交易写缓存用于存储任一个交易数据的写数据集,所述写数据集用于存储调用智能合约执行交易数据后得到的交易执行结果。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
从交易读缓存中获取目标交易数据的读数据集,并基于目标交易数据的读数据集中的调用信息,获取用于执行所述目标交易数据的目标智能合约;
调用所述目标智能合约执行所述目标交易数据,得到目标交易执行结果,所述目标交易执行结果被作为所述目标交易数据的写数据集。
5.如权利要求4所述的方法,其特征在于,所述任一个交易数据的执行结果是以键key-值value对的形式存储至相应的交易写缓存中的;所述方法还包括:
从交易写缓存中获取每个交易数据的写关键字key,并对每个交易数据的写关键字key进行哈希运算,得到每个交易数据的第一哈希字符串;
将所述每个交易数据的第一哈希字符串写入至布隆过滤器中。
6.如权利要求5所述的方法,其特征在于,任一个交易数据的读数据集是以键key-值value对的形式存储至相应的交易读缓存中的;
所述根据每个交易数据的交易执行结果,从所述N个交易数据中确定出满足并行执行条件的M个第一交易数据,包括:
遍历每个交易数据的读数据集,并对每个交易数据的读关键字key进行哈希运算,得到每个交易数据的第二哈希字符串;
对每个交易数据的第二哈希字符串,与所述布隆过滤器中的各个第一哈希字符串进行匹配处理,并根据匹配结果从所述N个交易数据中确定出满足并行执行条件的M个第一交易数据。
7.如权利要求6所述的方法,其特征在于,所述根据匹配结果从所述N个交易数据中确定出满足并行执行条件的M个第一交易数据,包括:
对目标交易数据的第二哈希字符串,与所述布隆过滤器中的各个第一哈希字符串进行匹配处理;
若匹配结果为匹配不成功,则确定所述目标交易数据满足并行执行条件,并将所述目标交易数据确定为第一交易数据;
若匹配结果为匹配成功,则确定所述目标交易数据不满足并行执行条件,并将所述目标交易数据确定为第二交易数据。
8.如权利要求1所述的方法,其特征在于,所述将所述待共识区块广播至共识节点集合之后,还包括:
串行执行所述N个交易数据中的N-M个第二交易数据,得到每个第二交易数据的第二交易执行结果;
从所述每个交易数据的交易执行结果中获取M个第一交易数据的第一交易执行结果;
对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
9.一种数据处理方法,其特征在于,包括:
获取打包节点发送的待共识区块,所述待共识区块是所述打包节点对待处理的N个交易数据打包后生成的,所述待共识区块中基于区别记录规则记录了M个第一交易数据和N-M个第二交易数据,所述M个第一交易数据是在对所述N个交易数据并行执行后,根据每个交易数据的交易执行结果确定出来的,N、M均为正整数,且M≤N;
对所述待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果;
对所述待共识区块中的N-M个第二交易数据进行串行共识处理,得到每个第二交易数据的第二交易执行结果;
对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
10.如权利要求9所述的方法,其特征在于,所述对所述待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果之后,还包括:
对并行共识处理过程进行有效性验证,若验证不通过,则删除各个第一交易执行结果和各个第二交易执行结果;
对所述N个交易数据进行串行共识处理,得到每个交易数据的交易执行结果。
11.如权利要求10所述的方法,其特征在于,所述对并行共识处理过程进行有效性验证,包括:
遍历目标第二交易数据的交易读缓存,获取目标第二交易数据的读数据集,所述读数据集是以键key-值value对的形式存储至所述交易读缓存中的;
对所述目标第二交易数据的读关键字key进行哈希运算,得到所述目标第二交易数据的验证哈希字符串;
基于布隆过滤器保存的第一哈希字符串对所述验证哈希字符串进行匹配处理,若匹配成功,则确定对所述并行执行过程验证通过。
12.一种数据处理装置,其特征在于,包括:
获取单元,用于获取待处理的N个交易数据,并执行所述N个交易数据,N为正整数;
处理单元,用于根据每个交易数据的交易执行结果,从所述N个交易数据中确定出满足并行执行条件的M个第一交易数据,M为正整数且M≤N;
所述处理单元,还用于打包所述N个交易数据,生成待共识区块,在所述待共识区块中基于区别记录规则记录了M个第一交易数据和除所述M个第一交易数据以外的N-M个第二交易数据;
发送单元,用于将所述待共识区块广播至共识节点集合,以使共识节点集合中的共识节点基于所述区别记录规则对所述待共识区块中的M个第一交易数据进行并行共识处理,对N-M个第二交易数据进行串行共识处理。
13.一种数据处理装置,其特征在于,包括:
获取单元,用于获取打包节点发送的待共识区块,所述待共识区块是所述打包节点对待处理的N个交易数据打包后生成的,所述待共识区块中基于区别记录规则记录了M个第一交易数据和N-M个第二交易数据,所述M个第一交易数据是在对所述N个交易数据并行执行后,根据每个交易数据的交易执行结果确定出来的,N、M均为正整数,且M≤N;
处理单元,用于对所述待共识区块中的M个第一交易数据进行并行共识处理,得到每个第一交易数据的第一交易执行结果;
所述处理单元,还用于对所述待共识区块中的N-M个第二交易数据进行串行共识处理,得到每个第二交易数据的第二交易执行结果;
所述处理单元,还用于对各个第一交易执行结果和各个第二交易执行结果进行合并处理,得到交易合并执行结果。
14.一种计算机设备,其特征在于,包括:
处理器,适于执行计算机程序;
计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1-8或9-11任一项所述的数据处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-8或9-11任一项所述的数据处理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210797362.2A CN117408694A (zh) | 2022-07-07 | 2022-07-07 | 数据处理方法、装置及设备、介质、产品 |
PCT/CN2023/101379 WO2024007856A1 (zh) | 2022-07-07 | 2023-06-20 | 数据处理方法、装置及设备、介质、产品 |
US18/490,697 US20240045849A1 (en) | 2022-07-07 | 2023-10-19 | Data processing method and apparatus, device, and medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210797362.2A CN117408694A (zh) | 2022-07-07 | 2022-07-07 | 数据处理方法、装置及设备、介质、产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117408694A true CN117408694A (zh) | 2024-01-16 |
Family
ID=89454191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210797362.2A Pending CN117408694A (zh) | 2022-07-07 | 2022-07-07 | 数据处理方法、装置及设备、介质、产品 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240045849A1 (zh) |
CN (1) | CN117408694A (zh) |
WO (1) | WO2024007856A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018158936A1 (ja) * | 2017-03-03 | 2018-09-07 | 日本電気株式会社 | ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム |
CN112035475B (zh) * | 2020-08-28 | 2023-06-02 | 平安科技(深圳)有限公司 | 区块链的区块存储方法、装置、节点设备及存储介质 |
CN112381649A (zh) * | 2020-11-17 | 2021-02-19 | 深圳前海微众银行股份有限公司 | 基于区块链的交易共识方法、装置及设备 |
CN113064730A (zh) * | 2021-04-30 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 区块链交易执行方法、区块链节点及控制装置 |
CN113568981B (zh) * | 2021-09-24 | 2022-01-07 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置、设备以及介质 |
-
2022
- 2022-07-07 CN CN202210797362.2A patent/CN117408694A/zh active Pending
-
2023
- 2023-06-20 WO PCT/CN2023/101379 patent/WO2024007856A1/zh unknown
- 2023-10-19 US US18/490,697 patent/US20240045849A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240045849A1 (en) | 2024-02-08 |
WO2024007856A1 (zh) | 2024-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112926982B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
CN110175840B (zh) | 联盟链中实现轻钱包机制的方法、客户端、联盟链及系统 | |
US10747721B2 (en) | File management/search system and file management/search method based on block chain | |
US20230087138A1 (en) | Data processing method, apparatus, and storage medium | |
CN112685505B (zh) | 一种交易数据处理方法、装置、计算机设备及存储介质 | |
CN109766389B (zh) | 一种基于位图索引的区块链轻客户端验证查询方法 | |
CN111885133A (zh) | 基于区块链的数据处理方法、装置及计算机存储介质 | |
CN111651525A (zh) | 区块链数据存储方法和装置 | |
CN113765675B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
US20230259938A1 (en) | Blockchain-based data processing method and apparatus, device, readable storage medium and computer program product | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN110597922A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN111984735A (zh) | 一种数据归档方法、装置、电子设备和存储介质 | |
CN113409047B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN115988001A (zh) | 区块链系统的共识投票处理方法、装置、设备以及介质 | |
CN116827957B (zh) | 基于多区块链的信息处理方法、装置、设备以及介质 | |
CN113157450A (zh) | 在区块链系统中执行区块的方法及装置 | |
CN116977067A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN117408694A (zh) | 数据处理方法、装置及设备、介质、产品 | |
CN117010889A (zh) | 数据处理方法、装置及设备、介质、产品 | |
CN114499869B (zh) | 基于区块链的资源跨链交换方法、装置和计算机设备 | |
CN117155953A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
CN117032998B (zh) | 一种基于区块链的数据处理方法、装置以及可读存储介质 | |
CN116661674A (zh) | 一种数据压缩方法、区块同步方法及相关设备 | |
CN116468439A (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 |