CN117255130A - 一种基于区块链的数据处理方法、装置、设备及介质 - Google Patents
一种基于区块链的数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117255130A CN117255130A CN202210653920.8A CN202210653920A CN117255130A CN 117255130 A CN117255130 A CN 117255130A CN 202210653920 A CN202210653920 A CN 202210653920A CN 117255130 A CN117255130 A CN 117255130A
- Authority
- CN
- China
- Prior art keywords
- transaction
- consensus
- block
- pool
- verified
- 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 abstract description 14
- 238000004806 packaging method and process Methods 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 71
- 238000012795 verification Methods 0.000 claims description 68
- 238000000034 method Methods 0.000 claims description 63
- 238000009826 distribution Methods 0.000 claims description 33
- 238000003860 storage Methods 0.000 claims description 33
- 238000004891 communication Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 23
- 238000012856 packing Methods 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 4
- 239000000872 buffer Substances 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000010926 purge Methods 0.000 description 2
- 208000032370 Secondary transmission Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010141 design making Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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/3247—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 involving digital 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
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种基于区块链的数据处理方法、装置、设备及介质,包括:从第一共识节点的第一交易池中获取待打包交易,确定待打包交易携带的交易标识码;第一交易池包括(N+1)个交易子缓存;(N+1)个交易子缓存中的每个交易子缓存均用于基于客户端生成的初始交易的初始标识码,存储初始交易;对交易标识码进行打包处理得到待验证区块,将待验证区块广播至区块链网络,以使区块链网络中的第二共识节点基于第二共识节点的第二交易池以及交易标识码,生成针对待验证区块的共识结果;接收第二共识节点返回的共识结果,若基于共识结果确定区块链节点达成共识,则从第一交易池中清除待打包交易。采用本申请实施例,可以提升共识性能。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备及介质。
背景技术
在传统区块链部署方式中,区块链网络往往为统一的点对点网络(即P2P网络),即节点对等。处于区块链网络中的共识节点(例如,节点A)在接收到客户端发送的交易(例如,交易X)时,会将该交易X存储至自身交易池,以等待写入区块链。此外,该节点A往往还会将该交易X广播至区块链网络中的其他共识节点(例如,节点B)。
可以理解的是,在节点A成为提案节点需要出块时,会从节点A的交易池中,将完整的交易X以及其他交易一并进行打包处理,以得到待写入区块链网络的待验证区块。由于节点A的交易池在短时间内会添加大量的交易,以至于存在着高并发的情况,这意味着交易池存在这强烈的锁竞争,从而影响了整体的共识性能。此外,节点A需要将完整的包含所有交易的待验证区块广播至其他共识节点,这将导致节点B在对待验证区块进行区块共识时,仍会再次无差别地获取到该待验证区块中的交易X,进而导致该交易X在整个区块链网络中的重复广播,从而造成了网络带宽的浪费,以至于在对待验证区块中的这些交易进行共识时,降低了整体的共识性能。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、装置、设备及介质,可以提升共识性能。
本申请实施例一方面提供一种基于区块链的数据处理方法,该方法由区块链网络中的第一共识节点执行,包括:
从第一共识节点的第一交易池中获取待打包交易,确定待打包交易携带的交易标识码;交易标识码是由用于生成待打包交易的客户端确定的;第一交易池包括(N+1)个交易子缓存;(N+1)个交易子缓存中的每个交易子缓存均用于基于客户端生成的初始交易的初始标识码,存储初始交易;(N+1)为大于1的正整数;初始交易包括待打包交易;
对交易标识码进行打包处理,得到待验证区块,将待验证区块广播至区块链网络,以使区块链网络中的第二共识节点基于第二共识节点的第二交易池以及交易标识码,生成针对待验证区块的共识结果;第二交易池包括与第一交易池相同的(N+1)个交易子缓存;
接收第二共识节点返回的共识结果,若基于共识结果确定区块链网络中的区块链节点达成共识,则从第一交易池中清除待打包交易。
本申请实施例一方面提供一种基于区块链的数据处理方法,该方法由区块链网络中的第二共识节点执行,包括:
获取区块链网络中的第一共识节点生成的待验证区块;待验证区块为第一共识节点在从第一共识节点的第一交易池中获取到待打包交易时,对待打包交易携带的交易标识码进行打包处理后所得到的;第一交易池包括(N+1)个交易子缓存;(N+1)个交易子缓存中的每个交易子缓存均用于基于客户端生成的初始交易的初始标识码,存储初始交易;(N+1)为大于1的正整数;初始交易包括待打包交易;
基于第二共识节点的第二交易池以及待验证区块中的交易标识码,对待验证区块进行共识,得到针对待验证区块的共识结果;第二交易池包括与第一交易池相同的(N+1)个交易子缓存;
将共识结果返回至第一共识节点,以使第一共识节点在基于共识结果确定区块链网络中的区块链节点达成共识时,从第一交易池中清除待打包交易。
本申请实施例一方面提供一种基于区块链的数据处理装置,包括:
待打包交易获取模块,用于从第一共识节点的第一交易池中获取待打包交易,确定待打包交易携带的交易标识码;交易标识码是由用于生成待打包交易的客户端确定的;第一交易池包括(N+1)个交易子缓存;(N+1)个交易子缓存中的每个交易子缓存均用于基于客户端生成的初始交易的初始标识码,存储初始交易;(N+1)为大于1的正整数;初始交易包括待打包交易;
区块广播模块,用于对交易标识码进行打包处理,得到待验证区块,将待验证区块广播至区块链网络,以使区块链网络中的第二共识节点基于第二共识节点的第二交易池以及交易标识码,生成针对待验证区块的共识结果;第二交易池包括与第一交易池相同的(N+1)个交易子缓存;
交易清除模块,用于接收第二共识节点返回的共识结果,若基于共识结果确定区块链网络中的区块链节点达成共识,则从第一交易池中清除待打包交易。
其中,第一交易池包括交易验证器以及交易分发器;
该装置还包括:
初始交易获取模块,用于通过第一共识节点的通信组件,获取客户端生成的携带初始标识码的初始交易;
参数校验模块,用于统计第一交易池的交易总数量,在交易总数量未达到交易存储数量阈值时,通过交易验证器对初始交易进行参数校验,得到验证结果;
交易类型确定模块,用于若验证结果指示验证成功,则将初始交易添加至交易分发器,以使交易分发器基于初始交易的交易类型字段,确定初始交易的交易类型;
初始交易存储模块,用于基于交易类型将初始交易存储至第一交易池。
其中,第一交易池包括第一类型缓存和第二类型缓存;第一类型缓存用于存储属于配置交易类型的配置交易;第二类型缓存用于存储属于普通交易类型的普通交易,且(N+1)个交易子缓存属于第二类型缓存;
该初始交易存储模块包括:
第一添加单元,用于若交易类型为配置交易类型,则通过交易分发器将初始交易添加至第一类型缓存,且将添加至第一类型缓存中的初始交易作为配置交易;
第二添加单元,用于若交易类型为普通交易类型,则调用针对初始交易的交易分发规则,通过交易分发器将初始交易添加至第二类型缓存,且将添加至第二类型缓存中的初始交易作为普通交易。
其中,该第二添加单元包括:
取模处理子单元,用于若交易类型为普通交易类型,则调用针对初始交易的交易分发规则,基于交易分发规则,对初始标识码和(N+1)进行取模处理,得到初始标识码对应的分发参数i;i小于或者等于N;
子缓存获取子单元,用于从(N+1)个交易子缓存中,获取与分发参数i相匹配的交易子缓存Hi;
交易添加子单元,用于通过交易分发器,将初始交易添加至交易子缓存Hi,且将存储至交易子缓存Hi中的初始交易作为普通交易。
其中,第一交易池包括第一类型缓存和包括(N+1)个交易子缓存的第二类型缓存;第一类型缓存中的配置交易的打包优先级高于第二类型缓存中的普通交易的打包优先级;第一交易池包括第一交易获取器;
该待打包交易获取模块包括:
交易查询单元,用于在第一共识节点成为提案节点时,通过第一共识节点的共识组件调用第一交易获取器,对第一类型缓存进行交易查询,得到交易查询结果;
数量获取单元,用于若交易查询结果指示第一类型缓存中不存在配置交易,则获取针对待验证区块的交易打包数量;
第一交易获取单元,用于从第二类型缓存的(N+1)个交易子缓存中,获取与交易打包数量相符的普通交易,将获取到的普通交易作为待打包交易。
其中,该待打包交易获取模块还包括:
第二交易获取单元,用于若交易查询结果指示第一类型缓存中存在配置交易,则从第一类型缓存中用于存储配置交易的交易队列中,获取最早进入交易队列的配置交易,将获取到的配置交易作为待打包交易。
其中,该区块广播模块包括:
交易结果确定单元,用于通过第一共识节点的共识组件,执行待打包交易,得到待打包交易对应的交易执行结果;
父区块哈希值获取单元,用于从区块链网络的区块链中获取具有最大生成时间戳的目标区块,将目标区块的区块哈希值作为待验证区块的父区块哈希值;
默克尔树根确定单元,用于确定交易标识码对应的交易哈希值,基于交易哈希值确定待验证区块的默克尔树根;
打包处理单元,用于对交易执行结果、父区块哈希值以及默克尔树根进行打包处理,得到待验证区块,将待验证区块广播至区块链网络;待验证区块的生成时间戳用于更新区块链上的最大生成时间戳。
本申请实施例一方面提供一种基于区块链的数据处理装置,包括:
区块获取模块,用于获取区块链网络中的第一共识节点生成的待验证区块;待验证区块为第一共识节点在从第一共识节点的第一交易池中获取到待打包交易时,对待打包交易携带的交易标识码进行打包处理后所得到的;第一交易池包括(N+1)个交易子缓存;(N+1)个交易子缓存中的每个交易子缓存均用于基于客户端生成的初始交易的初始标识码,存储初始交易;(N+1)为大于1的正整数;初始交易包括待打包交易;
区块共识模块,用于基于第二共识节点的第二交易池以及待验证区块中的交易标识码,对待验证区块进行共识,得到针对待验证区块的共识结果;第二交易池包括与第一交易池相同的(N+1)个交易子缓存;
共识结果发送模块,用于将共识结果返回至第一共识节点,以使第一共识节点在基于共识结果确定区块链网络中的区块链节点达成共识时,从第一交易池中清除待打包交易。
其中,待验证区块包括第一共识节点执行待打包交易后所得到的交易执行结果;
该区块共识模块包括:
待验证交易确定单元,用于基于第二共识节点的第二交易池以及第二共识节点的共识组件,获取与待验证区块中的交易标识码相匹配的交易,将获取到的交易确定为待验证交易;
验证结果确定单元,用于通过第二共识节点的共识组件,执行待验证交易,得到待验证交易对应的验证执行结果;
共识结果生成单元,用于基于验证执行结果以及交易执行结果,生成针对待验证区块的共识结果。
其中,第一共识节点用于在得到待验证区块时,通过第一交易池的第一交易获取器,将与待验证区块相关联的待打包交易添加至第一交易池的第一交易恢复器;
该待验证交易确定单元包括:
交易匹配子单元,用于通过第二共识节点的共识组件,调用第二交易池的第二交易获取器,基于待验证区块中的交易标识码,在第二交易池中进行交易匹配,得到交易匹配结果;
交易请求生成子单元,用于若交易匹配结果指示第二交易池中不存在与交易标识码相匹配的交易,则通过第二交易获取器,基于交易标识码以及待验证区块的区块辅助信息,生成用于发送至第一共识节点的交易获取请求;交易获取请求用于指示第一共识节点在第一交易恢复器所包括的待打包交易中,查找与交易标识码相匹配的交易;
交易接收子单元,用于通过第二交易池的第二交易恢复器,接收第一共识节点返回的交易,将接收到的交易确定为待验证交易。
其中,第二交易池包括第三类型缓存和第四类型缓存;第三类型缓存用于存储属于配置交易类型的配置交易;第四类型缓存用于存储属于普通交易类型的普通交易,且(N+1)个交易子缓存属于第四类型缓存;
该交易匹配子单元还具体用于:
通过第二共识节点的共识组件,调用第二交易池的第二交易获取器,基于待验证区块中的交易标识码,在第二交易池中的第三类型缓存中进行交易匹配,得到第一匹配结果;
若第一匹配结果指示匹配失败,则获取与第一共识节点相同的交易分发规则,基于交易分发规则,对待验证区块中的交易标识码以及(N+1)进行取模处理,得到查找参数j;j小于或者等于N;
在第四类型缓存的(N+1)个交易子缓存中,确定与查找参数j相匹配的交易子缓存Hj,基于待验证区块中的交易标识码,在交易子缓存Hj中进行交易匹配,得到第二匹配结果;
若第二匹配结果指示匹配失败,则生成匹配失败结果;匹配失败结果指示第二交易池中不存在与交易标识码相匹配的交易;
若第二匹配结果指示匹配成功,则生成匹配成功结果;匹配成功结果指示第二交易池中存在与交易标识码相匹配的交易;
将匹配失败结果或匹配成功结果确定为交易匹配结果。
其中,该装置还包括:
交易清除模块,用于若第二共识节点基于共识结果确定区块链网络中的区块链节点达成共识,则通过第二交易池的交易清除器,在第二交易池中清除与待验证区块中的交易标识码相匹配的交易。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请实施例中的方法。
在本申请实施例中,由于区块链网络中的第一共识节点的第一交易池与第二共识节点的第二交易池均包括相同的(N+1)个交易子缓存,这意味着本申请实施例可以将区块链网络中的共识节点的交易池由原来的单一缓存结构扩展至多个缓存结构,从而使得第一共识节点在通过第一交易池获取待打包交易时,能够并行的处理,这将极大程度的减少了第一共识节点基于交易池进行交易操作的等待时长,从而提高了获取待打包交易的效率。此外,第一共识节点在出块时,无需对完整的待打包交易进行打包处理,而是对用于唯一表征待打包交易携带的交易标识码进行打包处理,这不仅极大程度的缩小了待验证区块的区块尺寸,还避免了待打包交易在区块链网络中的二次无效传输,以至于极大程度的减少了对网络带宽的占用。由此可见,本申请实施例通过交易池的改进以及交易标识码的打包,能够提升整个区块链节点系统的共识性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链节点系统的结构示意图;
图2是本申请实施例提供的一种进行数据交互的场景示意图;
图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图4是本申请实施例提供的一种共识节点的交易池架构图;
图5是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图6是本申请实施例提供的一种交易流转的场景示意图;
图7是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的示意图;
图10是本申请实施例提供的一种基于区块链的数据处理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,本申请实施例提出了一种具有高性能和高可靠性的区块链交易池优化方案,其中,这里的区块链(blockchain或block chain)可以是借由密码学串接并保护内容的串连文字记录(又称区块),即包括一系列按照产生的先后时间顺序相互接续的区块,新区块一旦加入到该区块链中就不会再被移除,其中,每一个区块可以包括了前一个区块的加密散列(即父区块哈希值)、生成时间戳以及交易数据(通常用默克尔树(Merkle tree)算法计算的散列值表示),这样的设计使得区块内容具有难以篡改的特性。用区块链技术所串接的分布式账本能让两方有效纪录交易,且可永久查验此交易。
其中,智能合约是一种运行在区块链节点上的应用或程序,通常情况下,它们为一组具有特定规则的数字化协议,且该协议能够被强制执行。这些规则由计算机源代码预先定义,所有网络节点会复制和执行这些计算机源码。本申请实施例中的客户端在执行交易业务时,可以调用与交易业务相关联的智能合约,生成对应的交易以及用于唯一表示该交易的标识码(txId)。其中,本申请实施例可以将客户端执行交易业务后所生成的交易称之为初始交易,且将该初始交易对应的标识码称之为初始标识码。
请参见图1,图1是本申请实施例提供的一种区块链节点系统的结构示意图。如图1所示,本申请实施例中的区块链节点系统可以是由多个区块链节点通过网络通信的形式连接形成的分布式系统。该区块链节点系统对应的区块链网络是一种点对点的对等网络(Peer to peer networking,简称P2P网络),即是一种在用户之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。其中,该区块链节点系统对应的区块链的类型可以包括公有链(Public Blockchain)、私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。
其中,图1所示的区块链节点系统中可以包括多个区块链节点(Node),这里的区块链节点包括需要保障整个区块链节点系统数据一致的共识节点,也包括不参与共识只进行数据同步的同步节点,还包括只同步部分数据的轻节点,这里将不对其进行限定。可以理解的是,共识节点、同步节点、轻节点均可以用于接收交易,但是同步节点和轻节点在接收交易后,会将交易转发至共识节点,以使共识节点对交易进行打包和产块。
如图1所示,这里的多个区块链节点具体可以包括节点10A、节点10B、节点10C、…、节点10N。其中,该区块链节点系统中的区块链节点可以为接入该区块链网络中的任意形式的计算机设备,比如,该计算机设备可以为接入该区块链网络中的终端设备,也可以为接入该区块链网络中的服务器,这里对区块链节点的具体形式不做限定。
其中,接入到该区块链网络中的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。接入到该区块链网络中的终端设备可以包括:智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等具有业务数据处理功能的智能终端。其中,该终端设备所运行的客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客户端、教育客户端以及多媒体客户端等)中的嵌入式子客户端,在此不做限定。
应当理解,图1所示的区块链网络中的每个共识节点均可以包括通信组件(RPC/P2P)、交易池组件(TxPool)以及共识组件(Consensus)。其中,通信组件可以包括第一通信方式和第二通信方式,该第一通信方式可以为用于在客户端与共识节点之间进行数据传输(例如,发送交易)的通信方式,例如,该第一通信方式可以为远程过程调用(RemoteProcedure Call,简称RPC通信),即可以将一个服务调用封装在一个本地方法中,让调用者像使用本地方法一样调用服务,对其屏蔽实现细节。而具体的实现是通过调用方和服务方的一套约定,基于传输控制协议(Transmission Control Protocol,简称TCP)长连接进行数据交互达成。该第二通信方式可以为用于在任意两个共识节点之间进行数据传输(例如,广播交易)的通信方式,例如,该第二通信方式可以为点对点通信(即P2P通信),即是指不依靠中心化服务器、依靠用户群(peers)交换信息的一种通信技术,该P2P通信主要用于消息的发送和广播。
其中,交易池组件的作用是接收其他共识节点发送过来的交易以及直接由客户端发送过来的交易。该交易池组件可以将客户端发送过来的交易向其他的共识节点进行广播,广播交易的作用是尽可能保障共识节点间交易的一致,方便在后续的共识过程中能够快速验证区块和交易的有效性。其中,该交易池组件所对应的交易池中可以包括两种类型的交易缓存,一种类型是用于存储配置交易的交易缓存(即配置交易缓存),另一种类型是用于存储普通交易的交易缓存(即普通交易缓存),且该普通交易缓存中可以包括(N+1)个交易子缓存,具体可以包括交易子缓存H0、交易子缓存H1、…、交易子缓存HN。这里的(N+1)为大于1的正整数。这(N+1)个交易子缓存中的每个交易子缓存均用于基于客户端生成的初始交易的初始标识码,存储初始交易。
其中,共识组件是共识节点中的核心模块,该共识组件能够与其他节点进行交互,从而保障整个区块链节点系统的数据一致性。在区块链中的共识节点中可以包括提案节点和验证节点,这里的提案节点是指当前用于出块的共识节点,这里的验证节点是指用于根据相应共识算法对提案节点所提出的区块进行验证的共识节点,以确保该提案节点提出的区块是正确有效的。
为便于理解,本申请实施例可以在图1所示的区块链网络中任意选择一个共识节点(例如,节点10A)作为第一共识节点,进而可以将该第一共识节点的交易池称之为第一交易池。此外,本申请实施例可以将该区块链网络中除第一共识节点之外的其他共识节点(例如,节点10B)可以作为第二共识节点,进而可以将该第二共识节点的交易池称之为第二交易池。
应当理解,在第一共识节点为提案节点时,该第一共识节点可以从第一交易池中获取用于打包至待验证区块的交易(即待打包交易),进而可以确定该待打包交易携带的标识码。其中,本申请实施例可以将待打包交易携带的标识码称之为交易标识码,且该交易标识码是由用于生成待打包交易的客户端确定的。进一步地,该第一共识节点无需将完整的待打包交易进行打包处理,而是直接对该待打包交易的交易标识码进行打包处理,以得到用于广播至区块链网络的待验证区块,这意味着本申请实施例可以极大程度的减少待验证区块的区块尺寸,进而在后续将其广播至区块链网络时可以有效减少数据传输时的数据流量,以至于减少对网络带宽的占用。进一步地,区块链网络中的第二共识节点在接收到待验证区块时,可以基于与第一交易池具有相同部署(即同样包括(N+1)个交易子缓存)的第二交易池以及待验证区块中的交易标识码,快速生成针对待验证区块的共识结果,进而可以将该共识结果返回至第一共识节点,以使第一共识节点在基于共识结果确定该区块链网络中的区块链节点达成共识时,从第一交易池中清除待打包交易。与此同时,第二共识节点在基于自身生成的共识结果,确定区块链网络中的区块链节点达成共识时,该第二共识节点也可以从第二交易池中清除与待验证区块中的交易标识码相匹配的交易。
由于第一交易池与第二交易池均从原来的单一缓存结构扩展至多个缓存结构,这意味着本申请实施例中的每个共识节点(第一共识节点或第二共识节点)均能够通过各自交易池的多个缓存结构进行并行的交易操作,这将减少了共识节点在基于交易池进行交易操作的等待时长,从而提高了交易操作的效率。由此可见,本申请实施例通过交易池的改进以及交易标识码的打包,能够提升整个区块链节点系统的共识性能。
为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示,本申请实施例中的节点20A可以为区块链网络中的第一共识节点,该第一共识节点可以为上述图1所示的区块链网络中的任意一个共识节点,例如,节点10A。本申请实施例中的节点20B可以为该区块链网络中的第二共识节点,该第二共识节点可以为上述图1所示的区块链网络中的除第一共识节点之外的另一共识节点,例如,节点10B。
应当理解,为了提高区块链网络整体的共识性能,本申请实施例可以对共识节点的交易池进行改进(即将单一缓存结构扩展为多个缓存结构),改进后的交易池可以包括配置交易缓存和普通交易缓存,且普通交易缓存所包括的交易子缓存的数量可以为(N+1)个,这里的(N+1)为正整数,每个交易子缓存均可以用于基于客户端生成的初始交易的初始标识码,存储多个初始交易。为便于阐述,本申请实施例的交易池中的交易子缓存的数量可以以3个为例。
如图2所示,节点20A的交易池2a可以包括配置交易缓存101H以及普通交易缓存102H,该普通交易缓存102H具体可以包括交易子缓存1H0、交易子缓存1H1以及交易子缓存1H2。其中,交易子缓存1H0存储的交易数量可以以2个为例,具体可以包括:携带标识码S01的交易X01以及携带标识码S02的交易X02;交易子缓存1H1存储的交易数量可以以3个为例,具体可以包括:携带标识码S11的交易X11、携带标识码S12的交易X12以及携带标识码S13的交易X13;交易子缓存1H2存储的交易数量可以以1个为例,具体可以包括:携带标识码S21的交易X21。
如图2所示,节点20B的交易池2b可以包括配置交易缓存201H以及普通交易缓存202H,该普通交易缓存202H具体可以包括交易子缓存2H0、交易子缓存2H1以及交易子缓存2H2。通常来讲,节点20A的交易池所存储的交易与节点20B的交易池所存储的交易是相同的,但由于交易在区块链网络中的广播是需要一定时长的,因此,在某一时刻节点20A的交易池2a与节点20B的交易池2b所存储的交易可能存在一定差异,比如,交易池2b可能缺失部分交易。如图2所示,对于交易池2b的交易子缓存2H1与交易池2a的交易子缓存1H1而言,该交易子缓存2H1包括携带交易标识码S11的交易X11,而缺失携带标识码S12的交易X12以及携带标识码S13的交易X13。
可以理解的是,在节点20A成为提案节点时,节点20A可以从交易池2a中,获取一批交易(以4个为例)作为待打包交易。例如,该节点20A获取到的待打包交易可以包括交易X01、交易X11、交易X12以及交易X21。此时,该节点20A可以确定这4个交易分别携带的标识码,并将其作为该待打包交易的交易标识码,比如,这里的交易标识码可以包括交易X01携带的标识码S01、交易X11携带的标识码S11、交易X12携带的标识码S12以及交易X21携带的标识码S21。进一步地,该节点20A可以对这4个标识码进行打包处理,从而得到待验证区块,并将该待验证区块广播至节点20A所在的区块链网络。
在区块链网络中的节点20B接收到该待验证区块时,该节点20B可以根据交易池2b以及待验证区块包括的4个标识码,生成针对待验证区块的共识结果,进而可以将该共识结果返回至节点20A。在节点20A接收到该共识结果时,可以对该共识结果进行结果分析。若第一共识节点基于该共识结果确定区块链网络中的区块链节点未达成共识,则这意味着该节点20A无法成功将上述待打包交易中的4个交易写入区块链网络中的区块链,此时该节点20A可以生成一个用于指示上链失败的结果通知(即上链失败通知),进而将其广播至该节点20A所在的区块链网络。
可选的,若第一共识节点基于共识结果确定区块链网络中的区块链节点达成共识,则这意味着该节点20A能够将上述待打包交易中的4个交易成功写入区块链网络中的区块链,在成功写入区块链后,该节点20A可以从交易池2a中清除该待打包交易。例如,该节点20A可以从交易池2a的交易子缓存1H0中清除携带标识码S01的交易X01,从交易子缓存1H1中清除携带标识码S11的交易X11、携带标识码S12的交易X12,从交易子缓存1H2中清除携带标识码S21的交易X21。与此同时,该节点20A还可以基于这4个交易分别携带的标识码,生成一个用于指示上链成功的结果通知(即上链成功通知),进而将其广播至该节点20A所在的区块链网络。
由此可见,本申请实施例中的节点20A在成为提案节点时,可以通过对具有多个缓存结构的交易池2a进行并行的交易操作,从而可以快速获取待打包交易。可以理解的是,区块链网络中的共识节点在获取到客户端发送的初始交易时,往往已经将该初始交易广播至区块链网络,以使区块链网络中的各个共识节点将其存储在自身的交易池中,因此,在本申请实施例中,节点20A在生成待验证区块时,无需对完整的待打包交易进行打包处理,而是对待打包交易携带的交易标识码进行打包处理,这不仅减少了待验证区块的区块尺寸,还避免了待打包交易在区块链网络中的二次传输,以至于极大程度的减少了对网络带宽的占用。此外,由于交易池2b可以包括与交易池2a相同的(N+1)个交易子缓存,这意味着节点20B在接收到节点20A所广播的待验证区块时,也可以根据交易池2b所具有的多个缓存结构,快速对待验证区块进行共识,这将减少了节点20B在基于交易池2b进行交易操作的等待时长,从而提高了交易操作的效率。基于此,本申请实施例通过交易池的改进以及交易标识码的打包,能够提升整个区块链节点系统的共识性能。
其中,区块链网络中的第一共识节点基于第一交易池,对待打包交易的交易标识码进行打包处理,得到用于广播至区块链网络的待验证区块,以及区块链网络的第二共识节点在接收到待验证区块后,基于第二交易池以及该待验证区块中的交易标识码,对该待验证区块进行共识的具体实现方式可以参见下述图3-图6所对应的实施例。
进一步地,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。如图3所示,该方法可以由区块链网络中的第一共识节点执行,该第一共识节点可以为上述图1所示的区块链网络中的任意一个共识节点,例如,节点10A。该方法至少可以包括以下步骤S101-步骤S103:
步骤S101,从第一共识节点的第一交易池中获取待打包交易,确定待打包交易携带的交易标识码。
其中,第一交易池可以包括第一类型缓存(例如,配置交易缓存)和包括(N+1)个子缓存的第二类型缓存(例如,普通交易缓存),且第一类型缓存中的配置交易的打包优先级高于第二类型缓存中的普通交易的打包优先级;(N+1)为大于1的正整数。(N+1)个交易子缓存中的每个交易子缓存均用于基于客户端生成的初始交易的初始标识码,存储初始交易;这里的初始交易可以包括待打包交易。具体地,在第一共识节点成为提案节点时,该第一共识节点可以通过第一共识节点的共识组件,来调用第一交易池中的第一交易获取器,进而可以对第一类型缓存进行交易查询,得到交易查询结果。进一步地,该第一共识节点可以基于交易查询结果,从第一交易池中获取待打包交易,进而可以确定待打包交易携带的交易标识码,这里的交易标识码是由用于生成待打包交易的客户端确定的。
其中,区块链网络中的共识节点均可以包括通信组件、交易池组件以及共识组件。该交易池组件可以提供以下交易操作,具体可以包括第一交易操作、第二交易操作、第三交易操作以及第四交易操作。其中,第一交易操作(例如,AddTx())是指向交易池中添加交易的操作;第二交易操作(例如,FetchTxs())是指在成为提案节点时,通过共识组件从交易池中获取一批待打包的交易的操作;第三交易操作(例如,GetTxs())是指在成为验证节点时,通过共识组件从交易池中获取用于进行验证的交易的操作;第四交易操作(例如,RetryAndRemoveTxs())是指区块共识完成后需要对交易池中的交易进行删除的操作、以及进行区块剪枝时将旁枝区块中的交易重新放入交易池的操作。在具体实现时,往往存在着高并发,短时间内会有大量的交易需要调用第一交易操作进入交易池,而为了保证程序不出现错误,需要对交易池进行加锁处理,这将导致了共识组件在进行上述四种交易操作时存在强烈的锁竞争。为了减少对锁的抢占,便于后续相关交易操作能够并发处理,本申请实施例可以借鉴“分段锁”的思想,将交易池由原来的单一缓存结构扩展为多个缓存结构,以提升共识性能。
应当理解,共识节点的交易池组件均可以由以下九个部分组成:交易验证器(TxVerifier)、交易分发器(TxDispatcher)、交易批次构造器(TxBatchBuilder)、配置交易缓存(configTxQueue)、包括(N+1)个交易子缓存的普通交易缓存(commonTxQueue)、交易获取器(TxFetcher)、交易恢复器(TxRecover)、交易清除器(TxRemover)、以及网络、日志等基础组件(Others)。
为便于理解,进一步地,请参见图4,图4是本申请实施例提供的一种共识节点的交易池架构图。如图4所示,该交易池可以为区块链网络中的任意一个共识节点(例如,第一共识节点或第二共识节点)的交易池,该交易池可以包括配置交易缓存401H、普通交易缓存402H、交易验证器4Q1、交易分发器4Q2、交易批次构造器4Q3、交易获取器4Q4、交易恢复器4Q5、交易清除器4Q6、以及基础组件4Q7。其中,该普通交易缓存402H可以包括(N+1)个交易子缓存,具体可以包括交易子缓存H0、交易子缓存H1、…、交易子缓存HN。
其中,配置交易缓存401H主要用于存储属于配置交易类型的交易(即配置交易),这里的配置交易是指用于改变区块链节点系统参数的交易。普通交易缓存402H主要用于存储属于普通交易类型的交易(即普通交易),这里的普通交易是指客户端调用与交易业务相关联的智能合约所生成的相关交易。在本申请实施例中,配置交易的打包优先级是高于普通交易的打包优先级。
这里的交易验证器4Q1主要用于对接收到的交易(例如,客户端调用与交易业务相关联的智能合约所生成的初始交易)进行参数校验,比如,这里的参数校验可以包括交易签名是否正确、交易格式是否正确、交易时间戳是否正确、交易是否已经存在于交易池中或者数据库中等。
这里的交易分发器4Q2主要用于进行交易分发,即可以根据接收到的初始交易的交易类型将初始交易存储至交易池,比如,该交易分发器4Q2将属于配置交易类型的初始交易(即配置交易)添加至配置交易缓存401H,将属于普通交易类型的初始交易(即普通交易)按照交易分发规则,添加至普通交易子缓存402H的某一具体的交易子缓存。其中,这里的交易分发规则可以是对初始交易的初始标识码进行取模处理,以得到用于分发交易的分发参数。
这里的交易批次构造器4Q3主要用于收集通过客户端发送到交易池中的交易,定时或者达到某一数量阈值则构造一批次的交易,以广播给其他的共识节点。
这里的交易获取器4Q4主要用于在共识节点成为提案节点后,在打包交易产块时,从交易池中获取一批交易;且该交易获取器4Q4还用于在共识节点接收到的需要进行区块验证的区块,以成为验证节点后,根据接收到的区块中的标识码(txId)从交易池中获取与该区块相关联的交易。
这里的交易恢复器4Q5主要用于在共识节点成为验证节点后,若发现自身交易池中缺失某一区块中的相关交易时,可以从该区块的提案者节点处请求相关交易,以使该提案节点返回缺失的交易。
这里的交易删除器4Q6主要用于在共识完成后执行上述第四交易操作,即从交易池中删除已经共识成功的区块的交易,以及将旁枝区块中的交易重新放入交易池的逻辑。
这里的基础组件4Q7可以为包含网络、日志等通用类模块,主要用于为交易池提供基础服务。
应当理解,在区块链网络中的第一共识节点成为提案节点时,该第一共识节点可以通过第一共识节点的共识组件,来调用第一交易池中的第一交易获取器,根据第一交易池所提供的上述第二交易操作(例如,FetchTxs()),从第一交易池中获取待打包交易,并确定该待打包交易的交易标识码。如图4所示,该第一共识节点需要根据第一交易获取器(例如,图4所示的交易获取器4Q4),先对配置交易缓存401H进行交易查询,以得到交易查询结果,进而可以根据该交易查询结果,确定是否需要对普通交易缓存402H进行交易查询。
可以理解的是,若交易查询结果指示配置交易缓存401H(即第一类型缓存)中存在配置交易,则该第一共识节点可以从第一类型缓存中用于存储配置交易的交易队列中,获取最早进入该交易队列的配置交易,进而可以将获取到的配置交易作为待打包交易。换言之,若第一共识节点确定的交易查询结果指示配置交易缓存401H中存在配置交易,则由于配置交易的打包优先级高于普通交易的打包优先级,因此该第一共识节点无需对普通交易缓存402H中进行交易查询,而是直接在配置交易缓存401H的交易队列中,获取最早进入交队列的配置交易,以作为待打包交易。
可选的,若交易查询结果指示配置交易缓存401H中不存在配置交易,则该第一共识节点可以获取针对待验证区块的交易打包数量,进而可以从第二类型缓存的(N+1)个交易子缓存中,获取与交易打包数量相符的普通交易,将获取到的普通交易作为待打包交易。如图4所示,若第一共识节点确定的交易查询结果指示配置交易缓存401H中不存在配置交易,则该第一共识节点可以先获取针对待验证区块的交易打包数量(例如,4个),然后该第一共识节点可以基于每个普通交易存储至普通交易缓存402H的存储时间戳,并行地从(N+1)个交易子缓存中的交易队列中,快速获取存储时间戳排序靠前的4个普通交易,以作为待打包交易。
步骤S102,对交易标识码进行打包处理,得到待验证区块,将待验证区块广播至区块链网络,以使区块链网络中的第二共识节点基于第二共识节点的第二交易池以及交易标识码,生成针对待验证区块的共识结果。
具体地,为了减少待验证区块的区块尺寸,第一共识节点在出块时,无需对完整的待打包交易进行打包处理,而是直接对用于唯一表征该待打包交易的交易标识码(例如,客户端生成的64位随机数)进行打包处理,从而得到待验证区块。进一步地,该第一共识节点可以将待验证区块广播至第一共识节点所在的区块链网络,以使该区块链网络中的其他共识节点对该待验证区块进行区块共识。可以理解的是,在区块链网络中的第二共识节点接收到该待验证区块时,该第二共识节点可以基于第二共识节点的第二交易池以及待验证区块中的交易标识码,生成针对该待验证区块的共识结果。其中,这里的第二交易池包括与第一交易池相同的(N+1)个交易子缓存。
其中,第一共识节点在获取到待打包交易时,可以通过第一共识节点的共识组件,执行待打包交易,得到待打包交易对应的交易执行结果。进一步地,该第一共识节点可以从区块链网络的区块链中获取具有最大生成时间戳的目标区块,并将该目标区块的区块哈希值作为待验证区块的父区块哈希值。与此同时,该第一共识节点还可以确定交易标识码对应的交易哈希值,进而可以基于交易哈希值确定待验证区块的默克尔树根。然后,该第一共识节点可以对交易执行结果、父区块哈希值以及默克尔树根进行打包处理,得到待验证区块,并将该待验证区块广播至区块链网络,其中,这里的待验证区块的生成时间戳可以用于更新区块链上的最大生成时间戳。
由此可见,本申请实施例中的待验证区块并不包括完整的待打包交易,而是包括了用于唯一表征待打包交易的交易标识码,也就是说第一共识节点在进行区块广播时,第一共识节点的共识组件不再需要广播全量的交易,即共识组件不再关注其他共识节点是否有待验证区块中所包括的全量交易,而是由交易池组件去保障交易的一致,这意味着本申请实施例能够实现共识组件与交易池组件对交易的解耦。
与此同时,该第一共识节点在得到待验证区块时,可以通过第一交易池的第一交易获取器,将与待验证区块相关联的待打包交易添加至第一交易池的第一交易恢复器,以便于后续其他共识节点在缺失与待验证区块相关联的相关交易时,可以快速从第一交易恢复器中请求到缺失交易。
应当理解,在区块链网络中的第二共识节点接收到该待验证区块时,该第二共识节点可以基于第二共识节点的第二交易池以及该第二共识节点的共识组件,获取与待验证区块中的交易标识码相匹配的交易,进而可以将获取到的交易确定为待验证交易。进一步地,该第二共识节点可以通过第二共识节点的共识组件,执行待验证交易,以得到待验证交易对应的验证执行结果,并基于验证执行结果以及交易执行结果,生成针对待验证区块的共识结果。
其中,第二共识节点的第二交易池与第一共识节点的第一交易池的结构相同,即该第二交易池可以包括第三类型缓存和第四类型缓存;第三类型缓存可以用于存储属于配置交易类型的配置交易;第四类型缓存可以用于存储属于普通交易类型的普通交易,且(N+1)个交易子缓存属于第四类型缓存。
可以理解的是,该第二共识节点在对待验证区块进行区块共识时,可以先通过第二共识节点的共识组件,调用第二交易池的交易获取器(即第二交易获取器),进而可以基于该待验证区块中的交易标识码,在第二交易池中进行交易匹配,从而得到交易匹配结果。其中,这里的交易匹配结果是由针对第三类型缓存的第一匹配结果和针对第四类型缓存的第二匹配结果所共同决定的。
比如,由于配置交易的打包优先级高于普通交易的打包优先级,因此,第二共识节点可以先基于待验证区块中的交易标识码,在第二交易池中的第三类型缓存中进行交易匹配,得到第一匹配结果。若第一匹配结果指示匹配成功,则第二共识节点可以生成匹配成功结果,这意味着该第二交易池的第三类型缓存中存在与交易标识码相匹配的交易,此时,该第二共识节点可以直接在第三类型缓存中获取到与交易标识码相匹配的交易,作为待验证交易。
可选的,若第一匹配结果指示匹配失败,则第二共识节点需要进一步地对第四类型缓存进行交易匹配,以得到第二匹配结果。比如,为了提高匹配效率,该第二共识节点可以先获取与第一共识节点相同的交易分发规则,进而基于交易分发规则,对待验证区块中的交易标识码以及(N+1)进行取模处理,从而可以得到查找参数j,这里的j小于或者等于N。然后,该第二共识节点可以在第四类型缓存的(N+1)个交易子缓存中,快速确定与查找参数j相匹配的交易子缓存Hj,进而可以基于待验证区块中的交易标识码,在交易子缓存Hj中进行交易匹配,以得到第二匹配结果。
若第二匹配结果指示匹配成功,则第二共识节点可以生成匹配成功结果,这意味该第二交易池存在与交易标识码相匹配的交易,此时,该第二共识节点可以直接在第四类型缓存中的交易子缓存Hj中获取与交易标识码相匹配的交易,作为待验证交易。可选的,若第二匹配结果指示匹配失败,则第二共识节点可以生成匹配失败结果,这意味第二交易池中不存在与交易标识码相匹配的交易。进一步地,该第二共识节点可以将匹配失败结果或匹配成功结果确定为交易匹配结果。
可以理解的是,若交易匹配结果指示第二交易池中不存在与交易标识码相匹配的交易,则第二共识节点可以通过第二交易获取器,基于交易标识码以及待验证区块的区块辅助信息(例如,待验证区块的区块高度或区块哈希值),生成用于发送至第一共识节点的交易获取请求。第一共识节点在接收到该交易获取请求时,可以基于交易标识码以及区块辅助信息,快速从第一交易池的第一交易恢复器中,查找与交易标识码相匹配的交易,进而可以将查找到的交易返回至第二共识节点。此时,第二共识节点可以通过第二交易池的交易恢复器(即第二交易恢复器),接收第一共识节点返回的交易,并将接收到的交易确定为待验证交易。
如图2所示,待验证区块中的交易标识码可以包括标识码S01、标识码S11、标识码S12以及标识码S21。该节点20B在获取到该待验证区块时,可以基于这4个标识码,先在交易池2b中的配置交易缓存201H中进行交易匹配,若未匹配到,再在交易池2b中的普通交易缓存202H中进行匹配。可选的,为了提高匹配效率,由于该待验证区块所包括的标识码的数量为多个,则该节点20B可以认为待验证区块所包括的标识码为普通交易对应的标识码,此时,该节点20B可以无需在交易池2b中的配置交易缓存201H中进行交易匹配,可以直接在普通交易缓存202H进行交易匹配。
对于标识码S01而言,该节点20B可以基于交易分发规则,对标识码S01以及普通交易缓存202H所包括的交易子缓存的数量(N+1)进行取模处理,从而可以得到查找参数j(例如,0),此时,该节点20B可以快速从普通交易缓存202H的3个交易子缓存中,确定与查找参数0相匹配的交易子缓存(例如,交易子缓存2H0),进而可以在交易子缓存2H0中进行交易匹配,以获取到与标识码S01相匹配的交易(例如,交易X01)。
依次类推,该节点20B可以基于针对标识码S01的交易匹配方式,在普通交易缓存202H中,获取与标识码S11相匹配的交易(例如,交易X11)以及与标识码S21相匹配的交易(例如,交易X21),这里将不再继续进行赘述。
而对于标识码S12而言,该节点20B可以基于交易分发规则,对标识码S12以及普通交易缓存202H所包括的交易子缓存的数量(N+1)进行取模处理,从而可以得到查找参数j(例如,1),进而可以快速从普通交易缓存202H的3个交易子缓存中,确定与查找参数1相匹配的交易子缓存(例如,交易子缓存2H1)。由于交易子缓存2H1不存在与标识码S12相匹配的交易,因此该节点20B所确定的第二匹配结果指示标识码S12匹配失败,即交易池2b并不存在与标识码S12相匹配的交易。此时,该节点20B可以通过交易池2b中的交易获取器,基于标识码S12以及待验证区块的区块辅助信息(例如,待验证区块的区块高度或区块哈希值),生成用于发送至节点20A的交易获取请求,以使节点20A在交易池2a的交易恢复器中,快速查找到与标识码S12相匹配的交易(例如,X12)。进一步地,节点20B可以通过交易池2b的交易恢复器接收到节点20A返回的交易X12。综上,该节点20B获取到的待验证交易可以包括在交易子缓存2H0中匹配到的交易X01、在交易子缓存2H1中匹配到的交易X11、在交易子缓存2H2中匹配到的交易X21、以及节点20A返回的交易X12。
进一步地,该第二共识节点可以通过第二共识节点的共识组件,执行待验证交易,以得到待验证交易对应的验证执行结果,进而可以通过对自身生成的验证执行结果以及待验证区块中包括的交易执行结果进行比对,生成针对待验证区块的共识结果。比如,在验证执行结果与交易执行结果一致时,第二共识节点可以生成用于指示共识成功的共识结果;在验证执行结果与交易执行结果不一致时,第二共识节点可以生成用于指示共识失败的共识结果。
步骤S103,接收第二共识节点返回的共识结果,若基于共识结果确定区块链网络中的区块链节点达成共识,则从第一交易池中清除待打包交易。
具体地,该第一共识节点可以接收第二共识节点返回的共识结果,并对该共识结果进行分析。可以理解的是,该第一共识节点可以接收区块链网络中的多个第二共识节点分别对待验证区块的共识节点,进而可以对接收到的共识结果以及第一共识节点自身生成的共识结果一并进行分析;若共识结果中存在超过共识阈值(例如,1/2或2/3)的共识结果指示共识成功,则该第一共识节点可以确定区块链网络中的区块链节点达成共识,此时,该第一共识节点可以将待验证区块以及待打包交易一并写入区块链。与此同时,该第一共识节点可以从第一交易池中清除待打包交易。
如图2所示,该节点20A在基于针对待验证区块的共识结果,确定区块链网络中的区块链节点达成共识时,可以从交易池2a的交易子缓存1H0中清除携带标识码S01的交易X01,从交易子缓存1H1中清除携带标识码S11的交易X11、携带标识码S12的交易X12,从交易子缓存1H2中清除携带标识码S21的交易X21。
在本申请实施例中,由于区块链网络中的第一共识节点的第一交易池与第二共识节点的第二交易池均包括相同的(N+1)个交易子缓存,这意味着本申请实施例可以将区块链网络中的共识节点的交易池由原来的单一缓存结构扩展至多个缓存结构,从而使得第一共识节点在通过第一交易池获取待打包交易时,能够并行的处理,这将极大程度的减少了第一共识节点基于交易池进行交易操作的等待时长,从而提高了获取待打包交易的效率。此外,第一共识节点在出块时,无需对完整的待打包交易进行打包处理,而是对用于唯一表征待打包交易携带的交易标识码进行打包处理,这不仅极大程度的缩小了待验证区块的区块尺寸,还避免了待打包交易在区块链网络中的二次无效传输,以至于极大程度的减少了对网络带宽的占用。由此可见,本申请实施例通过交易池的改进以及交易标识码的打包,能够提升整个区块链节点系统的共识性能。
进一步地,请参见图5,图5是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。如图5所示,该方法可以由区块链网络中的第一共识节点和第二共识节点交互执行,该第一共识节点可以为上述图1所示的区块链网络中的任意一个共识节点,例如,节点10A。该第二共识节点可以为上述图1所示的区块链网络中的除第一共识节点之外的另一共识节点,例如,节点10B。该方法至少可以包括以下步骤S201-步骤S206:
步骤S201,区块链网络中的第一共识节点从第一共识节点的第一交易池中获取待打包交易,确定待打包交易携带的交易标识码。
其中,第一交易池可以包括第一类型缓存(例如,配置交易缓存)和包括(N+1)个子缓存的第二类型缓存(例如,普通交易缓存),且第一类型缓存中的配置交易的打包优先级高于第二类型缓存中的普通交易的打包优先级;(N+1)为大于1的正整数。(N+1)个交易子缓存中的每个交易子缓存均用于基于客户端生成的初始交易的初始标识码,存储初始交易;这里的初始交易可以包括待打包交易。具体地,在第一共识节点成为提案节点时,该第一共识节点可以通过第一共识节点的共识组件,来调用第一交易池中的第一交易获取器,进而可以对第一类型缓存进行交易查询,得到交易查询结果。进一步地,该第一共识节点可以基于交易查询结果,从第一交易池中获取待打包交易,进而可以确定待打包交易携带的交易标识码,这里的交易标识码是由用于生成待打包交易的客户端确定的。
步骤S202,第一共识节点对交易标识码进行打包处理,得到待验证区块,将待验证区块广播至区块链网络。
具体地,为了减少待验证区块的区块尺寸,第一共识节点在出块时,无需对完整的待打包交易进行打包处理,而是直接对用于唯一表征该待打包交易的交易标识码(例如,客户端生成的64位随机数)进行打包处理,从而得到待验证区块。进一步地,该第一共识节点可以将待验证区块广播至第一共识节点所在的区块链网络,以使该区块链网络中的其他共识节点对该待验证区块进行区块共识。
步骤S203,区块链网络中的第二共识节点基于第二共识节点的第二交易池以及待验证区块中的交易标识码,对待验证区块进行共识,得到针对待验证区块的共识结果。
具体地,在区块链网络中的第二共识节点接收到该待验证区块时,该第二共识节点可以基于第二共识节点的第二交易池以及该第二共识节点的共识组件,获取与待验证区块中的交易标识码相匹配的交易,进而可以将获取到的交易确定为待验证交易。进一步地,该第二共识节点可以通过第二共识节点的共识组件,执行待验证交易,以得到待验证交易对应的验证执行结果,并基于验证执行结果以及交易执行结果,生成针对待验证区块的共识结果。其中,这里的第二交易池包括与第一交易池相同的(N+1)个交易子缓存。
步骤S204,第二共识节点将共识结果返回至第一共识节点。
步骤S205,若基于共识结果确定区块链网络中的区块链节点达成共识,则第一共识节点从第一交易池中清除待打包交易。
具体地,该第一共识节点可以接收第二共识节点返回的共识结果,并对该共识结果进行分析。可以理解的是,该第一共识节点可以接收区块链网络中的多个第二共识节点分别对待验证区块的共识节点,进而可以对接收到的共识结果以及第一共识节点自身生成的共识结果一并进行分析;若共识结果中存在超过共识阈值(例如,1/2或2/3)的共识结果指示共识成功,则该第一共识节点可以确定区块链网络中的区块链节点达成共识,此时,该第一共识节点可以将待验证区块以及待打包交易一并写入区块链。与此同时,该第一共识节点还可以对第一交易池进行交易清除,即从第一交易池中清除与待验证区块相关联的待打包交易。
其中,该步骤S201-步骤S205的具体实施方式可参见上述图3所对应实施例中对步骤S101-步骤S103的描述,这里将不再赘述。可以理解的是,为了提高共识性能,第二共识节点在执行完步骤S203之后,无需等待第一共识节点执行步骤S205,而是可以直接跳转执行下述步骤S206。
步骤S206,若第二共识节点基于共识结果确定区块链网络中的区块链节点达成共识,则第二共识节点对第二交易池进行交易清除。
其中,第一共识节点在打包得到待验证区块时可以生成针对该待验证区块的共识结果,此外,该第一共识节点所在的区块链网络中可以包括多个第二共识节点,每个第二共识节点在接收到第一共识节点广播的待验证区块时,均可以基于自身交易池以及待验证区块中的交易标识码,生成针对待验证区块的共识结果。这意味着本申请实施例中的任意一个第二共识节点在对待验证区块进行共识时,不仅可以基于自身第二交易池生成针对待验证区块的共识结果,还可以接收第一共识节点针对待验证区块的共识结果以及区块链网络中的其他第二共识节点针对待验证区块的共识结果,进一步地,该第二共识节点可以对这些共识结果进行分析,若第二共识节点基于这些共识结果确定区块链网络中的区块链节点达成共识(即这些共识结果中存在超过共识阈值的共识结果指示共识成功),则该第二共识节点可以基于待验证区块中的交易标识码,在自身第二交易池中清除与交易标识码相匹配的交易。如图2所示,节点20B在接收到节点20A返回的交易清除通知时,可以从交易池2b的交易子缓存2H0中清除携带标识码S01的交易X01;从交易子缓存2H1中清除携带标识码S11的交易X11;从交易子缓存2H2中清除携带标识码S21的交易X21。
为便于理解,进一步地,请参见图6,图6是本申请实施例提供的一种交易流转的场景示意图。如图6所示,本申请实施例中的第一共识节点和第二共识节点可以为同一区块链网络中的任意两个共识节点,该第一共识节点可以为上述图1所示的区块链网络中的任意一个共识节点,例如,节点10A。该第二共识节点可以为上述图1所示的区块链网络中的除第一共识节点之外的另一共识节点,例如,节点10B。
如图6所示,本申请实施例可以从交易的生命周期角度来阐述交易流转过程,即区块链网络中的每个共识节点的交易池组件均是用于接收区块链网络中的其他节点和客户端发送来的交易,并为共识组件打包交易生成区块、验证与区块相关联的交易、拉取缺失交易、以及删除共识完成的交易。
其中,图6所示的步骤S601-步骤S605用于阐述第一共识节点针对初始交易的添加流程;步骤S606-步骤S607用于阐述第一共识节点在成为提案节点时,针对待打包交易的获取流程;步骤S608用于阐述第一共识节点在确定区块链网络中的区块链节点达成共识时,对第一交易池进行交易清除的流程;步骤S701-步骤S704用于阐述第二共识节点针对初始交易的添加流程,步骤S705用于阐述第二共识节点在接收到待验证区块成为验证节点后,针对待验证交易的获取流程,且步骤S7051-步骤S7053具体用于阐述第二共识节点在成为验证节点后,针对缺失交易的获取流程,步骤S706用于阐述第二共识节点在确定区块链网络中的区块链节点达成共识时,对第二交池进行交易清除的流程。
以第一共识节点为例,第一共识节点在获取到客户端生成的携带初始标识码的初始交易时,可以根据第一共识节点的第一交易池中的交易验证器以及交易分发器,将其存储至第一交易池。其中,可以理解的是,第一共识节点可以通过第一共识节点的通信组件(例如,RPC通信),直接获取客户端生成的携带初始标识码的初始交易,也可以通过第一共识节点的通信组件(例如,P2P通信),获取区块链网络中的其他节点所广播的由客户端生成的携带初始标识码的初始交易。
进一步地,该第一共识节点可以统计第一交易池的交易总数量,在交易总数量达到交易存储数量阈值(例如,1000个)时,这意味着第一交易池暂无存储空间来存储接收到的初始交易。可选的,在交易总数量未达到交易存储数量阈值(例如,1000个)时,这意味第一交易池可以存储新的交易,此时,该第一共识节点可以执行步骤S601,通过第一交易池中的交易验证器对初始交易进行参数校验,从而得到验证结果。可以理解的是,若第一共识节点接收到的初始交易是客户端直接发送的,则该第一共识节点在进行参数校验时,需要校验初始交易的交易格式是否正确、交易时间戳是否正确,是否已经存在于交易池中或者数据库中,以得到验证结果。
而若第一共识节点接收到的初始交易是通过其他节点所广播的,为了更加准确的校验初始交易,在上述参数校验的基础上,该第一共识节点还需要对初始交易携带的客户端签名信息进行验签。其中,这里的客户端签名信息是基于客户端私钥,对待签名信息(例如,交易详细数据)进行签名处理后所得到的。其中,这里的待签名信息是经过用户授权后所获取到的,且对待签名信息的获取需要遵守相关国家和地区的相关法律法规和标准。比如,该第一共识节点可以从区块链网络的区块链上获取客户端对应的客户端公钥,进而基于该客户端公钥对客户端签名信息进行验签,从而得到验签结果。若验签结果指示验证失败,则该第一共识节点可以认为待签名信息已经发生篡改,不被信任,此时该第一共识节点可以确定该初始交易为非法交易。可选的,若验签结果指示验证成功,这意味着待签名信息未发生篡改,且该待签名信息确实是由客户端所生成的,此时,该第一共识节点可以确定该初始交易为合法交易。进一步地,该第一共识节点可以基于验签结果以及上述参数校验的结果,生成针对初始交易的验证结果。
若验证结果指示验证成功,则第一共识节点可以执行步骤S602,将其添加至第一交易池的交易分发器,以使该交易分发器基于初始交易的交易类型字段,确定初始交易的交易类型,进而可以基于该交易类型执行步骤S603,将初始交易存储至第一交易池。
可以理解的是,若初始交易的交易类型字段为第一字段(例如,0),则该第一共识节点可以确定该初始交易的交易类型为配置交易类型,此时,该第一共识节点可以通过第一交易池中交易分发器,将该初始交易添加至配置交易缓存(即第一类型缓存),且将添加至第一类型缓存中的初始交易作为配置交易。若初始交易的交易类型字段为第二字段(例如,1),则该第一共识节点可以确定该初始交易的交易类型为普通交易类型,此时,该第一共识节点需要调用针对初始交易的交易分发规则,通过第一交易池中的交易分发器将该初始交易添加至普通交易缓存(即第二类型缓存),且将添加至第二类型缓存中的初始交易作为普通交易。具体地,若初始交易的交易类型为普通交易类型,则第一共识节点可以基于交易分发规则,对初始交易携带的初始标识码以及第二类型缓存中的交易子缓存的总数量(N+1)进行取模处理,从而可以得到初始标识码对应的分发参数i,这里的i小于或者等于N。
比如,若分发参数i为0,则第一共识节点在执行步骤S603时,可以通过第一交易池中的交易分发器,将初始交易添加至图6所示的交易子缓存H0中的交易队列;若分发参数i为1,则第一共识节点在执行步骤S603时,可以通过第一交易池中的交易分发器,将初始交易添加至图6所示的交易子缓存H1中的交易队列,以此类推。其中,这里的交易队列可以为按照初始交易的存储时间戳顺序进行存储的,越早进入交易队列的初始交易,将越早被写入区块链。
与此同时,第一共识节点还可以执行步骤S604,通过第一交易池的交易分发器,将交易验证器已经验证成功的初始交易一并放入第一交易池的交易批次构造器中,以通过该交易批次构造器执行步骤S605,根据缓存的交易数量(例如,每10个)或者缓存周期(例如,每隔半小时)将一批交易广播至区块链网络中的其他共识节点。其中,这里的交易数量或者缓存周期均可以根据实际业务需求进行动态调整,这里将不对其进行限定。
可以理解的是,在第一共识节点成为提案节点时,该第一共识节点可以通过第一共识节点的共识组件以及第一交易池中的交易获取器执行步骤S606,以从第一交易池中获取待打包交易,并确定待打包交易携带的交易标识码,进而可以通过对交易标识码进行打包处理,得到用于广播至区块链网络的待验证区块。其中,第一共识节点执行步骤S606的具体实施方式可以参见上述图3所对应实施例中的步骤S101-步骤S102的具体实施方式,这里将不再继续进行赘述。此外,第一共识节点在生成待验证区块后,可以执行步骤S607,将与该待验证区块相关联的待打包交易缓存至第一交易池的交易恢复器中,以便其他充当验证节点的共识节点在缺失这部分交易时,能够从第一交易池的交易恢复器中快速请求到。
进一步地,当区块链网络中的第二共识节点通过第二交易池的共识组件,接收到第一共识节点所广播的待验证区块时,该第二共识节点需要对待验证区块进行区块共识,即该第二共识节点可以执行步骤S705,通过第二交易池的交易获取器,基于第二交易池获取与交易标识码相匹配的待验证交易,并将获取到的待验证交易返回至第二交易池的共识组件,以通过该第二交易池的共识组件,执行待验证交易得到验证执行结果,并基于验证执行结果以及待验证区块中的交易执行结果,生成针对待验证区块的共识结果。
若第二交易池不存在与交易标识码相匹配的交易时,则该第二共识节点可以通过第二交易池的交易获取器,基于交易标识码以及待验证区块的区块辅助信息,生成交易获取请求,进而可以执行步骤S7051以及步骤S7052,将交易获取请求通过第二交易池的交易恢复器发送至第一共识节点,以使第一共识节点在第一交易池的交易恢复器中快速查找到与交易标识码相匹配的交易(即缺失交易)。第二共识节点可以通过第二交易池的交易恢复器,执行步骤S7053,接收第一共识节点返回的缺失交易,此时,该第二共识节点同样可以基于第一共识节点对初始交易进行参数校验的具体实施方式,对接收到的缺失交易进行参数校验,在校验结果指示验证成功时,该第二共识节点可以将接收到的交易确定为待验证交易。由此可见,对于区块链网络中的任意一个共识节点而言,在交易池中除了需要主动广播自己通过客户端收到的初始交易,还增加了对某些缺失交易的拉取功能,这样将极大程度的保障了共识节点能够在一定的时间内收到全量的交易,以至于增加了共识节点的交易池的可靠性。
其中,第二共识节点执行步骤S705以及步骤S7051-步骤S7053的具体实施方式可以参见上述图3所对应实施例中的步骤S102的具体实施方式,这里将不再继续进行赘述。
进一步地,第二共识节点可以将针对待验证区块的共识结果返回至第一共识节点,以使第一共识节点对其进行分析。若基于共识结果确定区块链网络中的区块链节点达成共识,则该第一共识节点可以通过第一交易池中的交易清除器,执行步骤S608,以在第一交易池中清除待打包交易,还可以将旁枝区块中的交易重新放入第一交易池中。
与此同时,若第二共识节点基于共识结果确定区块链网络中的区块链节点达成共识,则第二共识节点同样可以通过第二交易池的交易清除器,执行步骤S706,以在第二交易池中清除与交易清除通知所指示的交易标识码相匹配的交易,还可以将旁枝区块中的交易重新放入第二交易池中。
在本申请实施例中,由于区块链网络中的第一共识节点的第一交易池与第二共识节点的第二交易池均包括相同的(N+1)个交易子缓存,这意味着本申请实施例可以将区块链网络中的共识节点的交易池由原来的单一缓存结构扩展至多个缓存结构,从而使得第一共识节点在通过第一交易池获取待打包交易时,能够并行的处理,这将削弱了共识节点的共识组件与交易组件进行交易时的操作,与交易池添加交易时对锁的竞争,这将极大地提升共识过程获取交易以及删除交易时的性能。同时,在获取和删除交易时,通过多个缓存结构进行并行的操作,这将极大程度的减少了第一共识节点基于交易池进行交易操作的等待时长,从而提高了交易获取效率。此外,第一共识节点在出块时,无需对完整的待打包交易进行打包处理,而是对用于唯一表征待打包交易携带的交易标识码进行打包处理,这不仅极大程度的缩小了待验证区块的区块尺寸,还避免了待打包交易在区块链网络中的二次无效传输,以至于极大程度的减少了对网络带宽的占用。由此可见,本申请实施例通过交易池的改进以及交易标识码的打包,能够提升整个区块链节点系统的共识性能,且交易池增加的对缺失交易的主动拉取机制,也增加了交易广播的可靠性。
进一步地,请参见图7,图7是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该基于区块链的数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该基于区块链的数据处理装置1为一个应用软件;该基于区块链的数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图7所示,该基于区块链的数据处理装置1可以运行于区块链网络中的第一共识节点,该第一共识节点可以为上述图2所对应实施例中的节点20A。该基于区块链的数据处理装置1可以包括:待打包交易获取模块10,区块广播模块20,交易清除模块30,初始交易获取模块40,参数校验模块50,交易类型确定模块60以及初始交易存储模块70。
该待打包交易获取模块10,用于从第一共识节点的第一交易池中获取待打包交易,确定待打包交易携带的交易标识码;交易标识码是由用于生成待打包交易的客户端确定的;第一交易池包括(N+1)个交易子缓存;(N+1)个交易子缓存中的每个交易子缓存均用于基于客户端生成的初始交易的初始标识码,存储初始交易;(N+1)为大于1的正整数;初始交易包括待打包交易。
其中,第一交易池包括第一类型缓存和包括(N+1)个交易子缓存的第二类型缓存;第一类型缓存中的配置交易的打包优先级高于第二类型缓存中的普通交易的打包优先级;第一交易池包括第一交易获取器;
该待打包交易获取模块10包括:交易查询单元101,数量获取单元102,第一交易获取单元103以及第二交易获取单元104。
该交易查询单元101,用于在第一共识节点成为提案节点时,通过第一共识节点的共识组件调用第一交易获取器,对第一类型缓存进行交易查询,得到交易查询结果;
该数量获取单元102,用于若交易查询结果指示第一类型缓存中不存在配置交易,则获取针对待验证区块的交易打包数量;
该第一交易获取单元103,用于从第二类型缓存的(N+1)个交易子缓存中,获取与交易打包数量相符的普通交易,将获取到的普通交易作为待打包交易。
该第二交易获取单元104,用于若交易查询结果指示第一类型缓存中存在配置交易,则从第一类型缓存中用于存储配置交易的交易队列中,获取最早进入交易队列的配置交易,将获取到的配置交易作为待打包交易。
其中,该交易查询单元101,数量获取单元102,第一交易获取单元103以及第二交易获取单元104的具体实现方式可以参见上述图3所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
该区块广播模块20,用于对交易标识码进行打包处理,得到待验证区块,将待验证区块广播至区块链网络,以使区块链网络中的第二共识节点基于第二共识节点的第二交易池以及交易标识码,生成针对待验证区块的共识结果;第二交易池包括与第一交易池相同的(N+1)个交易子缓存。
其中,该区块广播模块20包括:交易结果确定单元201,父区块哈希值获取单元202,默克尔树根确定单元203以及打包处理单元204。
该交易结果确定单元201,用于通过第一共识节点的共识组件,执行待打包交易,得到待打包交易对应的交易执行结果;
该父区块哈希值获取单元202,用于从区块链网络的区块链中获取具有最大生成时间戳的目标区块,将目标区块的区块哈希值作为待验证区块的父区块哈希值;
该默克尔树根确定单元203,用于确定交易标识码对应的交易哈希值,基于交易哈希值确定待验证区块的默克尔树根;
该打包处理单元204,用于对交易执行结果、父区块哈希值以及默克尔树根进行打包处理,得到待验证区块,将待验证区块广播至区块链网络;待验证区块的生成时间戳用于更新区块链上的最大生成时间戳。
其中,该交易结果确定单元201,父区块哈希值获取单元202,默克尔树根确定单元203以及打包处理单元204的具体实现方式可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
该交易清除模块30,用于接收第二共识节点返回的共识结果,若基于共识结果确定区块链网络中的区块链节点达成共识,则从第一交易池中清除待打包交易。
其中,第一交易池包括交易验证器以及交易分发器;
该初始交易获取模块40,用于通过第一共识节点的通信组件,获取客户端生成的携带初始标识码的初始交易;
该参数校验模块50,用于统计第一交易池的交易总数量,在交易总数量未达到交易存储数量阈值时,通过交易验证器对初始交易进行参数校验,得到验证结果;
该交易类型确定模块60,用于若验证结果指示验证成功,则将初始交易添加至交易分发器,以使交易分发器基于初始交易的交易类型字段,确定初始交易的交易类型;
该初始交易存储模块70,用于基于交易类型将初始交易存储至第一交易池。
其中,第一交易池包括第一类型缓存和第二类型缓存;第一类型缓存用于存储属于配置交易类型的配置交易;第二类型缓存用于存储属于普通交易类型的普通交易,且(N+1)个交易子缓存属于第二类型缓存;
该初始交易存储模块70包括:第一添加单元701以及第二添加单元702。
该第一添加单元701,用于若交易类型为配置交易类型,则通过交易分发器将初始交易添加至第一类型缓存,且将添加至第一类型缓存中的初始交易作为配置交易;
该第二添加单元702,用于若交易类型为普通交易类型,则调用针对初始交易的交易分发规则,通过交易分发器将初始交易添加至第二类型缓存,且将添加至第二类型缓存中的初始交易作为普通交易。
其中,该第二添加单元702包括:取模处理子单元7021,子缓存获取子单元7022以及交易添加子单元7023。
该取模处理子单元7021,用于若交易类型为普通交易类型,则调用针对初始交易的交易分发规则,基于交易分发规则,对初始标识码和(N+1)进行取模处理,得到初始标识码对应的分发参数i;i小于或者等于N;
该子缓存获取子单元7022,用于从(N+1)个交易子缓存中,获取与分发参数i相匹配的交易子缓存Hi;
该交易添加子单元7023,用于通过交易分发器,将初始交易添加至交易子缓存Hi,且将存储至交易子缓存Hi中的初始交易作为普通交易。
其中,该取模处理子单元7021,子缓存获取子单元7022以及交易添加子单元7023的具体实现方式可以参见上述图3所对应实施例中对属于普通交易类型的初始交易进行存储至普通交易缓存的描述,这里将不再继续进行赘述。
其中,该第一添加单元701以及第二添加单元702的具体实现方式可以参见上述图3所对应实施例中对初始交易进行存储的描述,这里将不再继续进行赘述。
其中,该待打包交易获取模块10,区块广播模块20,交易清除模块30,初始交易获取模块40,参数校验模块50,交易类型确定模块60以及初始交易存储模块70的具体实现方式可以参见上述图3所对应实施例中对步骤S101-步骤S103的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图8,图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该基于区块链的数据处理装置2可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该基于区块链的数据处理装置2为一个应用软件;该基于区块链的数据处理装置2可以用于执行本申请实施例提供的方法中的相应步骤。如图8所示,该基于区块链的数据处理装置2可以运行于区块链网络中的第二共识节点,该第二共识节点可以为上述图2所对应实施例中的节点20B。该基于区块链的数据处理装置2可以包括:区块获取模块100,区块共识模块200,共识结果发送模块300,以及交易清除模块400。
该区块获取模块100,用于获取区块链网络中的第一共识节点生成的待验证区块;待验证区块为第一共识节点在从第一共识节点的第一交易池中获取到待打包交易时,对待打包交易携带的交易标识码进行打包处理后所得到的;第一交易池包括(N+1)个交易子缓存;(N+1)个交易子缓存中的每个交易子缓存均用于基于客户端生成的初始交易的初始标识码,存储初始交易;(N+1)为大于1的正整数;初始交易包括待打包交易;
该区块共识模块200,用于基于第二共识节点的第二交易池以及待验证区块中的交易标识码,对待验证区块进行共识,得到针对待验证区块的共识结果;第二交易池包括与第一交易池相同的(N+1)个交易子缓存。
其中,待验证区块包括第一共识节点执行待打包交易后所得到的交易执行结果;
该区块共识模块200包括:待验证交易确定单元2010,验证结果确定单元2020以及共识结果生成单元2030。
该待验证交易确定单元2010,用于基于第二共识节点的第二交易池以及第二共识节点的共识组件,获取与待验证区块中的交易标识码相匹配的交易,将获取到的交易确定为待验证交易。
其中,第一共识节点用于在得到待验证区块时,通过第一交易池的第一交易获取器,将与待验证区块相关联的待打包交易添加至第一交易池的第一交易恢复器;
该待验证交易确定单元2010包括:交易匹配子单元20101,交易请求生成子单元20102以及交易接收子单元20103。
该交易匹配子单元20101,用于通过第二共识节点的共识组件,调用第二交易池的第二交易获取器,基于待验证区块中的交易标识码,在第二交易池中进行交易匹配,得到交易匹配结果;
其中,第二交易池包括第三类型缓存和第四类型缓存;第三类型缓存用于存储属于配置交易类型的配置交易;第四类型缓存用于存储属于普通交易类型的普通交易,且(N+1)个交易子缓存属于第四类型缓存;
该交易匹配子单元20101还具体用于:
通过第二共识节点的共识组件,调用第二交易池的第二交易获取器,基于待验证区块中的交易标识码,在第二交易池中的第三类型缓存中进行交易匹配,得到第一匹配结果;
若第一匹配结果指示匹配失败,则获取与第一共识节点相同的交易分发规则,基于交易分发规则,对待验证区块中的交易标识码以及(N+1)进行取模处理,得到查找参数j;j小于或者等于N;
在第四类型缓存的(N+1)个交易子缓存中,确定与查找参数j相匹配的交易子缓存Hj,基于待验证区块中的交易标识码,在交易子缓存Hj中进行交易匹配,得到第二匹配结果;
若第二匹配结果指示匹配失败,则生成匹配失败结果;匹配失败结果指示第二交易池中不存在与交易标识码相匹配的交易;
若第二匹配结果指示匹配成功,则生成匹配成功结果;匹配成功结果指示第二交易池中存在与交易标识码相匹配的交易;
将匹配失败结果或匹配成功结果确定为交易匹配结果。
该交易请求生成子单元20102,用于若交易匹配结果指示第二交易池中不存在与交易标识码相匹配的交易,则通过第二交易获取器,基于交易标识码以及待验证区块的区块辅助信息,生成用于发送至第一共识节点的交易获取请求;交易获取请求用于指示第一共识节点在第一交易恢复器所包括的待打包交易中,查找与交易标识码相匹配的交易;
该交易接收子单元20103,用于通过第二交易池的第二交易恢复器,接收第一共识节点返回的交易,将接收到的交易确定为待验证交易。
其中,该交易匹配子单元20101,交易请求生成子单元20102以及交易接收子单元20103的具体实现方式可以参见上述图3所对应实施例中对获取待验证交易的描述,这里将不再继续进行赘述。
该验证结果确定单元2020,用于通过第二共识节点的共识组件,执行待验证交易,得到待验证交易对应的验证执行结果;
该共识结果生成单元2030,用于基于验证执行结果以及交易执行结果,生成针对待验证区块的共识结果。
其中,该待验证交易确定单元2010,验证结果确定单元2020以及共识结果生成单元2030的具体实现方式可以参见上述图5所对应实施例中对步骤S203的描述,这里将不再继续进行赘述。
该共识结果发送模块300,用于将共识结果返回至第一共识节点,以使第一共识节点在基于共识结果确定区块链网络中的区块链节点达成共识时,从第一交易池中清除待打包交易。
该交易清除模块400,用于若第二共识节点基于共识结果确定区块链网络中的区块链节点达成共识,则通过第二交易池的交易清除器,在第二交易池中清除与待验证区块中的交易标识码相匹配的交易。
其中,该区块获取模块100,区块共识模块200,共识结果发送模块300,以及交易清除模块400的具体实现方式可以参见上述图5所对应实施例中对步骤S201-步骤S206的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图9,图9是本申请实施例提供的一种计算机设备的示意图。如图9所示,该计算机设备3000可以为上述图1对应实施例中的区块链网络中的第一共识节点或第二共识节点,该计算机设备3000可以包括:至少一个处理器3001,例如,CPU,至少一个网络接口3004,用户接口3003,存储器3005,至少一个通信总线3002。其中,通信总线3002用于实现这些组件之间的连接通信。其中,用户接口3003可以包括显示屏(Display)、键盘(Keyboard),网络接口3004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器3005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储3005可选地还可以是至少一个位于远离前述处理器3001的存储装置。如图9所示,作为一种计算机存储介质的存储器3005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图9所示的计算机设备3000中,网络接口3004主要用于进行网络通信;而用户接口3003主要用于为用户提供输入的接口;而处理器3001可以用于调用存储器3005中存储的设备控制应用程序。
应当理解,本申请实施例中所描述的计算机设备3000可执行前文图3或者图5所对应实施例中对该基于区块链的数据处理方法的描述,也可执行前文图7所对应实施例中对该基于区块链的数据处理装置1或者图8所对应实施例中对该基于区块链的数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图3和图5中各个步骤所提供的基于区块链的数据处理方法,具体可参见图3以及图5各个步骤所提供的实现方式,在此不再赘述。
计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smartmedia card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备可执行前文各实施例中对基于区块链的数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步的,请参见图10,图10是本申请实施例提供的一种基于区块链的数据处理系统的结构示意图。该基于区块链的数据处理系统3可以包含数据处理装置1010Z和数据处理装置1020Z。其中,数据处理装置1010Z可以为上述图7所对应实施例中的基于区块链的数据处理装置1,可以理解的是,该数据处理装置1010Z可以集成在区块链网络中的第一共识节点,该第一共识节点可以为上述图2所对应实施例中的节点20A,因此,这里将不再进行赘述。其中,数据处理装置1020Z可以为上述图8所对应实施例中的基于区块链的数据处理装置2,可以理解的是,该数据处理装置1020Z可以集成在上述区块链网络中的第二共识节点,该第二共识节点可以为上述图2所对应实施例中的节点20B,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的基于区块链的数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (17)
1.一种基于区块链的数据处理方法,其特征在于,所述方法由区块链网络中的第一共识节点执行,包括:
从所述第一共识节点的第一交易池中获取待打包交易,确定所述待打包交易携带的交易标识码;所述交易标识码是由用于生成所述待打包交易的客户端确定的;所述第一交易池包括(N+1)个交易子缓存;所述(N+1)个交易子缓存中的每个交易子缓存均用于基于所述客户端生成的初始交易的初始标识码,存储所述初始交易;(N+1)为大于1的正整数;所述初始交易包括所述待打包交易;
对所述交易标识码进行打包处理,得到待验证区块,将所述待验证区块广播至所述区块链网络,以使所述区块链网络中的第二共识节点基于所述第二共识节点的第二交易池以及所述交易标识码,生成针对所述待验证区块的共识结果;所述第二交易池包括与所述第一交易池相同的(N+1)个交易子缓存;
接收所述第二共识节点返回的所述共识结果,若基于所述共识结果确定所述区块链网络中的区块链节点达成共识,则从所述第一交易池中清除所述待打包交易。
2.根据权利要求1所述的方法,其特征在于,所述第一交易池包括交易验证器以及交易分发器;
所述方法还包括:
通过所述第一共识节点的通信组件,获取所述客户端生成的携带初始标识码的初始交易;
统计所述第一交易池的交易总数量,在所述交易总数量未达到交易存储数量阈值时,通过所述交易验证器对所述初始交易进行参数校验,得到验证结果;
若所述验证结果指示验证成功,则将所述初始交易添加至所述交易分发器,以使所述交易分发器基于所述初始交易的交易类型字段,确定所述初始交易的交易类型;
基于所述交易类型将所述初始交易存储至所述第一交易池。
3.根据权利要求2所述的方法,其特征在于,所述第一交易池包括第一类型缓存和第二类型缓存;所述第一类型缓存用于存储属于配置交易类型的配置交易;所述第二类型缓存用于存储属于普通交易类型的普通交易,且所述(N+1)个交易子缓存属于所述第二类型缓存;
所述基于所述交易类型将所述初始交易存储至所述第一交易池,包括:
若所述交易类型为配置交易类型,则通过所述交易分发器将所述初始交易添加至所述第一类型缓存,且将添加至所述第一类型缓存中的初始交易作为所述配置交易;
若所述交易类型为普通交易类型,则调用针对所述初始交易的交易分发规则,通过所述交易分发器将所述初始交易添加至所述第二类型缓存,且将添加至所述第二类型缓存中的初始交易作为所述普通交易。
4.根据权利要求3所述的方法,其特征在于,所述若所述交易类型为普通交易类型,则调用针对所述初始交易的交易分发规则,通过所述交易分发器将所述初始交易添加至所述第二类型缓存,且将添加至所述第二类型缓存中的初始交易作为所述普通交易,包括:
若所述交易类型为普通交易类型,则调用针对所述初始交易的交易分发规则,基于所述交易分发规则,对所述初始标识码和所述(N+1)进行取模处理,得到所述初始标识码对应的分发参数i;i小于或者等于N;
从所述(N+1)个交易子缓存中,获取与所述分发参数i相匹配的交易子缓存Hi;
通过所述交易分发器,将所述初始交易添加至所述交易子缓存Hi,且将存储至所述交易子缓存Hi中的初始交易作为所述普通交易。
5.根据权利要求1所述的方法,其特征在于,所述第一交易池包括第一类型缓存和包括所述(N+1)个交易子缓存的第二类型缓存;所述第一类型缓存中的配置交易的打包优先级高于所述第二类型缓存中的普通交易的打包优先级;所述第一交易池包括第一交易获取器;
所述从所述第一共识节点的第一交易池中获取待打包交易,包括:
在所述第一共识节点成为提案节点时,通过所述第一共识节点的共识组件调用所述第一交易获取器,对所述第一类型缓存进行交易查询,得到交易查询结果;
若所述交易查询结果指示所述第一类型缓存中不存在所述配置交易,则获取针对待验证区块的交易打包数量;
从所述第二类型缓存的所述(N+1)个交易子缓存中,获取与所述交易打包数量相符的普通交易,将获取到的普通交易作为待打包交易。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述交易查询结果指示所述第一类型缓存中存在所述配置交易,则从所述第一类型缓存中用于存储所述配置交易的交易队列中,获取最早进入所述交易队列的配置交易,将获取到的配置交易作为待打包交易。
7.根据权利要求1所述的方法,其特征在于,所述对所述交易标识码进行打包处理,得到待验证区块,将所述待验证区块广播至所述区块链网络,包括:
通过所述第一共识节点的共识组件,执行所述待打包交易,得到所述待打包交易对应的交易执行结果;
从所述区块链网络的区块链中获取具有最大生成时间戳的目标区块,将所述目标区块的区块哈希值作为待验证区块的父区块哈希值;
确定所述交易标识码对应的交易哈希值,基于所述交易哈希值确定所述待验证区块的默克尔树根;
对所述交易执行结果、所述父区块哈希值以及所述默克尔树根进行打包处理,得到所述待验证区块,将所述待验证区块广播至所述区块链网络;所述待验证区块的生成时间戳用于更新所述区块链上的最大生成时间戳。
8.一种基于区块链的数据处理方法,其特征在于,所述方法由区块链网络中的第二共识节点执行,包括:
获取所述区块链网络中的第一共识节点生成的待验证区块;所述待验证区块为所述第一共识节点在从所述第一共识节点的第一交易池中获取到待打包交易时,对所述待打包交易携带的交易标识码进行打包处理后所得到的;所述第一交易池包括(N+1)个交易子缓存;所述(N+1)个交易子缓存中的每个交易子缓存均用于基于所述客户端生成的初始交易的初始标识码,存储所述初始交易;(N+1)为大于1的正整数;所述初始交易包括所述待打包交易;
基于所述第二共识节点的第二交易池以及所述待验证区块中的所述交易标识码,对所述待验证区块进行共识,得到针对所述待验证区块的共识结果;所述第二交易池包括与所述第一交易池相同的(N+1)个交易子缓存;
将所述共识结果返回至所述第一共识节点,以使所述第一共识节点在基于所述共识结果确定所述区块链网络中的区块链节点达成共识时,从所述第一交易池中清除所述待打包交易。
9.根据权利要求8所述的方法,其特征在于,所述待验证区块包括所述第一共识节点执行所述待打包交易后所得到的交易执行结果;
所述基于所述第二共识节点的第二交易池以及所述待验证区块中的所述交易标识码,对所述待验证区块进行共识,得到针对所述待验证区块的共识结果,包括:
基于所述第二共识节点的第二交易池以及所述第二共识节点的共识组件,获取与所述待验证区块中的所述交易标识码相匹配的交易,将获取到的交易确定为待验证交易;
通过所述第二共识节点的共识组件,执行所述待验证交易,得到所述待验证交易对应的验证执行结果;
基于所述验证执行结果以及所述交易执行结果,生成针对所述待验证区块的共识结果。
10.根据权利要求9所述的方法,其特征在于,所述第一共识节点用于在得到待验证区块时,通过所述第一交易池的第一交易获取器,将与所述待验证区块相关联的待打包交易添加至所述第一交易池的第一交易恢复器;
所述基于所述第二共识节点的第二交易池以及所述第二共识节点的共识组件,获取与所述待验证区块中的所述交易标识码相匹配的交易,将获取到的交易确定为待验证交易,包括:
通过所述第二共识节点的共识组件,调用所述第二交易池的第二交易获取器,基于所述待验证区块中的所述交易标识码,在所述第二交易池中进行交易匹配,得到交易匹配结果;
若所述交易匹配结果指示所述第二交易池中不存在与所述交易标识码相匹配的交易,则通过所述第二交易获取器,基于所述交易标识码以及所述待验证区块的区块辅助信息,生成用于发送至所述第一共识节点的交易获取请求;所述交易获取请求用于指示所述第一共识节点在所述第一交易恢复器所包括的待打包交易中,查找与所述交易标识码相匹配的交易;
通过所述第二交易池的第二交易恢复器,接收所述第一共识节点返回的交易,将接收到的交易确定为待验证交易。
11.根据权利要求10所述的方法,其特征在于,所述第二交易池包括第三类型缓存和第四类型缓存;所述第三类型缓存用于存储属于配置交易类型的配置交易;所述第四类型缓存用于存储属于普通交易类型的普通交易,且所述(N+1)个交易子缓存属于所述第四类型缓存;
所述通过所述第二共识节点的共识组件,调用所述第二交易池的第二交易获取器,基于所述待验证区块中的所述交易标识码,在所述第二交易池中进行交易匹配,得到交易匹配结果,包括:
通过所述第二共识节点的共识组件,调用所述第二交易池的第二交易获取器,基于所述待验证区块中的所述交易标识码,在所述第二交易池中的第三类型缓存中进行交易匹配,得到第一匹配结果;
若所述第一匹配结果指示匹配失败,则获取与所述第一共识节点相同的交易分发规则,基于所述交易分发规则,对所述待验证区块中的所述交易标识码以及所述(N+1)进行取模处理,得到查找参数j;j小于或者等于N;
在所述第四类型缓存的(N+1)个交易子缓存中,确定与所述查找参数j相匹配的交易子缓存Hj,基于所述待验证区块中的所述交易标识码,在所述交易子缓存Hj中进行交易匹配,得到第二匹配结果;
若所述第二匹配结果指示匹配失败,则生成匹配失败结果;所述匹配失败结果指示所述第二交易池中不存在与所述交易标识码相匹配的交易;
若所述第二匹配结果指示匹配成功,则生成匹配成功结果;所述匹配成功结果指示所述第二交易池中存在与所述交易标识码相匹配的交易;
将所述匹配失败结果或所述匹配成功结果确定为交易匹配结果。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若所述第二共识节点基于所述共识结果确定所述区块链网络中的区块链节点达成共识,则通过所述第二交易池的交易清除器,在所述第二交易池中清除与所述待验证区块中的所述交易标识码相匹配的交易。
13.一种基于区块链的数据处理装置,其特征在于,包括:
待打包交易获取模块,用于从第一共识节点的第一交易池中获取待打包交易,确定所述待打包交易携带的交易标识码;所述交易标识码是由用于生成所述待打包交易的客户端确定的;所述第一交易池包括(N+1)个交易子缓存;所述(N+1)个交易子缓存中的每个交易子缓存均用于基于所述客户端生成的初始交易的初始标识码,存储所述初始交易;(N+1)为大于1的正整数;所述初始交易包括所述待打包交易;
区块广播模块,用于对所述交易标识码进行打包处理,得到待验证区块,将所述待验证区块广播至区块链网络,以使所述区块链网络中的第二共识节点基于所述第二共识节点的第二交易池以及所述交易标识码,生成针对所述待验证区块的共识结果;所述第二交易池包括与所述第一交易池相同的(N+1)个交易子缓存;
交易清除模块,用于接收所述第二共识节点返回的所述共识结果,若基于所述共识结果确定所述区块链网络中的区块链节点达成共识,则从所述第一交易池中清除所述待打包交易。
14.一种基于区块链的数据处理装置,其特征在于,包括:
区块获取模块,用于获取区块链网络中的第一共识节点生成的待验证区块;所述待验证区块为所述第一共识节点在从所述第一共识节点的第一交易池中获取到待打包交易时,对所述待打包交易携带的交易标识码进行打包处理后所得到的;所述第一交易池包括(N+1)个交易子缓存;所述(N+1)个交易子缓存中的每个交易子缓存均用于基于所述客户端生成的初始交易的初始标识码,存储所述初始交易;(N+1)为大于1的正整数;所述初始交易包括所述待打包交易;
区块共识模块,用于基于第二共识节点的第二交易池以及所述待验证区块中的所述交易标识码,对所述待验证区块进行共识,得到针对所述待验证区块的共识结果;所述第二交易池包括与所述第一交易池相同的(N+1)个交易子缓存;
共识结果发送模块,用于将所述共识结果返回至所述第一共识节点,以使所述第一共识节点在基于所述共识结果确定所述区块链网络中的区块链节点达成共识时,从所述第一交易池中清除所述待打包交易。
15.一种计算机设备,其特征在于,包括:处理器和存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至12任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1至12任一项所述的方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,所述计算机程序适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1至12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210653920.8A CN117255130A (zh) | 2022-06-10 | 2022-06-10 | 一种基于区块链的数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210653920.8A CN117255130A (zh) | 2022-06-10 | 2022-06-10 | 一种基于区块链的数据处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117255130A true CN117255130A (zh) | 2023-12-19 |
Family
ID=89133716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210653920.8A Pending CN117255130A (zh) | 2022-06-10 | 2022-06-10 | 一种基于区块链的数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117255130A (zh) |
-
2022
- 2022-06-10 CN CN202210653920.8A patent/CN117255130A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111344706B (zh) | 管理区块链上的交易的方法和系统 | |
KR102432731B1 (ko) | 네트워크 내의 분산 데이터베이스를 위한 방법 및 장치 | |
CN110245956B (zh) | 一种基于异步多链的区块链交易确认方法及系统 | |
CN112235420B (zh) | 基于区块链的数据同步方法、系统及相关设备 | |
WO2023045620A1 (zh) | 一种交易数据处理方法、装置、计算机设备以及存储介质 | |
US20230074102A1 (en) | Method and apparatus for processing data based on block chain, device and readable storage medium | |
Wang et al. | Capacity of blockchain based Internet-of-Things: Testbed and analysis | |
CN113326165B (zh) | 基于区块链的数据处理方法、设备及计算机可读存储介质 | |
JP5801482B2 (ja) | キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム | |
JP2023544422A (ja) | ネットワーク内の分散データベースのための方法及び装置 | |
CN112600678A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
WO2023020242A1 (zh) | 基于区块链的数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
KR20230101883A (ko) | 머클 증명 엔티티 | |
US11720453B2 (en) | High performance distributed system of record with unspent transaction output (UTXO) database snapshot integrity | |
WO2019024631A1 (zh) | 区块链轻量化处理方法、区块链节点及存储介质 | |
WO2023142605A1 (zh) | 一种基于区块链的数据处理方法和相关装置 | |
WO2023160040A1 (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN116668456A (zh) | 一种基于dag多节点共识的区块生成方法、装置及系统 | |
CN117255130A (zh) | 一种基于区块链的数据处理方法、装置、设备及介质 | |
CN116701452A (zh) | 数据处理方法、相关设备、存储介质及程序产品 | |
CN117010889A (zh) | 数据处理方法、装置及设备、介质、产品 | |
CN117376366A (zh) | 区块链交易处理方法、装置、介质及电子设备 | |
Zhang et al. | Blockchain data provenance scheme based on grouping consensus and bm tree | |
Chen et al. | Practical cloud storage auditing using serverless computing | |
WO2024037117A1 (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 |