CN112950211A - 一种交易验重方法、装置、设备以及介质 - Google Patents
一种交易验重方法、装置、设备以及介质 Download PDFInfo
- Publication number
- CN112950211A CN112950211A CN202110526205.3A CN202110526205A CN112950211A CN 112950211 A CN112950211 A CN 112950211A CN 202110526205 A CN202110526205 A CN 202110526205A CN 112950211 A CN112950211 A CN 112950211A
- Authority
- CN
- China
- Prior art keywords
- transaction
- processed
- node
- array
- duplication checking
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000013507 mapping Methods 0.000 claims abstract description 134
- 230000006870 function Effects 0.000 claims abstract description 70
- 230000007704 transition Effects 0.000 claims description 79
- 238000012795 verification Methods 0.000 claims description 44
- 238000004806 packaging method and process Methods 0.000 claims description 14
- 238000005303 weighing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 15
- 238000010200 validation analysis Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 230000003993 interaction Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012419 revalidation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- 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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- 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/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- 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/3827—Use of message hashing
-
- 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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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
- 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
- G06Q20/4016—Transaction verification involving fraud or risk level assessment in transaction processing
-
- 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
-
- 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
-
- 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
- G06Q2220/00—Business processing using cryptography
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Economics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种交易验重方法、装置、设备以及介质,方法包括:获取待上链至区块链网络的待处理交易;在通过交易验重器对待处理交易进行第一交易验重时,获取交易验重器的位数组和K个哈希函数,将获取到的位数组作为待处理交易对应的待查询位数组;待查询位数组的M个数组元素中包含第一数组元素;K为小于M的正整数,且M为待查询位数组的数组长度;基于K个哈希函数将待处理交易映射至待查询位数组的K个目标标识位置,确定K个目标标识位置上的交易映射值;确定第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,基于关联关系得到待处理交易的第一交易验重结果。本申请通过引入交易验重器,可以提升交易验重的效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种交易验重方法、装置、设备以及介质。
背景技术
目前,对于区块链系统中的区块链节点而言,由于区块链节点的节点内存有限,因此,位于该节点内存中的交易缓存所能够缓存的交易数量也会有所限制。所以,当区块链系统中的某个节点将交易缓存中的交易成功写入区块链之后,往往会在节点内存的交易缓存中清除已成功上链的交易,以降低已上链交易对节点内存的占用。
基于此,当区块链系统中的某个区块链节点(例如,节点A)在收到某个交易(例如,交易T)后,会对这个交易T进行交易验重,以在该节点A的交易缓存和与该节点A相关联的区块链数据库中查询这个交易T是否已经存在;这意味着现有的交易验重方案,在通过交易缓存对任意一个交易进行交易验重时,若在交易缓存中未查找到这个交易,则需要进一步通过该区块链系统的区块链网络请求访问区块链数据库,以在该区块链数据库中查询是否存在这个交易。由此可见,现有的交易验重方案会涉及对节区块链数据库的访问,若上述节点接收到的多个交易(例如,区块链客户端频繁发送的同一交易)时,就会涉及到多次区块链数据库的访问。由于频繁的访问区块链数据库会影响该区块链数据库的查询性能,进而会降低在区块链数据库中进行交易验重的速度,以至于会降低区块链节点进行交易验重的效率。
发明内容
本申请提供了一种交易验重方法、装置、设备以及介质,可以提升交易验重的效率。
本申请一方面提供了一种交易验重方法,方法由区块链网络中的第一节点执行,第一节点中部署有交易验重器,包括:
获取待上链至区块链网络的待处理交易;
在通过交易验重器对待处理交易进行第一交易验重时,获取交易验重器的位数组和K个哈希函数,将获取到的位数组作为待处理交易对应的待查询位数组;待查询位数组的M个数组元素中包含第一数组元素;K为小于M的正整数;M为待查询位数组的数组长度;
基于K个哈希函数将待处理交易映射至待查询位数组的K个目标标识位置,在M个数组元素中,将K个目标标识位置上的数组元素作为K个目标标识位置上的交易映射值;
确定第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,基于关联关系得到对待处理交易进行第一交易验重后的第一交易验重结果。
本申请一方面提供了一种交易验重装置,装置包括:
交易获取模块,用于获取待上链至区块链网络的待处理交易;
第一验重模块,用于在通过交易验重器对待处理交易进行第一交易验重时,获取交易验重器的位数组和K个哈希函数,将获取到的位数组作为待处理交易对应的待查询位数组;待查询位数组的M个数组元素中包含第一数组元素;K为小于M的正整数;M为待查询位数组的数组长度;
映射值确定模块,用于基于K个哈希函数将待处理交易映射至待查询位数组的K个目标标识位置,在M个数组元素中,将K个目标标识位置上的数组元素作为K个目标标识位置上的交易映射值;
第一结果确定模块,用于确定第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,基于关联关系得到对待处理交易进行第一交易验重后的第一交易验重结果。
其中,在交易获取模块获取待上链至区块链网络的待处理交易时,交易获取模块,还用于确定待处理交易的交易来源属性;交易来源属性用于指示交易验重器确定对待处理交易进行交易验重时的交易验重策略。
其中,若交易来源属性包含第一来源属性,则交易验重策略包含与第一节点的交易池相关联的第一交易验重策略;第一来源属性用于表征待处理交易为交易添加请求中的交易;交易添加请求是由与第一节点相关联的区块链客户端发送的;
第一验重模块包括:
第一交易验重单元,用于在交易验重器通过第一交易验重策略对待处理交易进行第一交易验重时,从交易验重器中获取数组长度为M的位数组,并获取与数组长度为M的位数组相关联的K个哈希函数;在数组长度为M的位数组中,交易验重器的验重集合中的验重元素所映射的K个关键标识位置上的数组元素均为第二数组元素;一个关键标识位置为将验重元素通过一个哈希函数进行哈希位置映射后所得到的标识位置;
第一元素确定单元,用于在数组长度为M的位数组中,将M个数组元素中除第二数组元素之外的数组元素作为第一数组元素;第一数组元素对应的标识位置不同于第二数组元素对应的标识位置,且第一数组元素的元素数量与第二数组元素的元素数量之和为M;
查询数组确定单元,用于将由第一数组元素和第二数组元素所构成的位数组作为待处理交易对应的待查询位数组。
其中,关联关系包括第一关联关系,第一关联关系用于表征K个目标标识位置上的交易映射值中存在与第一数组元素相同的交易映射值;
装置还包括:
第一关系确定模块,用于若第一交易验重结果指示关联关系为第一关联关系,则基于与第一数组元素相同的交易映射值,确定待处理交易不属于交易验重器的验重集合中的验重元素,且控制交易验重器输出待处理交易的交易属性为非重复交易属性;
第一目标确定模块,用于将具有非重复交易属性的待处理交易确定为待保存至第一节点的交易池的第一目标交易。
其中,装置还包括:
第一目标保存模块,用于在将第一目标交易保存至第一节点的交易池时,将与第一数组元素相同的交易映射值作为第一目标交易映射值,且在待查询位数组中,将第一目标交易映射值所对应的目标标识位置上的数组元素由第一数组元素更新为第二数组元素。
可选的,其中,关联关系包括第二关联关系,第二关联关系用于表征K个目标标识位置上的交易映射值中不存在与第一数组元素相同的交易映射值;
装置还包括:
第二关系确定模块,用于若第一交易验重结果指示关联关系为第二关联关系,则获取与第一节点的交易池相关联的第二交易验重策略;
第二验重模块,用于通过第二交易验重策略对待处理交易进行第二交易验重,得到第二交易验重结果。
其中,第二验重模块包括:
交易池查找单元,用于通过第二交易验重策略在第一节点的交易池中查找与待处理交易相匹配的第一历史交易;
第一重复确定单元,用于若在第一节点的交易池中查找到与待处理交易相匹配的第一历史交易,则确定待处理交易的交易属性为重复交易属性,将具备重复交易属性的待处理交易作为与第二交易验重策略相关联的第一类重复交易;
第二结果确定单元,用于将第一类重复交易作为对待处理交易进行第二交易验重后的第二交易验重结果。
可选的,其中,第二验重模块还包括:
第一过渡结果确定单元,用于若在第一节点的交易池中未查找到与待处理交易相匹配的第一历史交易,则将待处理交易的交易属性确定为第一非重复交易属性,将具备第一非重复交易属性的待处理交易作为与第二交易验重策略相关联的第一过渡验重结果;
交易缓存查找单元,用于基于第一过渡验重结果将具备第一非重复交易属性的待处理交易作为第一过渡交易,在第一节点的交易缓存中查找与第一过渡交易相匹配的第二历史交易;
第二重复确定单元,用于若在第一节点的交易缓存中查找到与第一过渡交易相匹配的第二历史交易,则确定第一过渡交易的交易属性为重复交易属性,将具备重复交易属性的第一过渡交易作为与第二交易验重策略相关联的第二类重复交易;
第二结果确定单元,用于将确定的第二类重复交易作为对待处理交易进行第二交易验重后的第二交易验重结果。
其中,第二验重模块还包括:
第二过渡结果确定单元,用于若在第一节点的交易缓存中未查找到与第一过渡交易相匹配的第二历史交易,则确定第一过渡交易的交易属性为第二非重复交易属性,将具备第二非重复交易属性的第一过渡交易作为与第二交易验重策略相关联的第二过渡验重结果;
数据库查找单元,用于基于第二过渡验重结果将具备第二非重复交易属性的第一过渡交易作为第二过渡交易,在与第一节点相关联的区块链数据库中查找与第二过渡交易相匹配的第三历史交易;
第三重复确定单元,用于若在区块链数据库中查找到与第二过渡交易相匹配的第三历史交易,则确定第二过渡交易的交易属性为重复交易属性,将具备重复交易属性的第二过渡交易作为与第二交易验重策略相关联的第三类重复交易;
第二结果确定单元,还用于将确定的第三类重复交易作为对待处理交易进行第二交易验重后的第二交易验重结果。
其中,装置还包括:
交易拒绝模块,用于若第二交易验重结果指示待处理交易的交易属性为重复交易属性,则将待处理交易确定为重复交易,且拒绝将重复交易添加至第一节点的交易池。
可选的,其中,装置还包括:
第二目标确定模块,用于若第二交易验重结果指示待处理交易的交易属性为非重复交易属性,则基于具有非重复交易属性的待处理交易,确定用于添加至第一节点的交易池的第二目标交易,且在第一节点的交易池中保存第二目标交易;
目标映射值确定模块,用于在将第二目标交易插入至交易验重器的验重集合时,将K个目标标识位置上的交易映射值作为第二目标交易映射值;
元素更新模块,用于在待查询位数组中,控制交易验重器将第二目标交易映射值所对应的目标标识位置上的数组元素更新为第二数组元素,将更新后的待查询位数组作为目标位数组。
其中,若交易来源属性包含第二来源属性,则交易验重策略包含与第一节点的交易缓存相关联的第三交易验重策略和第四交易验重策略;第二来源属性用于表征待处理交易为区块链网络中的第二节点所广播的目标区块中的交易;目标区块中的每个交易对应一个交易标识,且一个交易标识用于表征一个交易在目标区块中的打包顺序;
装置还包括:
交易标识获取模块,用于通过第三交易验重策略获取目标区块中的关键交易的交易标识;关键交易为目标区块所包含的N个交易中具有最大打包顺序的交易;N为正整数;
交易标识比较模块,用于将待处理交易的交易标识与关键交易的交易标识进行比较,得到初始比较结果;
标识不同确定模块,用于若初始比较结果指示待处理交易的交易标识与目标区块中的关键交易的交易标识不相同,则确定存在待处理交易的下一交易;
区块验重结果确定模块,用于通过交易验重器对目标区块中的待处理交易进行块内交易验重,得到与待处理交易相关联的区块交易验重结果;
交易缓存查找模块,用于若区块交易验重结果指示交易验重器输出的目标区块中的待处理交易的交易属性为重复交易属性,则通过第四交易验重策略在第一节点的交易缓存查找与待处理交易相匹配的交易,且在交易缓存中查找到与待处理交易相匹配的交易时,拒绝接收第二节点广播的目标区块。
可选的,其中,装置还包括:
标识相同确定模块,用于若初始比较结果指示待处理交易的交易标识与目标区块中的关键交易的交易标识相同,且确定目标区块中不存在待处理交易的下一交易,则确定目标区块中的每个交易均为非重复交易;
哈希值获取模块,用于通过交易验重器获取目标区块中的每个交易的交易哈希值,基于每个交易的交易哈希值更新交易验重器中的位数组;每个交易的交易哈希值是由交易验重器中的K个哈希函数所确定的。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的算计设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例中的计算机设备(例如,区块链网络中的第一节点)部署有用于进行交易验重的交易验重器,这样,在计算机设备(例如,区块链网络中的第一节点)在获取到待处理交易时,可以预先通过该交易验重器对该待处理交易进行第一交易验重,此时,计算机设备(例如,区块链网络中的第一节点)可以获取该交易验重器的位数组和K个哈希函数,进而可以将获取到的位数组作为待处理交易对应的待查询位数组;需要注意的是,这里的待查询位数组的M个数组元素中包含第一数组元素;这里的K为小于M的正整数;M为待查询位数组的数组长度。进一步的,计算机设备(例如,区块链网络中的第一节点)可以基于这K个哈希函数将待处理交易映射至待查询位数组的K个目标标识位置,并可以在M个数组元素中,将K个目标标识位置上的数组元素作为K个目标标识位置上的交易映射值。可以理解的是,一个哈希函数可以将该待处理交易映射为该待查询位数组中的一个点,该点所在的标识位置即为前述待查询位数组的一个目标标识位置。进一步的,计算机设备(例如,区块链网络中的第一节点)可以确定第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,进而可以基于关联关系得到对待处理交易进行第一交易验重后的第一交易验重结果。由此可见,本申请实施例在获取到待处理交易时,可以预先通过交易验重器在第一节点的节点内存中判断该待处理交易是否存在,并可以将判断出的结果统称为待处理交易的第一交易验重结果。应当理解,本申请实施例通过在该节点内存中使用交易验重器进行交易验重,可以直接通过交易验重器中的第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,快速判断该待处理交易是否存在,进而可以提升交易验重的效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的示意图;
图2是本申请实施例提供的一种在节点内存中进行交易验重的场景示意图;
图3是本申请提供的一种交易验重方法的流程示意图;
图4是本申请实施例提供的一种确定待查询位数组的场景示意图;
图5是本申请实施例提供的一种通过交易验重器的哈希函数将待处理交易映射值到待查询位数组的场景示意图;
图6是本申请实施例提供的一种交易验重方法的流程示意图;
图7是本申请实施例提供的一种更新待查询位数组的场景示意图;
图8是本申请实施例提供的一种业务请求中的交易进行交易验重的时序图;
图9是本申请实施例提供的一种交易验重方法的流程示意图;
图10是本申请实施例提供的一种对区块中的交易进行交易验重的场景实施例;
图11是本申请提供的一种交易验重装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种网络架构的示意图。如图1所示的网络架构可以应用于区块链系统,该区块链系统可以是由多个节点通过网络通信的形式连接形成的分布式系统。其中,该区块链系统可以包含但不限于联盟链所对应的区块链系统。
其中,可以理解的是,区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,该数据库中的每个节点均存储一条相同的区块链,区块链网络将节点区分为核心节点和轻节点,其中核心节点可以负责区块链全网的共识,也就是说这里的核心节点可以为区块链网络中的共识节点。应当理解,区块链网络中的任意一个节点(例如,轻节点)在接收到客户端发送的交易数据(也可以简称为交易)时,可以将该交易以接力棒的方式在区块链网络中的轻节点之间传递,直到该区块链网络中的用于进行打包的共识节点(即该区块链网络中的主核心节点)收到该交易时,可以进一步再将该交易添加到该主核心节点的交易池,以便于后续该用于进行打包的共识节点(即主核心节点)可以将该交易和交易池中的其它交易一并打包进区块,从而可以将打包得到的区块(即目标区块)广播至该区块链网络中的其他共识节点(即该区块链网络中的从核心节点),以使其他共识节点可以对广播来的这个目标区块进行区块共识,从而可以在这些共识节点达成共识时,将携带该交易的目标区块写入本地账本(比如,写入节点内存的交易缓存),以便于后续可以将携带该交易的目标区块写入至该区块链网络中的目标区块链所对应的区块链数据库(也可以简称为数据库)。其中,这里的目标区块链可以理解为这些共识节点根据共识机制所构建得到的最长链。
其中,可以理解的是,区块链系统中可以包括有智能合约,该智能合约在区块链系统中可以理解为一种区块链各节点(包括共识节点)之间能够理解并执行的代码,可以执行任意逻辑并得到结果。用户可以通过区块链客户端向区块链网络中的任意一个节点发起针对某个交易的交易添加请求,随后,区块链网络中的节点(例如,上述从核心节点或轻节点)可以将该交易添加请求中所携带的交易发送至上述主核心节点,以使上述主核心节点在调用节点中运行的智能合约执行该用户所请求的交易之前,预先判断当前接收到的这个交易是否已经存在于区块链网络。如果这个交易已存在于区块链网络,则可以拒绝接收该交易添加请求中的这个交易(即这个交易属于重复交易)。反之,如果这个交易未存在于区块链网络,则可以接收该交易添加请求中的这个交易(即这个交易属于非重复交易)。
比如,为避免某个核心节点接收到恶意节点频繁发送的交易或者避免区块链客户端因为网络延迟没有收到这个核心节点针对上述交易的回复而重发的这个交易,本申请实施例中的某个核心节点在获取到上述用户所请求的交易时,需要在该核心节点的节点内存中预先通过交易验重器对当前获取到的交易进行第一交易验重,以判断是否拒绝接收当前获取到的交易。换言之,核心节点可以在节点内存中通过交易验重器快速判断当前获取到的交易是否为重复交易。如果该交易验重器所对应的交易验重结果(即第一交易验重结果)指示当前获取到的交易为重复交易,则可以拒绝接收来源于前述交易添加请求中的交易。反之,如果该交易验重器所对应的交易验重结果(即第一交易验重结果)指示当前获取到的交易不为重复交易,则可以进一步确定当前获取到的交易需要进行第二交易验重,进而可以相继通过该节点内存的交易池、交易缓存以及区块链数据库等进行二次交易验重,以便于可以通过交易池、交易缓存以及区块链数据库等协同判断出当前获取到的交易是否已经存在与区块链网络中,如果已经存在于区块链网络中,则可以最终确定当前获取到的交易为重复交易,进而可以拒绝接收该重复交易。反之,则可以在经过二次交易验重且最终确定当前获取到的交易为非重复交易时,将该非重复交易添加到交易池中。
其中,应当理解,区块链系统中可以包括一个或多个智能合约,这些智能合约可以通过合约调用地址、合约标识号(Identity document,ID)或合约名称来进行区分,而区块链客户端发起的交易添加请求中,也可以携带智能合约的合约调用地址或者合约标识号或合约名称,以此指定需要运行的智能合约。而若区块链客户端所指定的智能合约为需要读取数据的合约(即数据读取合约),则各个共识节点可以在进行上述交易验重之后,进一步在执行某个交易时,调用数据读取合约快速访问本地账本(例如,各个共识节点可以快速访问到节点内存中通过块链结构所构建的多级块缓存,其中,多级块缓存是按照各个共识节点的节点内存中所缓存的各个区块的区块哈希值的索引方式,对每个区块的块缓存进行排列所得到的;一个块缓存可以用于存储一个区块中的每个交易的交易读缓存和交易写缓存)来进行相应数据的读取,最后各个共识节点会互相验证针对该交易的各交易执行结果是否一致(也就是进行共识),若一致则可以确定该交易为合法交易,进而可以将该合法交易的交易执行结果存入各自的本地账本的交易写缓存中,并可以将上述交易的交易执行结果返回至区块链客户端。
应当理解,如图1所示的网络架构可以包含核心节点(即共识节点)集群,轻节点集群以及用户终端集群。其中,该核心节点集群可以包含一个或者多个核心节点,这里的多个核心节点具体可以包括图1所示的节点10a、节点10b、节点10c、节点10d。如图1所示,节点10a、节点10b、节点10d可以分别与节点10c进行网络连接,以构成图1所示的共识网络100a。可以理解的是,在该共识网络100a中,节点10a、节点10b、节点10d均能够通过与该节点10c之间的网络连接进行数据交互。此外,该轻节点集群可以包含一个或者多个轻节点,为便于理解,这里以一个轻节点为例,该轻节点为图1所示的节点4000a,该节点4000a可以与图4所示的节点10c之间的网络连接进行数据交互。另外,如图1所示的用户终端集群可以包含一个或者多个用户终端,这里的多个用户终端具体可以包含图1所示的用户终端3000a、用户终端3000b、用户终端3000c、...、用户终端3000n。如图1所示,用户终端3000a、用户终端3000b、用户终端3000c、...、用户终端3000n可以分别与该轻节点集群中的节点4000a进行网络连接,以便于能够通过与该节点4000a之间的网络连接进行数据交互。
其中,本申请实施例可以将共识网络100a中的每个核心节点(例如,节点10a、节点10b、节点10c、节点10d)和轻节点集群中的每个轻节点统称为区块链节点,这里的区块链节点均可以用于接收运行有区块链客户端的用户终端所发送的交易添加请求。应当理解,这里的每个核心节点均可以用于维护同一区块链(比如,图1所示的区块链10e可以为上述区块链网络中的目标区块链),该共识网络100a中的任意两个核心节点之间可以形成点对点(P2P,Peer To Peer)网络,该点对点网络可以采用P2P协议,其中,该P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。其中,可以理解的是,在分布式系统中,任何设备如服务器、终端等都可以加入而成为区块链节点,其中,每个区块链节点均可以包括硬件层、中间层、操作系统层和应用层。
其中,可以理解的是,本申请实施例可以为接入该区块链网络的任意一个角色(例如,任意一个个人用户、任意一个企业、任意一个机构等实体对象)绑定一个区块链节点,以将这些区块链节点所构成的区块链网络统称为联盟链网络。所以,如图1所示的节点10a、节点10b、节点10c、节点10d可以分别与需要接入该联盟链网络中的相应角色(即相应业务场景下的实体对象)之间存在一一对应关系。这里的业务场景可以包含电子票据场景、社交场景、赊购场景、信贷场景等。此时,相应业务场景下的目标业务具体可以包含电子票据业务、社交业务、赊购业务、信贷业务等,这里将不对相应业务场景下的具体业务进行一一列举。
其中,可以理解的是,由于每个实体对象均可以对应一个区块链节点,所以,本申请实施例可以以实体对象为上述企业用户(即前述企业)为例,此时,与每个企业用户相关联的区块链节点可以为同一区块链节点(例如,上述图1所示的节点4000a可以与多个企业用户所对应的用户终端进行数据交互)。比如,在区块链电子票据系统中,可以将每个开票企业所对应的电子票据业务(比如,注册业务、开票业务、票据转移业务等)统称为一笔交易业务。其中,开票企业A可以通过图1所示的用户终端3000a与图1所示的节点4000a进行数据交互,以完成相应的交易;以此类推,开票企业B可以通过图1所示的用户终端3000b与图1所示的节点4000a进行数据交互,以完成相应的交易;开票企业C可以通过图1所示的用户终端3000c与图1所示的节点4000a进行数据交互,以完成相应的交易。
可选的,可以理解的是,本申请实施例可以将针对上述电子票据业务发送交易添加请求的实体对象(例如,开票企业A、开票企业B、...、开票企业C)统称为请求用户。应当理解,本申请实施例可以通过上述轻节点接收请求用户(例如,开票企业A、开票企业B、...、开票企业C)所发送的交易添加请求,还可以通过上述核心节点接收请求用户(例如,开票企业A、开票企业B、...、开票企业C)所发送的交易添加请求,这里将不对接收交易添加请求的区块链节点的节点类型其进行限定。
可选的,在共识网络100a中,由于上述节点10c可以与其存在网络连接(也可以称之为会话连接)的其他区块链节点之间进行数据同步,即上述节点10c可以从其他区块链节点上同步相应的业务数据信息(例如,这里的业务数据信息可以包含但不限于上述交易添加请求中的交易和区块同步请求中的区块等),此时,与每个企业用户相关联的核心节点可以为不同的区块链节点。比如,开票企业A也可以通过图1所示的用户终端3000a与图1所示的节点10c进行数据交互;开票企业B也可以通过图1所示的用户终端3000b与图1所示的节点10b进行数据交互;开票企业C也可以通过图1所示的用户终端3000c与图1所示的节点4000a进行数据交互。应当理解,通过将不同用户终端所发送的交易添加请求随机分配给与上述区块链系统中的区块链节点,可以有效地均衡区块链网络中的网络负载,从而可以提高相应业务所对应的业务数据的处理效率。
可以理解的是,当轻节点接收到某个区块链客户端所对应的请求用户发送的交易添加请求时,可以将该请求用户所发起的交易添加请求转发给上述主核心节点,以通过上述主核心节点对该第一用户所发起的交易添加请求进行合法性验证。这样,主核心节点可以在交易验重通过时,将该请求用户所请求的交易(即具备合法性的非重复交易)添加至交易池,以便于后续可以将与该交易相关联的交易数据打包成区块,以便于后续可以与其他共识节点(即上述从核心节点)之间进行共识,从而可以在共识通过后,将携带该交易的交易数据的区块暂存至上述本地账本,以便于后续可以将携带该交易数据的区块写入至上述区块链数据库(也可以简称为数据库)。
为便于理解,进一步的,请参见图2,图2是本申请实施例提供的一种在节点内存中进行交易验重的场景示意图。其中,如图2所示的用户A(即上述请求用户)可以通过图2所示的用户终端20a执行步骤S1,以将该用户A所请求执行交易T1(例如,该交易T1可以为用户A向企业B开具电子发票这一发票开具业务)发送给图2所示的节点20c。此时,节点20c可以在接收到用户终端20a发送来的交易T1时,执行步骤S2,以对该交易T1进行交易验重。其中,本申请实施例可以将当前接收到该交易T1的区块链节点(例如,图2所示的节点20c)统称为第一节点,并将该区块链网络中的其他节点(例如,图2所示的节点20b、节点20d和节点20e等)统称为第二节点。如图2所示,该节点20c(即第一节点)可以接收运行有区块链客户端的用户终端20a发送的交易添加请求中的交易T1,还可以接收该区块链网络中的其他节点(即第二节点)广播的目标区块中的交易,即该节点20c无论是接收到来自交易添加请求中的交易还是接收到其他节点广播的目标区块中的交易,均可以执行图2所示的步骤S2,以对当前接收到的交易进行交易验重,以判断当前接收到的交易是否存在于区块链网络中。
其中,如图2所示的交易验重器包含一个超大的位数组和K个哈希函数;该超大的位数组的数组长度可以为M,其中,K可以为小于M的正整数。在本申请实施例中,当节点20c获取到上述交易T1时,可以通过该交易验重器对交易T1进行交易验重,以得到第一交易验重结果。
应当理解,如图2所示的位数组201a可以包含M个数组元素,这M个数组元素可以用一个很长的二进制向量来表示,这里的二进制向量可以为图2所示的数组长度为M(例如,M=16)的向量(即0101110000101001)。其中,如图2所示,该位数组201a的M个数组元素中,可以存在数值为0的数组元素,还可以存在数值为1的数组元素。为便于理解,本申请实施例可以将数值为0的数组元素统称为该交易验重器内的位数组的第一数组元素,并可以将数值为1的数组元素统称为该交易验重器内的位数组的第二数组元素。如图2所示,每个数组元素对应一个标识位置,例如,如图2所示,这些数组元素的标识位置可以为图2所示的标识位置2a~标识位置2p。其中,标识位置2a所对应的数组元素为0,标识位置2b对应的数组元素为1。以此类推,标识位置2o对应的数组元素为0,标识位置2p对应的数组元素为1。应当理解,这里的M的取值可以根据该区块链系统中的实际需要进行调整,即本申请实施例将不对M的取值进行限定。
此外,为便于理解,本申请实施例以该交易验重器的K个哈希函数为3个哈希函数为例,这3个哈希函数具体可以为图2所示的哈希函数202a、哈希函数202b和哈希函数202c。如图2所示,哈希函数202a可以用于将图2所示的交易T1的哈希值(例如,哈希值1)进行哈希计算(例如,哈希位置映射),以将该交易T1映射为位数组201a中的一个点(例如,点1,该点1可以为一个bit位),该点1所对应的目标标识位置可以为标识位置2e,这个标识位置2e上的数组元素为上述第二数组元素。同理,如图2所示,哈希函数202b可以用于将图2所示的交易T1的哈希值(例如,哈希值1)进行哈希计算(例如,哈希位置映射),以将该交易T1映射为位数组201a中的另一个点(例如,点2,该点2可以为另一个bit位),该点2所对应的目标标识位置可以为标识位置2m,这个标识位置2m上的数组元素为上述第二数组元素。同理,如图2所示,哈希函数202c可以用于将图2所示的交易T1的哈希值(例如,哈希值1)进行哈希计算(例如,哈希位置映射),以将该交易T1映射为位数组201a中的又一个点(例如,点3,该点3可以为一个bit位),该点3所对应的目标标识位置可以为标识位置2o,这个标识位置2o上的数组元素为上述第一数组元素。应当理解,这里通过K个哈希函数对交易T1的哈希值进行哈希计算(例如,哈希位置映射)的具体实现方式可以包括但不限于对交易T1的哈希值进行求余运算,进而可以根据求得的余数与位数组201a中的标识位置之间的一一映射关系,映射得到该交易T1在位数组201a中的目标标识位置。
由此可见,本申请实施例的节点20c在获取到上述交易T1时,可以将该交易T1的交易数据(也可以称之为交易内容)进行哈希计算,以得到用于唯一标识该交易T1的交易哈希值(例如,上述哈希1)。进一步的,该节点20c可以将该交易T1的交易哈希值(例如,上述哈希1)作为图2所示的交易验重器(该交易验重器部署在节点20c的节点内存中)的输入值,以使该交易验重器可以通过上述K个哈希函数(例如,哈希函数202a、哈希函数202b和哈希函数202c)分别对该输入值进行哈希计算(例如,上述哈希求余运算),以得到上述与该交易T1相关联的K个bit位(即上述标识位置2e、标识位置2m以及标识位置2o)。应当理解,本申请实施例可以将这K个bit位(即K个目标标识位置)上的数组元素统称为交易映射值。
其中,可以理解的是,这里的交易验重器可以理解为一种具有交易验重功能的过滤器(例如,该交易验重器可以包括但不限于布隆过滤器)。应当理解,该交易验重器可以用于从根源上解决恶意节点所频繁发送的重复交易,进而可以避免这些重复交易浪费该节点20c的节点内存的有限资源空间。注意,这里的交易验重器可以用于维护一个验重集合,但是并不会存储该验重集合中已插入过的验重元素本身(即当节点20c需要将某个交易作为验重元素插入上述交易验重器的验重集合时,会将该验重元素所对应的K个标识位置上的数组元素均设置为1,以得到上述图2所示的位数组201a),这对于对某些具有一定私密性的交易而言,可以确保较高的安全性。
应当理解,该交易验重器中的K个哈希函数之间是相互独立的,这样,上述节点20c在获取到上述交易T1时,可以直接通过该节点20c的硬件并行执行这K个哈希函数,以通过这K个哈希函数将图2所示的交易T1映射到位数组201a的K个目标标识位置上,进而可以该交易验重器中的第一数组元素与这K个目标标识位置上的映射值之间的关联关系,得到上述第一交易验重结果。由此可见,通过图2所示的交易验重器可以在节点内存中快速对当前获取到的重复交易进行过滤,这样,不仅可以节省节点内存有限的资源空间,还可以从一定程度上减少对该区块链网络中的区块链数据库的查询压力。如上述图2所示,该交易T1在3个目标标识位置上的交易映射值中存在与第一数组元素相同的交易映射值,进而可以直接确定出该交易T1不在上述验重集合中,即可以直接确定该交易T1为非重复交易,进而可以直接在节点内存中将该交易T1添加到图2的交易池200a进行存储,而无需访问图2的区块链数据库,进而可以提升交易验重的速度。
应当理解,若这K个交易映射值中有一个或者多个交易映射值与上述第一数组元素相同,则可以得到第一数组元素与这K个目标标识位置上的交易映射值之间的第一关联关系,该第一关联关系可以用于反映上述图2所示的交易T1一定不存在于该交易验重器的验重集合中,进而可以直接将该交易T1视为非重复交易,从而可以接收图2所示的用户终端20a所发送来的交易T1,并可以直接将该交易T1添加到交易池200a。应当理解,当节点20c将交易T1添加到交易池200a时,该节点20c还可以将该交易T1作为验重元素插入上述交易验重器,即此时,该节点20c会在图2所示的位数组201a(即该交易T1所对应的待查询位数组)中,会将该验重元素所对应的K个标识位置上的数组元素(即标识位置2e上的数组元素、标识位置2m上的数组元素以及标识位置2o上的数组元素)均变更为1,以得到新的位数组,该新的位数组可以作为下一笔交易的待查询位数组。
可选的,对于其他用户终端所发送的另一交易(例如,交易T2而言),仍可以通过图2所示的交易验重器对该交易T2进行交易验重,即可以判断第一数组元素与该交易T2的K个交易映射值之间的关联关系。同理,若该关联关系为上述第一关联关系,也可以将该交易T2添加到交易池200a,并将该交易T2所对应的K个目标标识位置上的数组元素均变更为1,即将交易T2所对应的K个目标标识位置上的数组元素均设置为第二数组元素,以实现将该交易T2作为验重元素插入交易验重器的验重集合。
可选的,反之,若这K个交易映射值中的每个交易映射值均与上述第一数组元素不相同,则可以得到第一数组元素与这K个目标标识位置上的交易映射值之间的第二关联关系,该第二关联关系可以用于反映其他用户终端发送的另一交易(例如,交易T2)可能存在于该交易验重器的验重集合中,即该交易T2有可能是重复交易。这是因为交易验重器的位数组中的数组元素具备共用性,所以,验重集合中的不同验重元素之间可能存在共用同一标识位置上的数组元素的情况。基于此,为了确保交易验重的可靠性,本申请实施例可以进一步在图2所示的交易池200a中查找是否存在与该交易T2相匹配的第一历史交易,如果没有查找到,则可以进一步在图2所示的交易缓存中查找是否与该交易T2相匹配的第二历史交易,如果仍为查找到,则可以通过区块链网络访问图2所示的区块链数据库,以最终判断该交易T2是否是非重复交易。应当理解,如果在区块链数据库中也未查找到与该交易T2相匹配的第三历史交易,则可以最终确定该交易T2为非重复交易,即该交易T2并不存在于整个区块链网络中,故而可以允许该节点20c将该交易T2添加至图2所示的交易池200a,以便于后续该节点20c的共识层200b可以将该交易池200a中的交易打包成上述目标区块,以通过图2所示的其他节点(例如,共识节点20b、共识节点20d以及共识节点20e)可以对该目标区块进行区块共识,并可以在区块共识通过之后,将该目标区块暂存至图2所示的交易缓存,以便于后续在将该交易缓存中的目标区块上链至上述目标区块链时,将该目标区块中的交易和交易执行结果存储至图2所示的区块链数据库200d。
应当理解,本申请实施例可以将这里的第一关联关系或者第二关联关系统称为对待处理交易(例如,交易T2)进行第一交易验重后的第一交易验重结果,并可以将通过交易池200a、本地账本层200c的交易缓存或者区块链数据库200d所最终得到的交易验重结果统称为第二交易验重结果。
可选的,可以理解的是,图2所示的节点20c(即上述第一节点)不仅可以接收用户终端20a发送来的交易T1,还可以接收该区块链网络中的其他节点(即上述第二节点,例如,图2的共识节点20b)广播来的区块。同理,该节点20c在获取到其他节点(例如,图2的共识节点20b)广播来的区块时,会对该区块中的所有交易串行进行交易验重,进而可以在对这些交易进行交易验重之后,得到对该区块进行交易验重的区块交易验重结果。这里的区块交易验重结果可以用于决定是否接收由其他节点广播来的区块。应当理解,该节点20c通过交易验重器对该区块中的每个交易进行交易验重的具体实现方式,可以参见该节点20c通过交易验重器对上述交易T1进行交易验重的具体过程的描述,这里将不再继续赘述。
其中,第一节点(例如,图2所示的节点20c)对接收到的交易添加请求中的交易和对接收到的区块中的交易进行交易验重的具体过程,可以参见如下图3至图10所对应的实施例。
进一步的,请参见图3,图3是本申请提供的一种交易验重方法的流程示意图,如图3所示,方法可以由上述区块链网络中的第一节点执行,该第一节点中部署有交易验重器,应当理解,该第一节点可以为上述图1所示的共识网络100a中任意一个节点。方法具体可以包括以下步骤S101-步骤S104。
步骤S101,获取待上链至区块链网络的待处理交易;
具体的,第一节点可以在获取到某个交易时,将该获取到交易统称为待处理交易。这样,该第一节点可以进一步确定该待处理交易的交易来源属性,进而可以通过不同的交易来源属性,使用不同的交易验重策略对该待处理交易进行交易验重。
其中,这里的交易可以来自第一来源,该第一来源是指来自区块链客户端发送的交易添加请求。可选的,这里的交易还可以来自第二来源,该第二来源是指来自其他节点广播过来的区块,或者这里的交易可以来自第三来源,该第三来源是指可以来自其他节点所同步过来的交易池中的交易。为便于理解,本申请实施例可以将第一来源和第三来源的来源属性统称为交易来源属性中的第一来源属性,并可以将第二来源的来源属性统称为交易来源属性中的第二来源属性。其中,第一来源属性可以用于表征该待处理交易为上述区块链客户端发送的交易添加请求中的交易(例如,交易Tx1)。可选的,该第一来源属性还可以用于表征该待处理交易为上述第二节点的交易池所同步过来的交易(例如,交易Tx2)。其中,第二来源属性用于表征该待处理交易为上述第二节点(例如,区块链网络中的其他共识节点)发送的区块中的交易(例如,区块中的交易具体可以包含交易1、交易2、…、交易N)。
基于此,若确定出的交易来源属性包含第一来源属性,则可以采用第一交易验重策略和/或第二交易验重策略对待处理交易进行交易验重。比如,可以采用第一交易验重策略执行下述步骤S102-步骤S104,以对该第一节点当前获取到的交易进行第一交易验重。
可选的,若确定出的交易来源属性包含第二来源属性,则可以采用第三交易验重策略和/或第四交易验重策略对该目标区块中的交易进行交易验重。比如,该第一节点可以预先通过第三交易验重策略控制交易验重器遍历该区块(即上述目标区块)中的每个交易(即上述前述交易1、交易2、…、交易N),以进行交易验重,从而可以得到该目标区块对应的区块交易验重结果。
其中,应当理解,若在通过交易验重器对该目标区块中的交易进行交易验重的过程中,若判断出该目标区块中的每个交易均不为重复交易(即目标区块中的每个交易均为非重复交易),则可以接收该目标区块,进而可以根据该目标区块中的所有交易的目标标识位置上的哈希映射值,将该第一节点的交易验重器中的位数组(即上述待查询位数组)中对应目标标识位置上的数组元素变更为1。反之,在通过交易验重器串行对该目标区块中的交易进行交易验重时,一旦该交易验重器确定某个交易可能为重复交易,则可以进一步按照第四交易验重策略在交易缓存和区块链账本中该交易再次进行交易验重,以避免误将该目标区块中的这个交易识别为重复交易的可能。
为便于理解,这里以该第一节点所确定的交易来源属性为上述第一来源属性为例,此时,该第一节点可以基于该第一来源属性预先使用上述第一交易验重策略执行下述步骤S102。
步骤S102,在通过交易验重器对待处理交易进行第一交易验重,获取交易验重器的位数组和K个哈希函数,将获取到的位数组作为待处理交易对应的待查询位数组;
其中,待查询位数组的M个数组元素中包含第一数组元素;K为小于M的正整数;M为待查询位数组的数组长度;
具体的,第一节点可以在交易验重器通过第一交易验重策略对待处理交易进行第一交易验重时,从交易验重器中获取数组长度为M的位数组,并获取与数组长度为M的位数组相关联的K个哈希函数;在数组长度为M的位数组中,交易验重器的验重集合中的验重元素所映射的K个关键标识位置上的数组元素均为第二数组元素(这里的第二数组元素可以为上述值为1的数组元素);一个关键标识位置为将验重元素通过一个哈希函数进行哈希位置映射后所得到的标识位置;进一步的,第一节点可以在数组长度为M的位数组中,将M个数组元素中除第二数组元素之外的数组元素作为第一数组元素(这里的第一数组元素可以为上述值为0的数组元素);其中,第一数组元素对应的标识位置不同于第二数组元素对应的标识位置,且第一数组元素的元素数量与第二数组元素的元素数量之和为M;进一步的,第一节点可以将由第一数组元素和第二数组元素所构成的位数组作为待处理交易对应的待查询位数组。
为便于理解,进一步的,请参见图4,图4是本申请实施例提供的一种确定待查询位数组的场景示意图。应当理解,如图4所示,第一节点在基于上述第一交易验重策略对当前获取到的交易(即待处理交易)进行交易查询时,可以触发图4所示的交易验重器4a,以获取该交易验重器4a当前所维护的位数组401a,应当理解,图4所示的位数组401a包含M个数组元素,这M个数组元素是由一个很长的二进制向量所构成的,即位数组401a中的每个数组元素可以用一个bit位的1表示,也可以用一个bit位的0表示。其中,值为0的数组元素即为上述第一数组元素,且值为1的数组元素即为上述第二数组元素。应当理解,本申请实施例可以将由第一数组元素和第二数组元素所构成的位数组(即图4所示的位数组401a)作为该待处理交易对应的待查询位数组。
其中,应当理解,该第一节点在获取到上述数组长度为M的位数组(即图4所示的位数组401a)时,还可以获取该交易验重器的K个哈希函数。应当理解,这里的K个哈希函数可以包含图4所示的哈希函数41a、哈希函数41b、…、哈希函数41k。
其中,可以理解的是,在本申请实施例中,通过引入多个哈希函数,可以在将某个交易的交易哈希值进行哈希位置映射(简称为哈希映射)时,增大哈希映射后所得到的交易映射值的随机性,进而使得对某个交易的交易哈希值哈希映射后的交易映射值可以尽可能的均匀分布在交易验重器的位数组中,从而可以在一定程度上减少对某个交易的交易哈希值进行哈希映射后所得到的交易映射值产生哈希碰撞的概率。为便于理解,这里以该交易验重器401a的三个哈希函数为例,这三个哈希函数可以为图4所示的哈希函数41a、哈希函数41b和哈希函数41k。
比如,对于图4所示的元素A1、元素A2和元素A3而言,由于该交易验重器本身并不直接存储该交易验重器所维护的验重集合中的这3个验重元素。如图4所示,在数组长度为M的位数组401a中,验重集合中的每个验重元素所映射的K个关键标识位置上的数组元素均为第二数组元素;对于一个验重元素所关联的K个关键标识位置而言,一个关键标识位置为将该一个验重元素通过一个哈希函数进行哈希位置映射后所得到的标识位置。所以,当第一节点通过该交易验重器中的位数组401a描述当前已经插入该交易验重器4a的元素A1时,可以通过这3个哈希元素将该元素A1当前映射在该位数组401的3个目标标识位置(例如,标识位置4b、标识位置4f和标识位置4m)上的交易映射值均变更为1。同理,当第一节点通过该交易验重器中的位数组401a描述当前已经插入该交易验重器4a的元素A2时,可以通过这3个哈希元素将该元素A2当前映射在该位数组401的3个目标标识位置(例如,标识位置4e、标识位置4f和标识位置4k)上的交易映射值均变更为1。以此类推,当第一节点通过该交易验重器中的位数组401a描述当前已经插入该交易验重器4a的元素A3时,可以通过这3个哈希元素将该元素A3当前映射在该位数组401的3个目标标识位置(例如,标识位置4d、标识位置4k和标识位置4p)上的交易映射值均变更为1。
如图4所示,对于元素A1和元素A2而言,可能会存在共享同一个标识位置(例如,图4所示的标识位置4f)上的第二数组元素(即值为1的数组元素)的情况,且对于元素A2和元素A3而言,也可能会存在共享同一个标识位置(例如,图4所示的标识位置4k)上的第二数组元素(即值为1的数组元素)的情况。所以,当该第一节点通过图4所示的交易验重器401a对当前获取到的交易进行交易验重时,可以准确判断出当前所获取到的交易是否存在于验重集合中。比如,可以在当前获取到的交易所关联的K(例如,3)个标识位置上的数组元素存在为0的情况下,准确且快速得判断出当前交易不存在验重集合中,即可以确定当前获取到的交易为非重复交易。
然而,如图4所示,对于图4所示的标识位置4b、标识位置4d和标识位置4e这3个点而言,尽管这3个关键标识位置上的数组元素均为1,但并不能直接认为当前获取到的交易存在于验重集合中,也就不能直接认为当前获取到的交易为重复交易,毕竟图4所示的标识位置4b、标识位置4d和标识位置4e这3个点是根据3个不同元素的哈希标识至经过哈希映射后所得到的标识位置。基于此,本申请实施例还需要进一步基于上述第二交易验重策略对当前获取到的这个交易进行第二交易验重,以进一步验证当前获取到的交易是否为重复交易,进而可以提升交易验重的可靠性。
步骤S103,基于K个哈希函数将待处理交易映射至待查询位数组的K个目标标识位置,在M个数组元素中,将K个目标标识位置上的数组元素作为K个目标标识位置上的交易映射值;
为便于理解,进一步的,请参见图5,图5是本申请实施例提供的一种通过交易验重器的哈希函数将待处理交易映射值到待查询位数组的场景示意图。如图5所示的位数组502a可以为上述图4所对应实施例中的待查询位数组。即通过该待查询位数组可以用于判断图5所示的交易Tx1是否存在于该交易验重器的验重集合中。
如图5所示,第一节点可以在当前获取到的交易为图5所示的Tx1时,可以通过该第一节点与发送上述交易添加请求的用户终端(该用户终端中运行有区块链客户端)之间所遵从的该区块链网络对应的哈希转换规则,对该交易Tx1进行哈希计算,以得到用于唯一标识该交易Tx1的交易哈希值。进一步的,如图5所示,第一节点可以将该交易Tx1的交易哈希值输入图5所示的交易验重器5a,以将该交易Tx1的交易哈希值作为交易验重器的输入值。进一步的,该第一节点可以图5所示的K(即K=3)个哈希函数对该输入值再次进行哈希映射,以将该交易Tx1映射为该位数组502a上的3个点,一个点对应一个bit位。
其中,这3个点可以为如图5所示的标识位置5b(即目标标识位置1)上的交易映射值、标识位置5f(即目标标识位置2)上的交易映射值、标识位置5o(即目标标识位置3)上的交易映射值。
进一步的,第一节点可以进一步判断该待查询位数组中的第一数组元素(即值为0的数组元素)与这3个目标标识位置上的交易映射值之间的关联关系。即可以在这3个目标标识位置上的交易映射值中查找是否存在与第一数组元素相同的交易映射值,如果查找到,则可以确定该交易Tx1并不存在于该交易验重器5a所维护的验重集合中。反之,则可以暂且认为该交易Tx1可能存在于该交易验重器5a所维护的验重集合中,进而需要通过上述第二交易验重策略在交易池、交易缓存以及区块链数据库进行第二交易验重,以最终判断该交易Tx1是否为存在与该区块链网络中。
步骤S104,确定第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,基于关联关系得到对待处理交易进行第一交易验重后的第一交易验重结果。
具体的,可以理解的是,本申请实施例可以在第一数组元素与K个目标标识位置上的交易映射值之间的关联关系为第一关联关系时,确定K个目标标识位置上的交易映射值中存在与第一数组元素相同的交易映射值,进而可以基于该第一关联关系,得到该待处理交易为非重复交易的验重结果,并可以将确定的该待处理交易为非重复交易的验重结果作为对待处理交易进行第一交易验重后的第一交易验重结果。
其中,如上述图5所示,标识位置5b(即目标标识位置1)上的交易映射值和标识位置5f(即目标标识位置2)上的交易映射值为上述第二数组元素,但是,标识位置5o(即目标标识位置3)上的交易映射值为上述第一数组元素。即该第一节点可以在确定K(即K=3)个交易映射值中存在与第一数组元素相同的交易映射值,作为第一数组元素与K个目标标识位置上的交易映射值之间的第一关联关系,进而可以基于该第一关联关系控制该交易验重器准确地确定该交易Tx1并不存在于该交易验重器5a所维护的验重集合中,进而可以控制该交易验重器5a输出Tx1不存在与验重集合中的交易验重结果,并可以将输出的Tx1不存在与验重集合中的交易验重结果作为对上述待处理交易进行第一交易验重后的第一交易验重结果。
由此可见,本申请实施例在获取到待处理交易时,可以预先通过交易验重器在第一节点的节点内存中判断该待处理交易是否存在于该交易过滤器所维护的验重集合中,并可以将判断出的交易验重结果统称为对待处理交易进行第一交易验重后的第一交易验重结果。应当理解,本申请实施例通过在该节点内存中使用交易验重器进行交易验重,可以快速判断出当前交易为非重复交易的情况。即本申请实施例可以直接通过交易验重器中的第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,快速判断该待处理交易是否存在于该第一节点的节点内存中所部署的交易验重器,进而可以在无需访问区块链数据库的情况下,提升交易验重的效率。
进一步的,请参见图6,图6是本申请实施例提供的一种交易验重方法的流程示意图。如图6示,方法可以由区块链网络中的第一节点执行,该第一节点可以为上述图1所示的共识网络100a中的任一个区块链节点(例如,上述节点10c)。该方法具体包括以下步骤S201-S216:
步骤S201,获取待上链至区块链网络的待处理交易;
步骤S202,确定待处理交易的交易来源属性;
其中,交易来源属性用于指示交易验重器(例如,上述布隆过滤器)确定对待处理交易进行交易验重时的交易验重策略。
其中,若交易来源属性包含第一来源属性,则交易验重策略包含与第一节点的交易池相关联的第一交易验重策略和第二交易验重策略;为便于理解,这里以第一来源属性用于表征待处理交易为交易添加请求中的交易为例,此时,该交易添加请求可以是由与第一节点相关联的区块链客户端发送的;则第一节点可以进一步执行下述步骤S203。
步骤S203,若交易来源属性为第一来源属性,则在交易验重器通过第一交易验重策略对待处理交易进行第一交易验重时,从交易验重器中获取数组长度为M的位数组,并获取与数组长度为M的位数组相关联的K个哈希函数;
其中,在数组长度为M的位数组中,交易验重器的验重集合中的验重元素所映射的K个关键标识位置上的数组元素均为第二数组元素;一个关键标识位置为将验重元素通过一个哈希函数进行哈希位置映射后所得到的标识位置;
步骤S204,在数组长度为M的位数组中,将M个数组元素中除第二数组元素之外的数组元素作为第一数组元素;
其中,第一数组元素对应的标识位置不同于第二数组元素对应的标识位置,且第一数组元素的元素数量与第二数组元素的元素数量之和为M;
步骤S205,将由第一数组元素和第二数组元素所构成的位数组作为待处理交易对应的待查询位数组;
步骤S206,基于K个哈希函数将待处理交易映射至待查询位数组的K个目标标识位置,在M个数组元素中,将K个目标标识位置上的数组元素作为K个目标标识位置上的交易映射值;
步骤S207,确定第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,基于关联关系得到对待处理交易进行第一交易验重后的第一交易验重结果;
其中,关联关系包括第一关联关系,这里的第一关联关系用于表征K个目标标识位置上的交易映射值中存在与第一数组元素相同的交易映射值;此时,第一节点可以进一步执行下述步骤S208-步骤210。可选的,关联关系还可以包括第二关联关系,这里的第二关联关系用于表征K个目标标识位置上的交易映射值中不存在与第一数组元素相同的交易映射值;此时,第一节点可以在执行完上述步骤S207时,进一步跳转执行步骤S211和步骤S212。
步骤S208,若第一交易验重结果指示关联关系为第一关联关系,则基于与第一数组元素相同的交易映射值,确定待处理交易不属于交易验重器的验重集合中的验重元素,且控制交易验重器输出待处理交易的交易属性为非重复交易属性;
步骤S209,将具有非重复交易属性的待处理交易确定为待保存至第一节点的交易池的第一目标交易。
其中,这里的第一目标交易可以为通过上述交易验重器对待处理交易进行读第一交易验重后所确定的上述非重复交易。此时,第一节点可以执行下述步骤S210,以将该第一目标交易添加到交易池中。
步骤S210,在将第一目标交易保存至第一节点的交易池时,将与第一数组元素相同的交易映射值作为第一目标交易映射值,且在待查询位数组中,将第一目标交易映射值所对应的目标标识位置上的数组元素由第一数组元素更新为第二数组元素。
为便于理解,进一步的,请参见图7,图7是本申请实施例提供的一种更新待查询位数组的场景示意图。如图7所示的交易Tx1可以为上述图5所对应实施例中的待处理交易。如图7所示,第一节点在通过上述图5所示的交易验重器5a的3个哈希函数将该交易Tx1可以映射为图7所示位数组701a的3个目标标识位置,这3个目标标识位置可以为图7所示的标识位置7b、标识位置7f以及标识位置7o;如图7所示,由于在这3个目标标识位置上的交易映射值中,存在标识位置7o上的交易映射值与上述第一数组元素(即值为0的数组元素相同)。所以,该第一节点可以确定图7所示的交易Tx1的交易属性为非重复交易属性,并可以将该具有非重复交易属性的交易Tx1作为上述第一目标交易,进而可以将该第一目标交易添加至交易池(例如,上述图2所对应实施例中的200a)中时,直接将该交易Tx1的三个目标标识位置上的数组元素均设置为第二数组元素,以得到图2所示的位数组702a,并可以将该位数组702a作为目标位数组,以便于后续在获取到新的交易(例如,交易Tx2)时,可以将该目标位数组作为新的待查询位数组,以重复执行上述步骤S205-步骤S210。其中,如图7所示,该位数组702a中的3个标识位置上的数组元素均为第二数组元素,此时,该第一节点可以确定已经将添加到交易池中的交易Tx1作为新的验重元素插入到交易验重器所维护的验重集合中,即可以对验重集合中验重元素的数量进行递增处理,例如,加一处理。
可选的,为提升对交易验重器的数组元素进行更新的效率,本申请实施例还可以在K个目标标识位置上的交易映射值中,直接将与第一数组元素相同的交易映射值(即图7所示的位数组701a的标识位置7o上的交易映射值)作为第一目标交易映射值,且在待查询位数组中,将第一目标交易映射值所对应的目标标识位置(即标识位置7o)上的数组元素由第一数组元素(即位数组701a的标识位置7o上的值0)更新为第二数组元素(即位数组702a的标识位置7o上的值1)。
可选的,步骤S211,若第一交易验重结果指示关联关系为第二关联关系,则获取与第一节点的交易池相关联的第二交易验重策略;
步骤S212,通过第二交易验重策略对待处理交易进行第二交易验重,得到第二交易验重结果。
具体的,第一节点可以通过第二交易验重策略在第一节点的交易池中查找与待处理交易相匹配的第一历史交易;若在第一节点的交易池中查找到与待处理交易相匹配的第一历史交易,则确定待处理交易的交易属性为重复交易属性,将具备重复交易属性的待处理交易作为与第二交易验重策略相关联的第一类重复交易;进一步的,第一节点可以将第一类重复交易作为对待处理交易进行第二交易验重后的第二交易验重结果。可选的,若在第一节点的交易池中未查找到与待处理交易相匹配的第一历史交易,则初步确定待处理交易的交易属性为非重复交易属性,并可以将具备非重复交易属性的待处理交易作为与第二交易验重策略相关联的第一过渡验重结果;进一步的,此时,第一节点可以基于第一过渡验重结果将具备第一非重复交易属性的待处理交易作为第一过渡交易,在第一节点的交易缓存中查找与第一过渡交易相匹配的第二历史交易;若在第一节点的交易缓存中查找到与第一过渡交易相匹配的第二历史交易,则确定第一过渡交易的交易属性为重复交易属性,将具备重复交易属性的第一过渡交易作为与第二交易验重策略相关联的第二类重复交易;进一步的,第一节点可以将确定的第二类重复交易作为对待处理交易进行第二交易验重后的第二交易验重结果。可选的,若在第一节点的交易缓存中未查找到与第一过渡交易相匹配的第二历史交易,则确定第一过渡交易的交易属性为第二非重复交易属性,将具备第二非重复交易属性的第一过渡交易作为与第二交易验重策略相关联的第二过渡验重结果;进一步的,第一节点可以基于第二过渡验重结果将具备第二非重复交易属性的第一过渡交易作为第二过渡交易,在与第一节点相关联的区块链数据库中查找与第二过渡交易相匹配的第三历史交易;若在区块链数据库中查找到与第二过渡交易相匹配的第三历史交易,则确定第二过渡交易的交易属性为重复交易属性,将具备重复交易属性的第二过渡交易作为与第二交易验重策略相关联的第三类重复交易;进一步的,第一节点可以将确定的第三类重复交易作为对待处理交易进行第二交易验重后的第二交易验重结果。
步骤S213,若第二交易验重结果指示待处理交易的交易属性为重复交易属性,则将待处理交易确定为重复交易,且拒绝将重复交易添加至第一节点的交易池。
步骤S214,若第二交易验重结果指示待处理交易的交易属性为非重复交易属性,则基于具有非重复交易属性的待处理交易,确定用于添加至第一节点的交易池的第二目标交易,且在第一节点的交易池中保存第二目标交易;
步骤S215,在将第二目标交易插入至交易验重器的验重集合时,将K个目标标识位置上的交易映射值作为第二目标交易映射值;
步骤S216,在待查询位数组中,控制交易验重器将第二目标交易映射值所对应的目标标识位置上的数组元素更新为第二数组元素,将更新后的待查询位数组作为目标位数组。
为便于理解,进一步的,请参见图8,图8是本申请实施例提供的一种业务请求中的交易进行交易验重的时序图。如图8所示,第一节点可以在执行步骤S81时,接收客户端(这里的客户端为上述区块链客户端)发送的交易1,并可以将当前接收到的交易1作为上述步骤S201中的待处理交易。
其中,应当理解,这里的交易1(即待处理交易)可以为该客户端(即上述区块链客户端)发送的业务请求中的交易。可以理解的是,这里的业务请求可以包含运行有该区块链客户端的用户终端发送的用于请求接收该交易1的交易添加请求;可选的,这里的业务请求还可以包含上述运行有区块链客户端的第二节点发送的用于请求同步自己交易池中的交易1的交易同步请求。比如,对于业务请求为交易添加请求而言,这里的交易1可以为上述图7所对应实施例中的交易Tx1。又比如,对于业务请求为交易同步请求而言,这里的交易1可以为上述图3所对应实施例中的交易Tx2。
进一步的,如图8所示,第一节点在确定该交易1的交易来源属性为第一来源属性(即该交易1来源于上述业务请求)时,可以进一步执行步骤S82,以通过交易验重器对交易1进行第一交易验重,以得到的上述第一交易验重结果。其中,这里第一交易验重结果的获取方式可以参见上述步骤S203-步骤S207的具体描述,这里将不再继续进行赘述。
进一步的,如图8所示,若第一交易验重结果指示该交易1为非重复交易,则可以跳转执行步骤S83,以将该交易1作为第一目标交易,进而可以保存至交易池。这意味着第一节点在通过将交易1保存至交易池时,可以进一步执行步骤S84,进而可以根据上述步骤S82所得到的交易1的K个目标标识位置上的数组元素,快速更新交易验重器中的待查询位数组。其中,该第一节点更新该待查询位数组的具体实现方式,可以参见上述图6所对应实施例中对步骤S210。
可选的,如图8所示,若上述步骤S82所得到的第一交易验重结果指示该交易1可能为重复交易,则可以进一步在上述关联关系为第二关联关系时,通过第二交易验重策略执行图8所示的步骤S85,以判断该交易1(即上述待处理交易)是否已经存在与交易池中;即此时,第一节点可以通过第二交易验重策略在交易池中查找与该交易1相匹配的历史交易。为便于理解,本申请实施例可以将该交易池中所添加的历史交易统称为第一历史交易。
进一步的,如图8所示,如果第一节点在交易池中查找到与交易1相匹配的第一历史交易,则可以将交易1已经存在于交易池的交易验重结果(即交易验重结果1)作为第二交易验重结果,进而可以跳转执行步骤S86,即可以直接拒绝接受该交易1。应当理解,第一节点在确定交易1已经存在于交易池中时,可以将具备重复交易属性的待处理交易作为与该第二交易验重策略相关联的第一类重复交易,并可以将第一类重复交易作为对交易1进行第二交易验重后的第二交易验重结果。
可选的,如图8所示,如果第一节点在交易池中未查找到与交易1相匹配的第一历史交易,则可以将交易1不存在于交易池的交易验重结果(例如,验重结果1’)作为第一过渡验重结果,进而可以继续执行步骤S87,以进一步判断交易1是否已经存在与交易缓存中。应当理解,第一节点在确定交易1不存在于交易池中时,可以将具备非重复交易属性(即第一非重复交易属性)的交易1作为与该第二交易验重策略相关联的第一过渡验重结果,以便于可以进一步执行步骤S87。
此时,第一节点可以将具备第一非重复交易属性的交易1作为第一过渡交易,并可以进一步在步骤S87的交易缓存中查找是否存在与该第一过渡交易(即具备第一非重复交易属性的交易1)相匹配的历史交易;为便于理解,本申请实施例可以将该交易缓存中所缓存的历史交易统称为第二历史交易。如图8,若第一节点在交易缓存中查找到与第一过渡交易相匹配的第二历史交易,则可以将交易1已经存在于交易缓存的交易验重结果(即验重结果2)作为对交易1进行第二交易验重后的第二交易验重结果,进而可以跳转执行步骤S86,即可以直接拒绝接受该交易1。应当理解,第一节点在确定交易1已经存在于交易缓存中时,可以将具备重复交易属性的第一过渡交易作为与该第二交易验重策略相关联的第二类重复交易,并可以将第二类重复交易作为对交易1进行第二交易验重后的第二交易验重结果。
可选的,如图8所示,如果第一节点在交易缓存池中未查找到与第一过渡交易(即具备第一非重复交易属性的交易1)相匹配的第二历史交易,则可以将交易1不存在于交易缓存的交易验重结果(例如,验重结果2’)作为第二过渡验重结果,进而可以继续执行步骤S88,以进一步判断交易1是否已经存在与区块链数据库中。应当理解,第一节点在确定交易1不存在于交易缓存中时,可以将具备非重复交易属性(即具备第一非重复交易属性且具备第二非重复交易属性)的交易1作为与该第二交易验重策略相关联的第二过渡验重结果,以便于可以进一步执行步骤S88。
此时,第一节点可以将具备第一非重复交易属性和第二非重复交易属性的交易1作为第二过渡交易,即该第一节点将即不在交易池又不在交易缓存的交易1作为第二过渡交易,并可以进一步在步骤S88的区块链数据库中查找是否存在与该第二过渡交易相匹配的历史交易;为便于理解,本申请实施例可以将该区块链数据库中所存储的历史交易统称为第三历史交易。如图8,若第一节点在区块链数据库中查找到与第二过渡交易相匹配的第三历史交易,则可以将交易1已经存在于区块链数据库的交易验重结果(即验重结果3)作为对交易1进行第二交易验重后的第二交易验重结果,进而可以跳转执行步骤S86,即可以直接拒绝接受该交易1。应当理解,第一节点在确定交易1已经存在于区块链数据库中时,可以将具备重复交易属性的第二过渡交易作为与该第二交易验重策略相关联的第三类重复交易,并可以将第三类重复交易作为对交易1进行第二交易验重后的第二交易验重结果。
可选的,如图8所示,如果第一节点在区块链数据库中未查找到与第二过渡交易(即具备第一非重复交易属性和第二非重复交易属性的交易1)相匹配的第三历史交易,则可以将交易1不存在于区块链数据库的交易验重结果(例如,验重结果3’)作为对交易1进行第二交易验重后的第二交易验重结果,进而可以继续执行步骤S83和步骤84。应当理解,该第一节点基于上述第二交易验重策略将该交易1添加至交易池以及更新待查询位数组的具体实现方式,可以参见上述图6所对应实施例中的步骤S214-步骤S216,这里将不再继续激进型赘述。
由此可见,本申请实施例在获取到待处理交易时,可以预先通过交易验重器在第一节点的节点内存中判断该待处理交易是否存在于该交易过滤器所维护的验重集合中,并可以将判断出的交易验重结果统称为对待处理交易进行第一交易验重后的第一交易验重结果。应当理解,本申请实施例通过在该节点内存中使用交易验重器进行交易验重,可以快速判断出当前获取到的交易为非重复交易的情况。即本申请实施例可以直接通过交易验重器中的第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,快速判断该待处理交易是否存在于该第一节点的节点内存中所部署的交易验重器,以提升交易验重的效率。可选的,本申请实施例还可以在通过交易验重器初步确定出当前获取到的交易(即上述待处理交易)疑似重复交易的情况下,将对待处理交易进行交易验重的交易验重策略由交易验重器的第一交易验重策略切换为与区块链网络相关联的第二交易验重策略,进而可以通过第二交易验重策略对疑似重复交易的待处理交易进行第二交易验重,以得到第二交易验重结果。应当理解,这里的第二交易验重是指可以进一步在与该区块链网络相关联的交易池、交易缓存以及区块链数据库中查找是否存在与该疑似重复交易的待处理交易相匹配的历史交易,如果存在,则确定该疑似重复交易的待处理交易确实为重复交易。反之,如果不存在,则可以确定该疑似重复交易的待处理交易为非重复交易,进而可以提升交易验重的可靠性。
进一步的,请参见图9,图9是本申请实施例提供的一种交易验重方法的流程示意图。如图9示,方法可以由区块链网络中的第一节点执行,该第一节点可以为上述图1所示的共识网络100a中的任一个区块链节点(例如,上述节点10c)。该方法具体包括以下步骤S301-S309:
步骤S301,获取待上链至区块链网络的待处理交易;
步骤S302,确定待处理交易的交易来源属性;
其中,交易来源属性用于指示交易验重器确定对待处理交易进行交易验重时的交易验重策略。这里的交易来源属性可以包含上述第一来源属性和上述第二来源属性。
其中,若交易来源属性包含第一来源属性,则交易验重策略可以包含与第一节点的交易池相关联的第一交易验重策略和第二交易验重策略;其中,第一交易验重策略的优先级高于第二交易验重策略的优先级。其中,第一来源属性可以用于表征待处理交易为交易添加请求中的交易;交易添加请求是由与第一节点相关联的区块链客户端发送的;可选的,这里的第一来源属性还可以用于表征待处理交易为交易同步请求中的交易,这里的交易添加请求中的交易和交易同步请求中的交易均可以统称为来自于业务请求中的交易。其中,第一节点对接收到的业务请求中的交易进行交易验重的具体过程可以参见上述图8所对应实施例对交易1进行交易验重的具体过程的描述,这里将不再继续进行赘述。
可选的,其中,若交易来源属性包含第二来源属性,则交易验重策略包含与第一节点的交易缓存相关联的第三交易验重策略和第四交易验重策略。其中,第三交易验重策略的优先级高于第二交易验重策略的优先级。比如,第一节点可以预先基于第三交易验重策略执行下述步骤S303;第二来源属性用于表征待处理交易为区块链网络中的第二节点所广播的目标区块中的交易;目标区块中的每个交易对应一个交易标识,且一个交易标识用于表征一个交易在目标区块中的打包顺序;
为便于理解,这里以交易来源属性为第二来源属性为例,以阐述第一节点对接收到的第二节点发送的目标区块中的交易进行交易验重的具体过程。
步骤S303,若交易来源属性为第二来源属性,则通过第三交易验重策略获取目标区块中的关键交易的交易标识;
其中,关键交易为目标区块所包含的N个交易中具有最大打包顺序的交易;N为正整数;
步骤S304,将待处理交易的交易标识与关键交易的交易标识进行比较,得到初始比较结果;
步骤S305,若初始比较结果指示待处理交易的交易标识与目标区块中的关键交易的交易标识不相同,则确定存在待处理交易的下一交易;
步骤S306,通过交易验重器对目标区块中的待处理交易进行块内交易验重,得到与待处理交易相关联的区块交易验重结果;
具体的,第一节点可以基于上述第三交易验重策略在通过交易验重器对待处理交易进行第一交易验重时,获取交易验重器的位数组和K个哈希函数,将获取到的位数组作为待处理交易对应的待查询位数组;待查询位数组的M个数组元素中包含第一数组元素;K为小于M的正整数;M为待查询位数组的数组长度;进一步的,第一节点可以基于K个哈希函数将待处理交易映射至待查询位数组的K个目标标识位置,在M个数组元素中,将K个目标标识位置上的数组元素作为K个目标标识位置上的交易映射值;进一步的,第一节点可以确定第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,基于关联关系得到对待处理交易进行第一交易验重后的第一交易验重结果,进而可以将该第一交易验重结果作为与待处理交易相关联的区块交易验重结果。
步骤S307,若区块交易验重结果指示交易验重器输出的目标区块中的待处理交易的交易属性为重复交易属性,则通过第四交易验重策略在第一节点的交易缓存查找与待处理交易相匹配的交易,且在交易缓存中查找到与待处理交易相匹配的交易时,拒绝接收第二节点广播的目标区块。
可选的,若区块交易验重结果指示交易验重器输出的目标区块中的待处理交易的非重复交易,则可以继续将该待处理交易的下一个交易确定为新的待处理交易,以重复执行上述步骤S304-步骤S307,直到该第一节点对该目标区块中的具有最大打包顺序的交易(即上述关键交易)进行交易验重,且验重通过时,可以确定目标区块中的每个交易均为非重复交易。
步骤S308,若初始比较结果指示待处理交易的交易标识与目标区块中的关键交易的交易标识相同,且确定目标区块中不存在待处理交易的下一交易,则确定目标区块中的每个交易均为非重复交易;
由此可见,该第一节点可以将当前最新获取到待处理交易的交易标识与目标区块中的关键交易的交易标识进行比较,以得到最新的初始比较结果,进而可以在该最新的初始比较结果指示当前最新确定的待处理交易的交易标识与目标区块中的关键交易的交易标识相同,且确定目标区块中不存在待处理交易的下一交易,则确定目标区块中的每个交易均为非重复交易,进而可以继续执行下述步骤308。
步骤S309,通过交易验重器获取目标区块中的每个交易的交易哈希值,基于每个交易的交易哈希值更新交易验重器中的位数组;每个交易的交易哈希值是由交易验重器中的K个哈希函数所确定的。
为便于理解,进一步的,请参见图10,图10是本申请实施例提供的一种对区块中的交易进行交易验重的场景实施例。如图10所示的第一节点可以接收第二节点广播来的目标区块,该目标区块可以为图10所示的区块X。其中,该区块X可以包含N个交易,这里的N个交易具体可以为图10所示的交易11、交易12、交易13、…、交易1n。其中,该目标区块中的每个交易分别对应一个交易标识,且一个交易标识用于表征一个交易在目标区块中的打包顺序。其中,这里的N为正整数。
如图10所示,该第一节点在获取到该目标区块时,可以执行步骤S901,以根据目标区块中的每个交易的交易打包顺序,遍历将该目标区块中的交易作为待处理交易,为便于理解,本申请实施例以图10所示的交易11(即具有最小打包顺序)作为待处理交易,由于该待处理交易来自于第二节点广播来的区块X,所以,该第一节点可以确定该交易11的交易来源属性为上述第二来源属性,进而可以基于第三交易验重策略(即通过交易验重器对该交易11进行交易验重时的交易验重策略)获取该目标区块中的关键交易(即具有最大打包顺序的交易,例如,图10所示的交易1n)的交易标识,进而可以执行图10所示的步骤S902,以判断该待处理交易(例如,交易11)的交易标识是否与该关键交易(例如,交易1n)的交易标识相同。换言之,此时,第一节点可以将待处理交易的交易标识与关键交易的交易标识进行比较,以得到初始比较结果。
进一步的,如图10所示,若该初始比较结果指示待处理交易(例如,交易11)的交易标识与目标区块中的关键交易(例如,交易1n)的交易标识不相同,则确定存在待处理交易的下一交易,进而可以继续执行图10所示的步骤S904,以通过交易验重器(这里的交易验重器可以为上述布隆过滤器)对该待处理交易(例如,交易11)进行块内交易验重,以得到区块交易验重结果。其中,应当理解,该第一节点通过交易验重器(例如,布隆过滤器)对该待交易11进行交易验重的具体实现方式可以参见上述图3所对应的实施例中对基于第一交易验重策略对待处理交易进行交易验重的具体过程的描述,这里将不再继续进行重复。
如图10所示,第一节点可以在区块交易验重结果指示该待处理交易(例如,交易11)为重复交易时,跳转执行图10所示的步骤S907。反之,该第一节点可以在区块交易验重结果指示该待处理交易(例如,交易11)可能为非重复交易时,进一步基于与第二来源属性相关联的第四交易验重策略执行图10所示的步骤S905,以判断该待处理交易(例如,交易11)是否已经存在于交易缓存中。应当理解,在本申请实施例中,该第一节点可以在交易缓存中查找是否存在与待处理交易(例如,交易11)的交易哈希值相匹配的第四历史交易的交易哈希值。这里的第四历史交易可以为该第一节点在目标区块之前所获取的待上链的历史区块中的历史交易。这些历史区块可以暂存在该交易缓存中,以便于后续可以在确定这些历史区块均属于最长链时,将这些历史区块写入图10所示的区块链数据库所对应的目标区块链。
进一步的,如图10所示,第一节点可以在交易缓存中查找到存在与待处理交易(例如,交易11)的交易哈希值相匹配的第四历史交易的交易哈希值时,确定待处理交易(例如,交易11)已经存在与图10所示的交易缓存中,进而可以执行图10所示的步骤S907,以拒绝接收该目标区块。反之,第一节点可以在交易缓存中未查找到与待处理交易(例如,交易11)的交易哈希值相匹配的第四历史交易的交易哈希值时,继续基于第四交易验重策略执行图10所示的步骤S906,以判断该待处理交易(例如,交易11)是否已经存在于区块链数据库中。应当理解,在本申请实施例中,该第一节点可以在区块链数据库中查找是否存在与待处理交易(例如,交易11)的交易哈希值相匹配的第五历史交易的交易哈希值。这里的第五历史交易可以为已上链的历史区块中的历史交易。
进一步的,如图5所示,该第一节点可以在区块链数据库中查找到存在与待处理交易(例如,交易11)的交易哈希值相匹配的第五历史交易的交易哈希值时,确定该待处理交易(例如,交易11)已经存在与区块链数据库中,进而可以跳转执行图10所示的步骤S907。反之,该第一节点可以在区块链数据库中未查找到与待处理交易(例如,交易11)的交易哈希值相匹配的第五历史交易的交易哈希值时,确定该待处理交易(例如,交易11)不在区块链数据库中,进而可以继续执行图10所示的步骤S908,以从该目标区块(例如,图10所示的区块X)中获取该待处理交易的下一交易(例如,图10所示的交易12),以重复执行图10所示的步骤S901-步骤S908,直到第一节点获取到该目标区块中具有最大打包顺序的交易1n,且通过步骤S901-步骤S908对交易1n进行交易验重时,可以执行图10所示的步骤S909,以确定该目标区块中的每个交易均为非重复交易。
进一步的,第一节点可以在执行步骤S910时,通过交易验重器获取目标区块中的每个交易的交易哈希值,进而可以执行图10所示的步骤S911,即该第一节点可以基于每个交易的交易哈希值更新交易验重器中的位数组。
其中,应当理解,此时,该第一节点可以确定待处理交易(例如,交易11)已经存在与交易缓存中时,确定该第一节点的交易缓存中已经有该目标区块。比如,第一节点可以在宕机或者网络延迟等情况(即第一节点未在响应时长内向第二节点反馈区块接收消息的情况)下,第二节点会存在重复发送目标区块的现象。所以,当该第一节点接收到第二节点所重复发来的目标区块(例如,图10所示的区块X)时,为避免节点内存的存储空间的浪费,可以拒绝接收该目标区块。
由此可见,本申请实施例通过在该节点内存中使用交易验重器进行交易验重,可以快速判断出当前获取到的目标区块中的交易是否为重复交易,进而可以在该目标区块中的所有交易均为非重复交易的情况下,接收目标区块,以便于后续可以继续执行目标区块中的每个交易,进而可以将每个交易的交易执行结果暂存至该第一节点的交易缓存。即本申请实施例可以直接通过交易验重器中的第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,快速判断该待处理交易是否存在于该第一节点的节点内存中所部署的交易验重器中,进而可以以提升交易验重的效率。可选的,本申请实施例还可以在通过交易验重器初步确定出当前获取到的交易(即上述待处理交易)疑似重复交易的情况下,将对待处理交易进行交易验重的交易验重策略由交易验重器的第三交易验重策略切换为与区块链网络相关联的第四交易验重策略,进而可以通过第四交易验重策略对疑似重复交易的待处理交易进行第二交易验重,以得到第二交易验重结果。应当理解,这里的第二交易验重是指可以进一步在与该区块链网络相关联的交易缓存以及区块链数据库中查找是否存在与该疑似重复交易的待处理交易相匹配的历史交易,如果存在,则确定该疑似重复交易的待处理交易确实为重复交易,进而可以拒绝接收该目标区块,以降低节点内存的存储开销。反之,如果不存在,则可以确定该疑似重复交易的待处理交易为非重复交易,进而可以提升交易验重的可靠性。
进一步的,请参见图11,图11是本申请提供的一种交易验重装置的结构示意图。该交易验重装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,交易验重装置1为一个应用软件;该交易验重装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,交易验重装置1可应用于上述第一节点,该第一节点可以为上述共识网络中任意一个区块链节点,例如,交易验重装置1可应用于上述图1所对应实施例中的节点10c。如图11所示,交易验重装置1可以包括:交易获取模块100、第一验重模块200、映射值确定模块300和第一结果确定模块400;进一步的,交易验重装置1还可以包括:第一关系确定模块500、第一目标确定模块600、第一目标保存模块700、第二关系确定模块800、第二验重模块900、交易拒绝模块101、第二目标确定模块102、目标映射值确定模块103、元素更新模块104、交易标识获取模块105、交易标识比较模块106、标识不同确定模块107、区块验重结果确定模块108、交易缓存查找模块109、标识相同确定模块110和哈希值获取模块111;
交易获取模块100,用于获取待上链至区块链网络的待处理交易;
可选的,其中,在交易获取模块100获取待上链至区块链网络的待处理交易时,交易获取模块500,还用于确定待处理交易的交易来源属性;交易来源属性用于指示交易验重器确定对待处理交易进行交易验重时的交易验重策略。
第一验重模块200,用于在通过交易验重器对待处理交易进行第一交易验重时,获取交易验重器的位数组和K个哈希函数,将获取到的位数组作为待处理交易对应的待查询位数组;待查询位数组的M个数组元素中包含第一数组元素;K为小于M的正整数;M为待查询位数组的数组长度;
其中,若交易来源属性包含第一来源属性,则交易验重策略包含与第一节点的交易池相关联的第一交易验重策略;第一来源属性用于表征待处理交易为交易添加请求中的交易;交易添加请求是由与第一节点相关联的区块链客户端发送的;
第一验重模块200包括:第一交易验重单元2001,第一元素确定单元2002,查询数组确定单元2003;
第一交易验重单元2001,用于在交易验重器通过第一交易验重策略对待处理交易进行第一交易验重时,从交易验重器中获取数组长度为M的位数组,并获取与数组长度为M的位数组相关联的K个哈希函数;在数组长度为M的位数组中,交易验重器的验重集合中的验重元素所映射的K个关键标识位置上的数组元素均为第二数组元素;一个关键标识位置为将验重元素通过一个哈希函数进行哈希位置映射后所得到的标识位置;
第一元素确定单元2002,用于在数组长度为M的位数组中,将M个数组元素中除第二数组元素之外的数组元素作为第一数组元素;第一数组元素对应的标识位置不同于第二数组元素对应的标识位置,且第一数组元素的元素数量与第二数组元素的元素数量之和为M;
查询数组确定单元2003,用于将由第一数组元素和第二数组元素所构成的位数组作为待处理交易对应的待查询位数组。
其中,第一交易验重单元2001,第一元素确定单元2002,查询数组确定单元2003的具体实现方式,可以参见上述图3所对应实施例对步骤S102的描述,这里将不再继续进行赘述。
映射值确定模块300,用于基于K个哈希函数将待处理交易映射至待查询位数组的K个目标标识位置,在M个数组元素中,将K个目标标识位置上的数组元素作为K个目标标识位置上的交易映射值;
第一结果确定模块400,用于确定第一数组元素与K个目标标识位置上的交易映射值之间的关联关系,基于关联关系得到对待处理交易进行第一交易验重后的第一交易验重结果。
可选的,其中,关联关系包括第一关联关系,第一关联关系用于表征K个目标标识位置上的交易映射值中存在与第一数组元素相同的交易映射值;
第一关系确定模块500,用于若第一交易验重结果指示关联关系为第一关联关系,则基于与第一数组元素相同的交易映射值,确定待处理交易不属于交易验重器的验重集合中的验重元素,且控制交易验重器输出待处理交易的交易属性为非重复交易属性;
第一目标确定模块600,用于将具有非重复交易属性的待处理交易确定为待保存至第一节点的交易池的第一目标交易。
可选的,其中,第一目标保存模块700,用于在将第一目标交易保存至第一节点的交易池时,将与第一数组元素相同的交易映射值作为第一目标交易映射值,且在待查询位数组中,将第一目标交易映射值所对应的目标标识位置上的数组元素由第一数组元素更新为第二数组元素。
可选的,其中,关联关系包括第二关联关系,第二关联关系用于表征K个目标标识位置上的交易映射值中不存在与第一数组元素相同的交易映射值;
第二关系确定模块800,用于若第一交易验重结果指示关联关系为第二关联关系,则获取与第一节点的交易池相关联的第二交易验重策略;
第二验重模块900,用于通过第二交易验重策略对待处理交易进行第二交易验重,得到第二交易验重结果。
其中,第二验重模块900包括:交易池查找单元901、第一重复确定单元902、第二结果确定单元903;可选的,第二验重模块900还包括:
交易池查找单元901,用于通过第二交易验重策略在第一节点的交易池中查找与待处理交易相匹配的第一历史交易;
第一重复确定单元902,用于若在第一节点的交易池中查找到与待处理交易相匹配的第一历史交易,则确定待处理交易的交易属性为重复交易属性,将具备重复交易属性的待处理交易作为与第二交易验重策略相关联的第一类重复交易;
第二结果确定单元903,用于将第一类重复交易作为对待处理交易进行第二交易验重后的第二交易验重结果。
可选的,其中,第一过渡结果确定单元904,用于若在第一节点的交易池中未查找到与待处理交易相匹配的第一历史交易,则将待处理交易的交易属性确定为第一非重复交易属性,将具备第一非重复交易属性的待处理交易作为与第二交易验重策略相关联的第一过渡验重结果;
交易缓存查找单元905,用于基于第一过渡验重结果将具备第一非重复交易属性的待处理交易作为第一过渡交易,在第一节点的交易缓存中查找与第一过渡交易相匹配的第二历史交易;
第二重复确定单元906,用于若在第一节点的交易缓存中查找到与第一过渡交易相匹配的第二历史交易,则确定第一过渡交易的交易属性为重复交易属性,将具备重复交易属性的第一过渡交易作为与第二交易验重策略相关联的第二类重复交易;
第二结果确定单元907,用于将确定的第二类重复交易作为对待处理交易进行第二交易验重后的第二交易验重结果。
可选的,其中,第二过渡结果确定单元908,用于若在第一节点的交易缓存中未查找到与第一过渡交易相匹配的第二历史交易,则确定第一过渡交易的交易属性为第二非重复交易属性,将具备第二非重复交易属性的第一过渡交易作为与第二交易验重策略相关联的第二过渡验重结果;
数据库查找单元909,用于基于第二过渡验重结果将具备第二非重复交易属性的第一过渡交易作为第二过渡交易,在与第一节点相关联的区块链数据库中查找与第二过渡交易相匹配的第三历史交易;
第三重复确定单元910,用于若在区块链数据库中查找到与第二过渡交易相匹配的第三历史交易,则确定第二过渡交易的交易属性为重复交易属性,将具备重复交易属性的第二过渡交易作为与第二交易验重策略相关联的第三类重复交易;
第二结果确定单元903,还用于将确定的第三类重复交易作为对待处理交易进行第二交易验重后的第二交易验重结果。
其中,交易池查找单元901、第一重复确定单元902、第二结果确定单元903、第一过渡结果确定单元904、交易缓存查找单元905、第二重复确定单元906、第二结果确定单元907、第二过渡结果确定单元908、数据库查找单元909、第三重复确定单元910的具体实现方式,可以参见上述图6所对应实施例中对第二交易验重策略的描述,这里将不再继续进行赘述。
可选的,交易拒绝模块101,用于若第二交易验重结果指示待处理交易的交易属性为重复交易属性,则将待处理交易确定为重复交易,且拒绝将重复交易添加至第一节点的交易池。
可选的,第二目标确定模块102,用于若第二交易验重结果指示待处理交易的交易属性为非重复交易属性,则基于具有非重复交易属性的待处理交易,确定用于添加至第一节点的交易池的第二目标交易,且在第一节点的交易池中保存第二目标交易;
目标映射值确定模块103,用于在将第二目标交易插入至交易验重器的验重集合时,将K个目标标识位置上的交易映射值作为第二目标交易映射值;
元素更新模块104,用于在待查询位数组中,控制交易验重器将第二目标交易映射值所对应的目标标识位置上的数组元素更新为第二数组元素,将更新后的待查询位数组作为目标位数组。
可选的,其中,若交易来源属性包含第二来源属性,则交易验重策略包含与第一节点的交易缓存相关联的第三交易验重策略和第四交易验重策略;第二来源属性用于表征待处理交易为区块链网络中的第二节点所广播的目标区块中的交易;目标区块中的每个交易对应一个交易标识,且一个交易标识用于表征一个交易在目标区块中的打包顺序;
交易标识获取模块105,用于通过第三交易验重策略获取目标区块中的关键交易的交易标识;关键交易为目标区块所包含的N个交易中具有最大打包顺序的交易;N为正整数;
交易标识比较模块106,用于将待处理交易的交易标识与关键交易的交易标识进行比较,得到初始比较结果;
标识不同确定模块107,用于若初始比较结果指示待处理交易的交易标识与目标区块中的关键交易的交易标识不相同,则确定存在待处理交易的下一交易;
区块验重结果确定模块108,用于通过交易验重器对目标区块中的待处理交易进行块内交易验重,得到与待处理交易相关联的区块交易验重结果;
交易缓存查找模块109,用于若区块交易验重结果指示交易验重器输出的目标区块中的待处理交易的交易属性为重复交易属性,则通过第四交易验重策略在第一节点的交易缓存查找与待处理交易相匹配的交易,且在交易缓存中查找到与待处理交易相匹配的交易时,拒绝接收第二节点广播的目标区块。
可选的,标识相同确定模块110,用于若初始比较结果指示待处理交易的交易标识与目标区块中的关键交易的交易标识相同,且确定目标区块中不存在待处理交易的下一交易,则确定目标区块中的每个交易均为非重复交易;
哈希值获取模块111,用于通过交易验重器获取目标区块中的每个交易的交易哈希值,基于每个交易的交易哈希值更新交易验重器中的位数组;每个交易的交易哈希值是由交易验重器中的K个哈希函数所确定的。
其中,交易获取模块100、第一验重模块200、映射值确定模块300和第一结果确定模块400的具体实现方式,可以参见上述图3所对应实施例中对步骤S101-步骤S104的描述,这里将不再继续进行赘述。可选的,第一关系确定模块500、第一目标确定模块600、第一目标保存模块700、第二关系确定模块800、第二验重模块900、交易拒绝模块101、第二目标确定模块102、目标映射值确定模块103、元素更新模块104的具体实现方式,可以参见上述图6所对应实施例中对步骤S201-步骤S216的描述,这里将不再继续进行赘述。可选的,交易标识获取模块105、交易标识比较模块106、标识不同确定模块107、区块验重结果确定模块108、交易缓存查找模块109、标识相同确定模块110和哈希值获取模块111的具体实现方式,可以参见上述图9或者图10所对应实施例对第三交易验重策略和第四交易验重策略的描述,这里将不再继续进行赘述。可以理解的是,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图12,图12是本申请实施例提供的一种计算机设备的结构示意图。如图12所示,计算机设备1000可以应用于上述图1对应实施例中的区块链节点,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
该计算机设备1000中的网络接口1004还可以提供网络通讯功能,且可选用户接口1003还可以包括显示屏(Display)、键盘(Keyboard)。在图12所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文图3或图6或者图9所对应实施例中对交易验重方法的描述,也可执行前文图11所对应实施例中对交易验重装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的交易验重装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3、图6或图9所对应实施例中对交易验重方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种交易验重方法,其特征在于,所述方法由区块链网络中的第一节点执行,所述第一节点中部署有交易验重器,包括:
获取待上链至所述区块链网络的待处理交易;
在通过所述交易验重器对所述待处理交易进行第一交易验重时,获取所述交易验重器的位数组和K个哈希函数,将获取到的位数组作为所述待处理交易对应的待查询位数组;所述待查询位数组的M个数组元素中包含第一数组元素;所述K为小于所述M的正整数;所述M为所述待查询位数组的数组长度;
基于所述K个哈希函数将所述待处理交易映射至所述待查询位数组的K个目标标识位置,在所述M个数组元素中,将所述K个目标标识位置上的数组元素作为所述K个目标标识位置上的交易映射值;
确定所述第一数组元素与所述K个目标标识位置上的交易映射值之间的关联关系,基于所述关联关系得到对所述待处理交易进行第一交易验重后的第一交易验重结果。
2.根据权利要求1所述的方法,其特征在于,在所述获取待上链至所述区块链网络的待处理交易时,所述方法还包括:
确定所述待处理交易的交易来源属性;所述交易来源属性用于指示所述交易验重器确定对所述待处理交易进行交易验重时的交易验重策略。
3.根据权利要求2所述的方法,其特征在于,若所述交易来源属性包含第一来源属性,则所述交易验重策略包含与所述第一节点的交易池相关联的第一交易验重策略;所述第一来源属性用于表征所述待处理交易为交易添加请求中的交易;所述交易添加请求是由与所述第一节点相关联的区块链客户端发送的;
所述在通过所述交易验重器对所述待处理交易进行第一交易验重时,获取所述交易验重器的位数组和K个哈希函数,将获取到的位数组作为所述待处理交易对应的待查询位数组,包括:
在所述交易验重器通过所述第一交易验重策略对所述待处理交易进行第一交易验重时,从所述交易验重器中获取数组长度为M的位数组,并获取与所述数组长度为M的位数组相关联的K个哈希函数;在所述数组长度为M的位数组中,所述交易验重器的验重集合中的验重元素所映射的K个关键标识位置上的数组元素均为第二数组元素;一个关键标识位置为将所述验重元素通过一个哈希函数进行哈希位置映射后所得到的标识位置;
在所述数组长度为M的位数组中,将M个数组元素中除所述第二数组元素之外的数组元素作为第一数组元素;所述第一数组元素对应的标识位置不同于所述第二数组元素对应的标识位置,且所述第一数组元素的元素数量与所述第二数组元素的元素数量之和为所述M;
将由所述第一数组元素和所述第二数组元素所构成的位数组作为所述待处理交易对应的待查询位数组。
4.根据权利要求1所述的方法,其特征在于,所述关联关系包括第一关联关系,所述第一关联关系用于表征所述K个目标标识位置上的交易映射值中存在与所述第一数组元素相同的交易映射值;
所述方法还包括:
若所述第一交易验重结果指示所述关联关系为所述第一关联关系,则基于与所述第一数组元素相同的交易映射值,确定所述待处理交易不属于所述交易验重器的验重集合中的验重元素,且控制所述交易验重器输出所述待处理交易的交易属性为非重复交易属性;
将具有所述非重复交易属性的待处理交易确定为待保存至所述第一节点的交易池的第一目标交易。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在将所述第一目标交易保存至所述第一节点的交易池时,将与所述第一数组元素相同的交易映射值作为第一目标交易映射值,且在所述待查询位数组中,将所述第一目标交易映射值所对应的目标标识位置上的数组元素由所述第一数组元素更新为第二数组元素。
6.根据权利要求1所述的方法,其特征在于,所述关联关系包括第二关联关系,所述第二关联关系用于表征所述K个目标标识位置上的交易映射值中不存在与所述第一数组元素相同的交易映射值;
所述方法还包括:
若所述第一交易验重结果指示所述关联关系为所述第二关联关系,则获取与所述第一节点的交易池相关联的第二交易验重策略;
通过所述第二交易验重策略对所述待处理交易进行第二交易验重,得到第二交易验重结果。
7.根据权利要求6所述的方法,其特征在于,所述通过所述第二交易验重策略对所述待处理交易进行第二交易验重,得到第二交易验重结果,包括:
通过所述第二交易验重策略在所述第一节点的交易池中查找与所述待处理交易相匹配的第一历史交易;
若在所述第一节点的交易池中查找到与所述待处理交易相匹配的第一历史交易,则确定所述待处理交易的交易属性为重复交易属性,将具备所述重复交易属性的待处理交易作为与所述第二交易验重策略相关联的第一类重复交易;
将所述第一类重复交易作为对所述待处理交易进行第二交易验重后的第二交易验重结果。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若在所述第一节点的交易池中未查找到与所述待处理交易相匹配的第一历史交易,则将所述待处理交易的交易属性确定为第一非重复交易属性,将具备所述第一非重复交易属性的待处理交易作为与所述第二交易验重策略相关联的第一过渡验重结果;
基于所述第一过渡验重结果将具备所述第一非重复交易属性的待处理交易作为第一过渡交易,在所述第一节点的交易缓存中查找与所述第一过渡交易相匹配的第二历史交易;
若在所述第一节点的交易缓存中查找到与所述第一过渡交易相匹配的第二历史交易,则确定所述第一过渡交易的交易属性为重复交易属性,将具备所述重复交易属性的第一过渡交易作为与所述第二交易验重策略相关联的第二类重复交易;
将确定的所述第二类重复交易作为对所述待处理交易进行第二交易验重后的第二交易验重结果。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若在所述第一节点的交易缓存中未查找到与所述第一过渡交易相匹配的第二历史交易,则确定所述第一过渡交易的交易属性为第二非重复交易属性,将具备所述第二非重复交易属性的第一过渡交易作为与所述第二交易验重策略相关联的第二过渡验重结果;
基于所述第二过渡验重结果将具备所述第二非重复交易属性的第一过渡交易作为第二过渡交易,在与所述第一节点相关联的区块链数据库中查找与所述第二过渡交易相匹配的第三历史交易;
若在所述区块链数据库中查找到与所述第二过渡交易相匹配的第三历史交易,则确定所述第二过渡交易的交易属性为重复交易属性,将具备所述重复交易属性的第二过渡交易作为与所述第二交易验重策略相关联的第三类重复交易;
将确定的所述第三类重复交易作为对所述待处理交易进行第二交易验重后的第二交易验重结果。
10.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述第二交易验重结果指示所述待处理交易的交易属性为重复交易属性,则将所述待处理交易确定为重复交易,且拒绝将所述重复交易添加至所述第一节点的交易池。
11.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述第二交易验重结果指示所述待处理交易的交易属性为非重复交易属性,则基于具有所述非重复交易属性的待处理交易,确定用于添加至所述第一节点的交易池的第二目标交易,且在所述第一节点的交易池中保存所述第二目标交易;
在将所述第二目标交易插入至所述交易验重器的验重集合时,将所述K个目标标识位置上的交易映射值作为第二目标交易映射值;
在所述待查询位数组中,控制所述交易验重器将所述第二目标交易映射值所对应的目标标识位置上的数组元素更新为第二数组元素,将更新后的待查询位数组作为目标位数组。
12.根据权利要求2所述的方法,其特征在于,若所述交易来源属性包含第二来源属性,则所述交易验重策略包含与所述第一节点的交易缓存相关联的第三交易验重策略和第四交易验重策略;所述第二来源属性用于表征所述待处理交易为所述区块链网络中的第二节点所广播的目标区块中的交易;所述目标区块中的每个交易对应一个交易标识,且一个交易标识用于表征一个交易在所述目标区块中的打包顺序;
所述方法还包括:
通过所述第三交易验重策略获取所述目标区块中的关键交易的交易标识;所述关键交易为所述目标区块所包含的N个交易中具有最大打包顺序的交易;所述N为正整数;
将所述待处理交易的交易标识与所述关键交易的交易标识进行比较,得到初始比较结果;
若所述初始比较结果指示所述待处理交易的交易标识与所述目标区块中的关键交易的交易标识不相同,则确定存在所述待处理交易的下一交易;
通过所述交易验重器对所述目标区块中的所述待处理交易进行块内交易验重,得到与所述待处理交易相关联的区块交易验重结果;
若所述区块交易验重结果指示所述交易验重器输出的所述目标区块中的所述待处理交易的交易属性为重复交易属性,则通过所述第四交易验重策略在所述第一节点的交易缓存查找与所述待处理交易相匹配的交易,且在所述交易缓存中查找到与所述待处理交易相匹配的交易时,拒绝接收所述第二节点广播的所述目标区块。
13.一种交易验重装置,其特征在于,包括:
交易获取模块,用于获取待上链至区块链网络的待处理交易;
第一验重模块,用于在通过交易验重器对所述待处理交易进行第一交易验重时,获取所述交易验重器的位数组和K个哈希函数,将获取到的位数组作为所述待处理交易对应的待查询位数组;所述待查询位数组的M个数组元素中包含第一数组元素;所述K为小于所述M的正整数;所述M为所述待查询位数组的数组长度;
映射值确定模块,用于基于所述K个哈希函数将所述待处理交易映射至所述待查询位数组的K个目标标识位置,在所述M个数组元素中,将所述K个目标标识位置上的数组元素作为所述K个目标标识位置上的交易映射值;
第一结果确定模块,用于确定所述第一数组元素与所述K个目标标识位置上的交易映射值之间的关联关系,基于所述关联关系得到对所述待处理交易进行第一交易验重后的第一交易验重结果。
14.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-12任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110526205.3A CN112950211B (zh) | 2021-05-14 | 2021-05-14 | 一种交易验重方法、装置、设备以及介质 |
EP22806537.1A EP4216130A4 (en) | 2021-05-14 | 2022-04-29 | METHOD AND DEVICE FOR VERIFYING TRANSACTION REPEATS AND DEVICE AND MEDIUM |
PCT/CN2022/090110 WO2022237569A1 (zh) | 2021-05-14 | 2022-04-29 | 一种交易验重方法、装置、设备以及介质 |
US18/073,355 US20230102617A1 (en) | 2021-05-14 | 2022-12-01 | Repeat transaction verification method, apparatus, and device, and medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110526205.3A CN112950211B (zh) | 2021-05-14 | 2021-05-14 | 一种交易验重方法、装置、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112950211A true CN112950211A (zh) | 2021-06-11 |
CN112950211B CN112950211B (zh) | 2021-07-30 |
Family
ID=76233854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110526205.3A Active CN112950211B (zh) | 2021-05-14 | 2021-05-14 | 一种交易验重方法、装置、设备以及介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230102617A1 (zh) |
EP (1) | EP4216130A4 (zh) |
CN (1) | CN112950211B (zh) |
WO (1) | WO2022237569A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010115A (zh) * | 2021-03-18 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 区块链节点中的数据处理方法及相关设备 |
WO2022237569A1 (zh) * | 2021-05-14 | 2022-11-17 | 腾讯科技(深圳)有限公司 | 一种交易验重方法、装置、设备以及介质 |
CN116599973A (zh) * | 2023-07-11 | 2023-08-15 | 天津卓朗昆仑云软件技术有限公司 | 基于bt服务加速组件的数据传输方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357862A (zh) * | 2017-06-30 | 2017-11-17 | 中国联合网络通信集团有限公司 | 话单排重方法及装置 |
CN108768966A (zh) * | 2018-05-14 | 2018-11-06 | 北京邮电大学 | 注册节点和成员节点以及节点注册、离开、身份认证方法 |
CN108874803A (zh) * | 2017-05-09 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
JP2019145925A (ja) * | 2018-02-16 | 2019-08-29 | 株式会社bitFlyer | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード |
US20190361842A1 (en) * | 2018-05-24 | 2019-11-28 | Luther Systems | System and method for efficient and secure private similarity detection for large private document repositories |
CN110704438A (zh) * | 2019-09-26 | 2020-01-17 | 深圳前海微众银行股份有限公司 | 一种区块链中布隆过滤器的生成方法及装置 |
CN110880147A (zh) * | 2019-11-22 | 2020-03-13 | 腾讯科技(深圳)有限公司 | 一种交易处理方法、相关设备及计算机存储介质 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015077378A1 (en) * | 2013-11-19 | 2015-05-28 | Sunrise Tech Group, Llc | Block mining methods and apparatus |
KR101626276B1 (ko) * | 2014-06-17 | 2016-06-01 | 어준선 | 디지털 화폐와 연동되어 디지털 컨텐츠를 생성, 제공, 재생하기 위한 방법, 이를 이용한 단말 및 컴퓨터 판독 가능한 기록 매체 |
US9853977B1 (en) * | 2015-01-26 | 2017-12-26 | Winklevoss Ip, Llc | System, method, and program product for processing secure transactions within a cloud computing system |
US9875510B1 (en) * | 2015-02-03 | 2018-01-23 | Lance Kasper | Consensus system for tracking peer-to-peer digital records |
US11704733B2 (en) * | 2015-05-01 | 2023-07-18 | Tzero Ip, Llc | Crypto multiple security asset creation and redemption platform |
US9735958B2 (en) * | 2015-05-19 | 2017-08-15 | Coinbase, Inc. | Key ceremony of a security system forming part of a host computer for cryptographic transactions |
US20170330250A1 (en) * | 2015-06-02 | 2017-11-16 | Elwha, Llc | Machine/Article/Composition/Process State(s) for Tracking Philanthropic And/or Other Efforts |
US20170011460A1 (en) * | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
US20170085545A1 (en) * | 2015-07-14 | 2017-03-23 | Fmr Llc | Smart Rules and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems |
US20170091756A1 (en) * | 2015-07-14 | 2017-03-30 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
US10445754B2 (en) * | 2015-09-14 | 2019-10-15 | The Western Union Company | Multi-network transaction analysis |
SG11201809963XA (en) * | 2016-05-11 | 2018-12-28 | Nasdaq Inc | Application framework using blockchain-based asset ownership |
KR101799343B1 (ko) * | 2016-05-16 | 2017-11-22 | 주식회사 코인플러그 | 인증 정보의 사용 방법, 파기 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버 |
US10198325B2 (en) * | 2016-05-24 | 2019-02-05 | Mastercard International Incorporated | Method and system for desynchronization recovery for permissioned blockchains using bloom filters |
US20170346639A1 (en) * | 2016-05-24 | 2017-11-30 | Business Information Exchange System Corp. | Public Key Infrastructure based on the Public Certificates Ledger |
US10417188B2 (en) * | 2016-05-27 | 2019-09-17 | Mastercard International Incorporated | Method and system for transferring trust across block chain segments |
US10339014B2 (en) * | 2016-09-28 | 2019-07-02 | Mcafee, Llc | Query optimized distributed ledger system |
US10361853B2 (en) * | 2016-10-12 | 2019-07-23 | Bank Of America Corporation | Automated data authentication and service authorization via cryptographic keys in a private blockchain |
US11182851B2 (en) * | 2016-10-20 | 2021-11-23 | International Business Machines Corporation | Inter-ledger messaging in a blockchain |
US20180114205A1 (en) * | 2016-10-21 | 2018-04-26 | Bank Of America Corporation | Distributed ledger system for providing aggregate tracking and threshold triggering |
US11004130B2 (en) * | 2016-10-26 | 2021-05-11 | International Business Machines Corporation | Computer implemented method, an apparatus and a non transitory computer readable storage medium for verifying reviews on a blockchain |
CA3055829A1 (en) * | 2017-03-08 | 2018-09-13 | Ip Oversight Corporation | System and method for creating commodity asset-secured tokens from reserves |
US9882918B1 (en) * | 2017-05-15 | 2018-01-30 | Forcepoint, LLC | User behavior profile in a blockchain |
EP4350560A3 (en) * | 2017-06-07 | 2024-06-19 | nChain Licensing AG | Computer-implemented system and method for managing transactions over a blockchain network |
CN107247773B (zh) * | 2017-06-07 | 2018-05-15 | 北京邮电大学 | 一种基于区块链的在分布式数据库中进行交易查询的方法 |
GB201711879D0 (en) * | 2017-07-24 | 2017-09-06 | Nchain Holdings Ltd | Computer-implemented system and method |
US10565192B2 (en) * | 2017-08-01 | 2020-02-18 | International Business Machines Corporation | Optimizing queries and other retrieve operations in a blockchain |
EP3688617A4 (en) * | 2018-08-31 | 2021-06-02 | MX Technologies, Inc. | AUTOMATED AGGREGATION AND ACCOUNTING OF CORPORATE TRANSACTION DATA |
US11250507B2 (en) * | 2019-02-20 | 2022-02-15 | Apifiny Group Inc. | Trusted tokenized transactions in a blockchain system |
CN111640012A (zh) * | 2019-03-01 | 2020-09-08 | 中国银联股份有限公司 | 一种区块链交易追溯的方法及装置 |
KR102322729B1 (ko) * | 2019-03-04 | 2021-11-05 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | 블록체인 월드 스테이트 머클 패트리샤 트라이 서브트리의 업데이트 |
CA3057738A1 (en) * | 2019-03-04 | 2019-05-31 | Alibaba Group Holding Limited | Constructing blockchain world state merkle patricia trie subtree |
JP6934679B2 (ja) * | 2019-03-14 | 2021-09-15 | 公立大学法人広島市立大学 | ブロックチェーン取引作成プロトコル、及びブロックチェーンアドレス作成方法 |
US20200320518A1 (en) * | 2019-04-02 | 2020-10-08 | Parachute Wallet LLC | Architecture for facilitating data transfer for blockchain-based units in packet-based systems |
CN110503558B (zh) * | 2019-08-29 | 2023-10-03 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的处理方法及装置 |
AU2019379711B2 (en) * | 2019-12-05 | 2022-04-07 | Alipay (Hangzhou) Information Technology Co., Ltd. | Performing map iterations in a blockchain-based system |
EP3776250B1 (en) * | 2019-12-05 | 2022-08-24 | Alipay (Hangzhou) Information Technology Co., Ltd. | Performing map iterations in blockchain-based system |
CN111275404B (zh) * | 2020-01-21 | 2023-09-19 | 百度在线网络技术(北京)有限公司 | 基于区块链的评审方法、装置、设备和介质 |
CN111476571B (zh) * | 2020-04-02 | 2023-09-15 | 百度国际科技(深圳)有限公司 | 基于区块链的资产处理方法、装置、设备和存储介质 |
JP2021077422A (ja) * | 2021-02-17 | 2021-05-20 | 忠久 中谷 | デジタルアセットトークン移転取引のためのピアツーピア分散型台帳統合システム及びピアツーピア分散型台帳記録方法 |
CN113190622B (zh) * | 2021-03-16 | 2022-08-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112950211B (zh) * | 2021-05-14 | 2021-07-30 | 腾讯科技(深圳)有限公司 | 一种交易验重方法、装置、设备以及介质 |
-
2021
- 2021-05-14 CN CN202110526205.3A patent/CN112950211B/zh active Active
-
2022
- 2022-04-29 WO PCT/CN2022/090110 patent/WO2022237569A1/zh unknown
- 2022-04-29 EP EP22806537.1A patent/EP4216130A4/en active Pending
- 2022-12-01 US US18/073,355 patent/US20230102617A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874803A (zh) * | 2017-05-09 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
CN107357862A (zh) * | 2017-06-30 | 2017-11-17 | 中国联合网络通信集团有限公司 | 话单排重方法及装置 |
JP2019145925A (ja) * | 2018-02-16 | 2019-08-29 | 株式会社bitFlyer | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード |
CN108768966A (zh) * | 2018-05-14 | 2018-11-06 | 北京邮电大学 | 注册节点和成员节点以及节点注册、离开、身份认证方法 |
US20190361842A1 (en) * | 2018-05-24 | 2019-11-28 | Luther Systems | System and method for efficient and secure private similarity detection for large private document repositories |
CN110704438A (zh) * | 2019-09-26 | 2020-01-17 | 深圳前海微众银行股份有限公司 | 一种区块链中布隆过滤器的生成方法及装置 |
CN110880147A (zh) * | 2019-11-22 | 2020-03-13 | 腾讯科技(深圳)有限公司 | 一种交易处理方法、相关设备及计算机存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010115A (zh) * | 2021-03-18 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 区块链节点中的数据处理方法及相关设备 |
WO2022237569A1 (zh) * | 2021-05-14 | 2022-11-17 | 腾讯科技(深圳)有限公司 | 一种交易验重方法、装置、设备以及介质 |
CN116599973A (zh) * | 2023-07-11 | 2023-08-15 | 天津卓朗昆仑云软件技术有限公司 | 基于bt服务加速组件的数据传输方法和装置 |
CN116599973B (zh) * | 2023-07-11 | 2023-09-26 | 天津卓朗昆仑云软件技术有限公司 | 基于bt服务加速组件的数据传输方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4216130A1 (en) | 2023-07-26 |
CN112950211B (zh) | 2021-07-30 |
EP4216130A4 (en) | 2024-04-24 |
WO2022237569A1 (zh) | 2022-11-17 |
US20230102617A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112950211B (zh) | 一种交易验重方法、装置、设备以及介质 | |
CN113094396B (zh) | 基于节点内存的数据处理方法、装置、设备以及介质 | |
CN109472572B (zh) | 基于区块链主链加并行多子链的合约系统 | |
CN111523890B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN111885050B (zh) | 基于区块链网络的数据存储方法、装置、相关设备及介质 | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约系统 | |
CN113568981B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN111597567B (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN113409047B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN111885133A (zh) | 基于区块链的数据处理方法、装置及计算机存储介质 | |
CN113422733B (zh) | 区块链的业务处理方法、装置、计算机设备及存储介质 | |
CN111526165B (zh) | 联盟链中的共识方法和系统 | |
CN115514608A (zh) | 一种区块共识方法、装置、设备及存储介质 | |
CN112202564A (zh) | 交易传递方法、装置、电子设备及可读存储介质 | |
CN111597537A (zh) | 基于区块链网络的证书签发方法、相关设备及介质 | |
CN118368341A (zh) | 一种基于分层链网络的数据处理方法、装置、设备及介质 | |
CN115001707B (zh) | 基于区块链的设备认证方法和相关设备 | |
CN116542668A (zh) | 一种基于区块链的数据处理方法、设备及可读存储介质 | |
CN116070191A (zh) | 信息处理方法及其装置、存储介质、程序产品 | |
CN113221164A (zh) | 基于区块链的数据核验方法及装置、电子设备 | |
CN115221532A (zh) | 资源账单数据的存储方法、系统、计算机设备和存储介质 | |
NL2032902B1 (en) | User data management method, device, terminal apparatus and medium | |
CN117036038B (zh) | 一种基于联盟链的交易处理方法、装置、设备及存储介质 | |
CN117040929B (zh) | 一种访问处理方法、装置、设备、介质及程序产品 | |
CN116760632B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40046834 Country of ref document: HK |