CN111861744A - 一种实现区块链交易并行化的方法及区块链节点 - Google Patents

一种实现区块链交易并行化的方法及区块链节点 Download PDF

Info

Publication number
CN111861744A
CN111861744A CN202010613063.XA CN202010613063A CN111861744A CN 111861744 A CN111861744 A CN 111861744A CN 202010613063 A CN202010613063 A CN 202010613063A CN 111861744 A CN111861744 A CN 111861744A
Authority
CN
China
Prior art keywords
transaction
transactions
independent
processing
threads
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
Application number
CN202010613063.XA
Other languages
English (en)
Inventor
丁有振
杨春福
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiansu Network Technology Co ltd
Original Assignee
Shanghai Jiansu Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Jiansu Network Technology Co ltd filed Critical Shanghai Jiansu Network Technology Co ltd
Priority to CN202010613063.XA priority Critical patent/CN111861744A/zh
Publication of CN111861744A publication Critical patent/CN111861744A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及区块链交易并行化技术领域,提供了一种实现区块链交易并行化的方法及区块链节点,其方法包括:在获取区块链节点对应的交易池中待打包的交易集合之后,遍历交易集合中的每一个交易,对交易中的独立交易进行过滤,取出所述交易集合中的独立交易并将其存入对应的独立交易缓存区中,后将所述交易集合中余下的关联交易保留于所述交易集合中;启动一用于处理所述关联交易的关联交易处理线程,并行启动处理所述独立交易的一个或多个独立交易处理线程。在确保关联交易能够有序正确的被处理的前提下,对交易并行化处理。轻松实现链上交易的并行化,不会给开发者带来任何心智负担,具有简单、安全、高效、易维护的特点。

Description

一种实现区块链交易并行化的方法及区块链节点
技术领域
本发明涉及区块链交易并行化的技术领域,尤其涉及一种实现区块链交易并行化的方法及区块链节点。
背景技术
链上处理性能不足,是制约区块链发展的关键瓶颈之一。不同于传统的中心化服务可以通过堆叠硬件提高计算能力,区块链全网的交易处理能力并不会随着网络内节点个数的增加而提高,反而由于其单节点全链冗余备份计算的特性,呈现出某种程度的木桶效应。即理论上,全网交易的处理能力,由网络内性能最差的那个节点决定。当然,某区块链是否会出现短板效应,需要具体问题具体分析,需要考虑该区块链的整体架构、选用的共识算法、网络通信模型等诸多因素。但区块链的处理能力受限于单节点性能则是毋庸置疑的。
对于区块链性能不足的问题,业界提出了许多改进方向,其中比较热门的方向之一是交易并行化技术。然而,区块链交易并行化技术在业界从提出至今,已有多年的时间,但始终难有可行的落地技术方案。其根本原因还是该技术实现起来太过复杂,需要考虑的因素太多。在传统的并行化处理中,如果两个线程需要访问和修改同一处数据,需要用互斥锁、临界区、或信号量等竞争技术保证,在同一时间点上只有一个线程拥有数据的处理权。但区块链交易的并行化相对于传统程序的并行化,除了要解决数据处理权竞争问题之外,还要保证处理的先后顺序。因为,在区块链中,两笔交易执行的顺序不同,其最终结果也可能不同。例如,假设B地址有10元钱,第一笔交易是A地址给B地址转账40元,第二笔交易是B地址转账给C地址50元。那么显而易见,这两笔交易执行的顺序不同,自然结果就不同。如果这两笔交易放在不同线程并行化处理,很可能不同的节点得出不同的执行结果,因为不同的操作系统的线程调度算法是不同的。除此之外,一般情况下,交易至少涉及到两个地址,即源地址和目的地址。一个区块中,可以有多笔交易。一笔交易的目的地址在另外一笔交易中可能是源地址,也可能一个源地址发送多笔不同的交易请求,或者多笔不同交易指向同一个目的地址。那么,这种特性,在理论上将为被计算数据带来无限关联性。如果将区块内的交易集合分成若干组,交由若干线程并行化执行,那么线程之间将因这些复杂的关联地址形成难以解析的资源竞争问题。经过以上举例浅析,相信大家对区块链交易并行化的技术难度都能有一个简单直观的认识。
在专利申请“CN109636384A-一种并行化执行区块链交易的方法、装置及系统”中公开了“为了解决现有的区块链交易执行方式效率较低的问题,本说明书实施例提供一种并行化执行区块链交易的方法、装置及系统,技术方案如下:根据本说明书实施例的第1方面,提供一种并行化执行区块链交易的方法,包括:针对区块链网络中的每个节点,该节点获取待写入区块;针对所述待写入区块中的每个交易,该交易的执行结果为,创设一个存储地址并存入信息,或更新一个存储地址上存储的信息;从所述待写入区块中读取各交易,并将各交易组织成N个交易队列;N大于1;同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易;将所述待写入区块写入区块链。”从上述专利申请的背景技术部分公开的内容“在有的区块链应用场景下,不存在会对不止一个存储地址上存储的信息进行更新的交易。在这些区块链应用场景下,采用上述的串行化的交易执行方式,会导致交易执行效率较低。”可知上述技术方案是基于在有的区块链应用场景下,不存在会对不止一个存储地址上存储的信息进行更新的交易,提出的一种并行化的处理方法。当出现关联交易时,即会对不止一个存储地址上存储的信息进行更新的交易时,无法使用上述并行化执行区块链交易的方法进行交易处理。
在专利申请“CN108846749A-一种基于区块链技术的分片化的交易执行系统及方法”中公开了“第一方面,提供了一种基于区块链技术的分片化的交易执行系统,包括第一总线和区块链模块,还包括两个以上执行模块;所述执行模块通过第一总线获取所述区块链模块的最新出块信息及其交易信息,其中,每个执行模块内置一执行条件,且各个执行模块的执行条件构成执行集合中互不相交的子集;当一执行模块判断最新出块信息中的交易信息与其执行条件匹配时,由该执行模块执行该最新出块信息中的交易信息,并将执行结果返回给所述区块链模块。可选的,一执行模块判断最新出块信息中的交易信息与其执行条件匹配具体为:所述至少两个执行模块中的每一个执行模块内置有一张路由表,各个执行模块所内置的路由表中包括该执行模块能够执行的交易帐户地址;所述执行模块将最新出块信息中的交易信息的交易帐户地址信息与其能够执行的交易帐户地址进行比对,如果比对成功,则判断最新出块信息中的交易信息与其执行条件匹配。可选的,所述最新出块信息中的交易信息的交易帐户地址信息为16进制的哈希值;所述各个执行模块所内置的路由表中的该执行模块能够执行的交易帐户地址为16进制的哈希值。可选的,所述交易信息的交易帐户地址信息至少包括两段哈希值,所述执行模块能够执行的交易帐户地址至少包括两段哈希值,所述执行模块将最新出块信息中的交易信息的交易帐户地址信息与其能够执行的交易帐户地址进行比对时,比对所述交易信息的交易帐户地址信息中的第一段哈希值与所述执行模块能够执行的交易帐户地址的第一段哈希值,如果两者相同,则比对成功;如果两者不同,则比对失败。可选的,如果比对失败,则该执行模块判断最新出块信息中的交易信息与其执行条件不匹配时,该执行模块不执行该交易信息。可选的,所述两个以上执行模块并行的从所述第一总线获取所述区块链模块的最新出块信息及其交易信息,并行的将执行结果返回给所述区块链模块。可选的,所述区块链模块具体为许可链模块;所述第一总线为消息总线(MQ);所述区块链模块用于存储所有出块信息及其交易信息,以及执行结果,作为当前状态(state)。”上述技术方案中,需要对交易账户的地址进行分组,分别有不同的执行模块进行处理。然而,一个交易的源地址和目的地址同时出现在两个不同的执行模块的执行条件中时,上述技术方案对当前交易将无法执行。
综上所述,在现有技术中,针对于区块链中的交易并行化技术,始终难有可行的落地技术方案。即使是如上述两个专利申请中提出了对交易并行化处理的思路,但是,针对于关联交易的处理能力仍然不足。
发明内容
针对上述问题,本发明的目的在于提供一种实现区块链交易并行化的方法及区块链节点,通过将独立交易反向过滤出来,对区块链交易中的独立交易、关联交易均进行良好地处理,具有确保每一笔交易都能够正确执行的优点。
我们在观测区块链交易的过程中发现,一般情况下,一个区块内的大部分交易,都不存在地址关联的情况,即交易地址关联只是偶然的小概率事件。但是,如果要实现交易并行化技术,就必须能够处理这种交易地址关联的情况。而对这种小概率情况,却不得不消耗大部分精力去建立复杂的模型和算法去处理。所以,不同于其他技术方案希望通过复杂的交易分组算法和竞争地址协调算法来解决交易并行化问题,我们提出了一种通过关联交易反向过滤法来实现区块链交易并行化的方案。
传统的链上并行化方案,大多通过复杂的交易分组算法和竞争资源协调算法实现,往往实现起来困难,易出问题。出了问题也难以定位,而且会给后期升级和维护带来很大的压力。与其相比,关联交易反向过滤法并行化技术,可以轻松实现链上交易的并行化,不会给开发者带来任何心智负担,具有简单、安全、高效、易维护的特点。
本发明的上述发明目的是通过以下技术方案得以实现的:
一种实现区块链交易并行化的方法,包括以下步骤:
获取区块链节点对应的交易池中待打包的交易集合;
遍历所述交易集合中的每一个交易,对所述交易中的独立交易进行过滤,取出所述交易集合中的所述独立交易并将其存入对应的独立交易缓存区中,后将所述交易集合中余下的关联交易保留于所述交易集合中;
启动一用于处理所述关联交易的关联交易处理线程,并行启动处理所述独立交易的一个或多个独立交易处理线程,其中,启动所述独立交易处理线程的个数,以依据包括所述独立交易与所述关联交易个数的比值、所述关联交易处理线程的处理时间、所述区块链节点的处理性能在内的因素的并行进程智能算法来确定。
进一步地,遍历所述交易集合中的每一个所述交易,对所述交易中的所述独立交易进行过滤,取出所述交易集合中的所述独立交易并将其存入对应的所述独立交易缓存区中,后将所述交易集合中余下的所述关联交易保留于所述交易集合中,具体为:
遍历所述交易集合中的每一个所述交易,并用当前迭代交易的包括源地址和目的地址在内的地址,与所述交易集合中的所有的所述交易进行对比;
若在所述交易集合中存在包括源地址和目的地址在内的任意一个地址与所述当前迭代交易的包括源地址和目的地址在内的任意一个地址相同的所述交易,则将所述当前迭代交易和与所述当前迭代交易的地址相同的所述交易,标记为所述关联交易,保留于所述交易集合中;
若在所述交易集合中,不存在包括源地址和目的地址在内的任意一个地址与所述当前迭代交易的包括源地址和目的地址在内的任意一个地址相同的所述交易,则取出所述当前迭代交易作为所述独立交易,存入所述独立交易缓存区中。
进一步地,所述并行进程智能算法,具体为:
使用所述独立交易的个数除以所述关联交易的个数,并加上预设的线程计算常量,计算得到处理所述交易所需要的预计算线程数量;
根据所述区块链节点的处理性能对线程总数设置上限,若所述预计算线程数量小于所述线程总数的上限,最终开启的线程的数量为所述预计算线程数量,否则,所述最终开启的线程的数量为所述线程总数的上限;
使用所述最终开启的线程中的一个线程作为所述关联交易处理线程,剩余的所述最终开启的线程作为所述独立交易处理线程。
进一步地,所述预设的线程计算常量根据所述关联交易的数量进行动态调整。
进一步地,在对所述交易中的所述独立交易进行过滤时,还包括:将所述独立交易进行过滤的过程与所述区块链节点共识的过程并发执行。
进一步地,在对所述交易中的所述独立交易进行过滤时,还包括:对所述独立交易过滤的过程进行并发处理,具体为:
将所述交易集合拆分为若干个交易集合子集,将所述交易集合子集进行并发处理;
开启若干个线程同时遍历每一个所述交易集合子集,并用每一个所述交易集合子集中的所述当前迭代交易与原始的所述交易集合中的所述交易进行对比;
若对比后所述当前迭代交易为所述关联交易,保留于所述交易集合子集中,否则为所述独立交易,存入所述独立交易缓存区中;
针对于所述的交易集合子集中的剩余所述交易进行合并,替换原始的所述交易集合。
一种区块链节点,包括交易发起模块,交易同步模块,交易并行化模块;
所述交易发起模块,用于通过区块链节点的账户地址参与到区块链共识中,通过所述账户地址发起交易;
所述交易同步模块,用于接收并同步区块链网络中所述区块链节点所发起的所述交易,并将所述交易存入交易池中;
所述交易并行化模块,用于对所述交易池中待打包的交易集合,进行交易并行化处理。
进一步地,所述交易并行化模块,具体包括:
独立交易过滤子模块,用于在获取所述区块链节点对应的交易池中待打包的交易集合之后,遍历所述交易集合中的每一个所述交易,对所述交易中的独立交易进行过滤,取出所述交易集合中的所述独立交易并将其存入对应的独立交易缓存区中,后将所述交易集合中余下的关联交易保留于所述交易集合中;
并行化处理子模块,用于启动一用于处理所述关联交易的关联交易处理线程,并行启动处理所述独立交易的一个或多个独立交易处理线程,其中,启动所述独立交易处理线程的个数,以依据包括所述独立交易与所述关联交易个数的比值、所述关联交易处理线程的处理时间、所述区块链节点的处理性能在内的因素的并行进程智能算法来确定。
进一步地,所述独立交易过滤子模块,还包括:
并发过滤单元,用于对所述独立交易过滤的过程进行并发处理,具体为:将所述交易集合拆分为若干个交易集合子集,将所述交易集合子集进行并发处理;开启若干个线程同时遍历每一个所述交易集合子集,并用每一个所述交易集合子集中的所述当前迭代交易与原始的所述交易集合中的所述交易进行对比;若对比后所述当前迭代交易为所述关联交易,保留于所述交易集合子集中,否则为所述独立交易,存入所述独立交易缓存区中;针对于所述的交易集合子集中的剩余所述交易进行合并,替换原始的所述交易集合。
一种实现区块链交易并行化的系统,包括区块链网络,若干个区块链节点;
所述区块链网络,用于接收所述区块链网络中的所有的所述区块链节点,发起的交易,并将所述交易广播到每一个所述区块链节点中;
所述区块链节点,用于发起所述交易,并接收所述区块链网络中广播的所述交易,并对所述交易进行并行化的处理,具体包括:
交易发起模块,用于通过区块链节点的节点地址参与到区块链共识中,通过所述节点地址发起交易;
交易同步模块,用于接收并同步区块链网络中所述区块链节点所发起的所述交易,并将所述交易存入交易池中;
交易并行化模块,用于对所述交易池中待打包的交易集合,进行交易并行化处理。
与现有技术相比,本发明包括以下至少一种有益效果是:
(1)通过提供一种实现区块链交易并行化的方法,在获取区块链节点对应的交易池中待打包的交易集合之后,遍历交易集合中的每一个交易,对交易中的独立交易进行过滤,取出所述交易集合中的所述独立交易并将其存入对应的独立交易缓存区中,后将所述交易集合中余下的关联交易保留于所述交易集合中;启动一用于处理所述关联交易的关联交易处理线程,并行启动处理所述独立交易的一个或多个独立交易处理线程。上述技术方案,通过将独立交易从交易集合中过滤出来,分别使用不同的处理线程同时执行关联交易和独立交易,并行启动一个或多个独立交易处理线程用于处理独立交易。在确保关联交易能够有序正确的被处理的前提下,对交易并行化处理。轻松实现链上交易的并行化,不会给开发者带来任何心智负担,具有简单、安全、高效、易维护的特点。
(2)通过使用依据包括所述独立交易与所述关联交易个数的比值、所述关联交易处理线程的处理时间、所述区块链节点的处理性能在内的因素的并行进程智能算法,确定得到启动独立交易处理线程的个数。综合的考虑各种不同的因素对独立交易处理线程的个数进行计算,使得开启的线程的个数能够在对所有的交易进行快速处理的前提下,又能兼顾到服务器的性能,不造成过多的资源的开销。
(3)通过将所述独立交易进行过滤的过程与所述区块链节点共识的过程并发执行,因区块链共识的过程一般时间开销不俗,将独立交易过滤的过程与共识过程并行处理,将不会带来额外的时间开销,只会因为交易的并行执行,带来性能的提升。
(4)通过当待打包交易集合太大时,对独立交易过滤的过程进行并发处理,节省了对独立交易过滤的时间,提高了过滤的效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为本发明区块链网络的框架图;
图2为本发明一种实现区块链交易并行化的方法的整体流程图;
图3为本发明一种区块链节点的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
链上处理性能不足,是制约区块链发展的关键瓶颈之一。理论上,全网交易的处理能力,由网络内性能最差的那个节点决定。对于区块链性能不足的问题,业界提出了许多改进方向,其中比较热门的方向之一是交易并行化技术。然而,区块链交易并行化技术在业界从提出至今,已有多年的时间,但始终难有可行的落地技术方案。即使是在某些专利申请中已经提出了对交易并行化处理的思路,但是,针对于关联交易的处理能力仍然不足。
基于以上应用场景,本发明的核心思路为:在获取区块链节点对应的交易池中待打包的交易集合之后,遍历交易集合中的每一个交易,对交易中的独立交易进行过滤,取出所述交易集合中的所述独立交易并将其存入对应的独立交易缓存区中,后将所述交易集合中余下的关联交易保留于所述交易集合中;启动一用于处理所述关联交易的关联交易处理线程,并行启动处理所述独立交易的一个或多个独立交易处理线程。
本发明的一个显著特点是:通过将独立交易从交易集合中过滤出来,分别使用不同的处理线程同时执行关联交易和独立交易,并并行启动一个或多个独立交易处理线程用于处理独立交易。在确保关联交易能够有序正确的被处理的前提下,对交易并行化处理。轻松实现链上交易的并行化,不会给开发者带来任何心智负担,具有简单、安全、高效、易维护的特点。
如图1所示,为本发明区块链网络的架构图。区块链网络是由无数个区块链节点组成,在每一个区块链节点中都维护着一个交易池,用来暂存尚未被加入到区块的交易记录。同时节点还要将交易传播到网络中,其他节点对交易进行验证,无误以后也加入到自己的交易池中。在将交易添加到交易池中后,每一个本发明中的区块链节点将获取本节点对应的交易池中的待打包的交易集合,对交易集合中的独立交易进行过滤,以利于后续对关联交易和独立交易做并行化的处理。
第一实施例
如图2所示,本实施例提供了一种实现区块链交易并行化的方法,包括以下步骤:
S1:获取区块链节点对应的交易池中待打包的交易集合。
具体地,当需要对区块链中的交易进行并行化处理时,由于待打包的交易在被处理之前,是存储于每一个区块链节点对应的交易池中的,因此,在对区块链中的交易进行并行化处理之前,首先需要取出交易池中的待打包的交易,形成一个交易集合,以利于后续根据交易集合中的交易,对独立交易进行过滤。
一般来说,交易池中的交易是已经提前排好了序的,即交易池内的交易是有序的,后续对交易进行过滤并处理基于有序的,提前排好序的交易进行。
当交易池中的交易无序时,可以提前对交易集合中的交易进行排序,例如,依据交易的发起时间、账户地址、账户序号、交易费等因素对交易集合中的交易进行排序,排序的具体方式本实施例不做一一列举。此外,本发明也可以对无序的交易进行反向过滤,从中找出独立交易。不过,后续启动一关联交易处理线程来对关联交易进行处理时,则至少保证这些关联交易是有序的。
S2:遍历所述交易集合中的每一个交易,对所述交易中的独立交易进行过滤,取出所述交易集合中的所述独立交易并将其存入对应的独立交易缓存区中,后将所述交易集合中余下的关联交易保留于所述交易集合中。
具体地,在获取到区块链节点对应的交易池中待打包的交易集合之后,在启动多个线程对交易进行处理之前,需要对交易集合中的独立交易与关联交易进行过滤,此为本发明的关键所在,将独立交易与关联交易分离开,后续通过不同的线程来处理独立交易和关联交易,实现区块链交易的并行化。
上述步骤S2中,具体的执行步骤为:
S21:遍历所述交易集合中的每一个所述交易,并用当前迭代交易的包括源地址和目的地址在内的地址,与所述交易集合中的所有的所述交易进行对比。
具体地,在本实施例中,在对独立交易和关联交易进行过滤时,需要对交易集合中的每一个交易进行遍历。对于当前正在遍历的当前迭代交易,首先需要获取当前迭代交易的包括源地址和目的地址在内的地址,使用任意一个地址与交易集合中的所有的交易进行对比。
S22:若在所述交易集合中存在包括源地址和目的地址在内的任意一个地址与所述当前迭代交易的包括源地址和目的地址在内的任意一个地址相同的所述交易,则将所述当前迭代交易和与所述当前迭代交易的地址相同的所述交易,标记为所述关联交易,保留于所述交易集合中。
具体地,在本实施例中,只需要当前迭代交易中的任意一个地址与交易集合中的任意一个交易中的任意一个地址相同的,都属于关联交易,两个交易都标记为关联交易,保留于交易集合中,最后,当所有的交易全部遍历完成以后,保留在交易集合中的交易,将全部为关联交易。
S23:若在所述交易集合中,不存在包括源地址和目的地址在内的任意一个地址与所述当前迭代交易的包括源地址和目的地址在内的任意一个地址相同的所述交易,则取出所述当前迭代交易作为所述独立交易,存入所述独立交易缓存区中。
具体地,在本实施例中,若在交易集合遍历的过程中,当前迭代交易与交易集合中的任意一个交易对比,包括源地址和目的地址在内的任意一个地址都与交易集合中的任意一个交易的任意一个地址都不相同,则当前交易为独立交易。
需要说明的是,在对交易集合进行遍历之前,需要单独开辟一个存储空间,作为独立交易的缓存区,在当前迭代交易被判断为独立交易以后,需要将当前迭代交易从交易集合中取出,存入独立交易缓存区中,后续通过单独的线程对独立交易进行处理。
当完成当前迭代交易以后,则继续迭代处理下一笔交易,即查找该交易在交易集合中是否存在相同的交易,如果有,也直接取出放到独立交易缓存区中。如此循环迭代,直到遍历完整个交易集合,取出其中所有的独立交易。遍历结束后,所有留在交易集合内的交易,即未被取出放入独立缓存区的交易,我们称之为关联交易。
独立交易缓存区内的交易,是与任何交易都不存在相同地址的,无论何种形式的相同。所以,独立交易缓存区内的任何两笔交易之间,都不存在数据竞争问题,也无依赖关系。那么,缓存区内的交易都是可以并行化处理的。
S3:启动一用于处理所述关联交易的关联交易处理线程,并行启动处理所述独立交易的一个或多个独立交易处理线程,其中,启动所述独立交易处理线程的个数,以依据包括所述独立交易与所述关联交易个数的比值、所述关联交易处理线程的处理时间、所述区块链节点的处理性能在内的因素的并行进程智能算法来确定。
具体地,在对独立交易和关联交易进行过滤之后,就需要开启处理线程对独立交易和关联交易进行处理。
由于留在交易集合中的关联交易具有关联性,所以针对于关联交易只需要开启一个线程来作为关联交易处理线程来处理所有的关联交易。需要注意的是,通过关联交易处理线程来处理关联交易时,必须按照交易集合中交易已经排好的顺序来依次处理关联交易,否则关联交易的处理结果将有可能不正确。
在关联交易处理线程开启完成以后,需要并行的开启一个或多个独立交易处理线程来处理所有的独立交易。理论上来说,可以开启无数个独立交易处理线程来处理独立交易,但是基于服务器资源的利用率,独立交易的处理效率等诸多因素,我们需要计算出一个最佳的开启独立交易处理线程的个数来处理独立交易。
具体地,启动独立交易处理线程的个数,以依据包括独立交易与关联交易个数的比值、关联交易处理处理线程的处理时间、区块链节点的处理性能在内的因素的并行进程智能算法确定,其中,并行进程智能算法,具体的计算过程为:
S31:使用所述独立交易的个数除以所述关联交易的个数,并加上预设的线程计算常量,计算得到处理所述交易所需要的预计算线程数量。
具体地,我们使用独立交易的个数除以关联交易的个数并对计算得到的商进行下取整,得到一个数值,为独立交易与关联交易相比的倍数,再加上一个预设的线程计算常量,计算得到的数值即为处理所有交易需要的预计算线程数量。
其中,所述预设的线程计算常量根据所述关联交易的数量进行动态调整,具体地:根据关联交易的数量以及处理完关联交易大概的时间,预设一个合理的线程计算常量,最终的目的在于确保所开启的独立交易处理线程的结束时间与关联交易处理线程的结束时间,尽可能的相近。
举个例子来说,我们以独立交易个数i,除以关联交易个数s,得到的倍数m再加上2(预设的线程计算常量)作为并行线程的数量。例如,如果独立交易的个数i,小于关联交易的个数s,则m=i/s=0,m+2=2。那么,就简单地将交易的执行分为2个线程,一个处理关联交易,一个处理独立交易,二者并行处理。如果独立交易个数i超过关联交易个数s,但未达到关联交易个数的2倍,即m=i/s=1,m+2=3,则启动三个线程,一个线程处理关联交易,两个线程处理独立交易,以此类推。
需要说明的是,以上列举的并行进程智能算法,以及并行进行智能算法的具体举例,只是本发明的一种优选的计算方案,还会有很多其他的计算处理线程个数的算法,都属于本发明的保护范围。本实施例不再赘述。
S32:根据所述区块链节点的处理性能对线程总数设置上限,若所述预计算线程数量小于所述线程总数的上限,最终开启的线程的数量为所述预计算线程数量,否则,所述最终开启的线程的数量为所述线程总数的上限。
具体地,需要说明的是,处理所有交易需要的预计算线程数量并不一定是最终开启的线程的个数,最终开启的线程的个数还会受限于区块链节点的处理性能。一般情况下,每个区块链内的交易大部分都会是独立交易。因为多个关联交易往往会被交易者打包在一起,进行事务处理,即原子性批量处理。非事务处理的关联交易基本都是偶尔性和随机性造成的。所以,也就是说,一般上述举例中得到的倍数m的值将会很大。但如果m的值太大,将开辟太多的线程,但过多的线程并不能带来性能的线性提升,反而会造成过多的资源开销。因此,需要综合考虑区块链节点的处理性能,对线程开启的总数设置一个上限。若所述预计算线程数量小于所述线程总数的上限,最终开启的线程的数量为所述预计算线程数量,否则,所述最终开启的线程的数量为所述线程总数的上限。
举个例子来说,可以按照区块链节点的CPU的内核数来设置线程总数的上限,比如说,将上限设置为当前区块链节点CPU内核数的两倍。如:当CPU是4核的,即便m的值超过8,并行化的线程数量最多只能设置到8。
S33:使用所述最终开启的线程中的一个线程作为所述关联交易处理线程,剩余的所述最终开启的线程作为所述独立交易处理线程。
因此,本发明的方案的整体思路是传统并行化方案的逆向思维。如果不能很好的对交易分组,并解决关联交易的资源竞争,就将所有的独立交易反向过滤出来,与关联交易分开,然后根据独立交易对关联交易的倍数,采取并行化策略。
第二实施例
与第一实施例相比,步骤基本相同,不同点在于:在对所述交易中的所述独立交易进行过滤时,还包括:将所述独立交易进行过滤的过程与所述区块链节点共识的过程并发执行。
具体地,对独立交易的过滤过程,可以与共识并行化执行。因为联盟链大多采用传统分布式一致性算法作为共识算法,这类算法至少有两阶段通信协议,且需要对通信消息进行复杂的处理,所以往往时间开销不俗。而公链所采用pow算法在共识时间消耗上更长,所以,将独立交易的过滤过程和共识过程并行处理,将不会带来额外的时间开销,只会因为交易的并行执行,带来性能的提升。
第三实施例
与第一实施例相比,步骤基本相同,不同点在于:在对所述交易中的所述独立交易进行过滤时,还包括:对所述独立交易过滤的过程进行并发处理,具体为:
将所述交易集合拆分为若干个交易集合子集,将所述交易集合子集进行并发处理。开启若干个线程同时遍历每一个所述交易集合子集,并用每一个所述交易集合子集中的所述当前迭代交易与原始的所述交易集合中的所述交易进行对比。若对比后所述当前迭代交易为所述关联交易,保留于所述交易集合子集中,否则为所述独立交易,存入所述独立交易缓存区中。针对于所述的交易集合子集中的剩余所述交易进行合并,替换原始的所述交易集合。
需要说明的是,当判断当前迭代交易是否为关联交易时,必须与原始的交易集合中的所有的交易进行对比,每一个交易集合子集迭代完成以后,需要将所有的交易集合子集中剩余的交易进行合并,合并后的集合即为包含所有关联交易的集合。
第四实施例
如图3所示,本实施例提供了一种区块链节点,其特征在于,包括交易发起模块1,交易同步模块2,交易并行化模块3;
所述交易发起模块1,用于通过区块链节点的账户地址参与到区块链共识中,通过所述账户地址发起交易;此为区块链节点的基本功能,通过节点地址向区块链网络中发送交易。
所述交易同步模块2,用于接收并同步区块链网络中所述区块链节点所发起的所述交易,并将所述交易存入交易池中;当区块链网络中存在有区块链节点发送的交易时,区块链网络中的每一个区块链节点都需要对交易进行同步,并将同步到的交易存放于交易池中,以便后续并行化的对交易池中的交易进行处理。
所述交易并行化模块3,用于对所述交易池中待打包的交易集合,进行交易并行化处理,此模块为本发明的核心内容。
进一步地,所述交易并行化模块3,具体包括:
独立交易过滤子模块31,用于在获取所述区块链节点对应的交易池中待打包的交易集合之后,遍历所述交易集合中的每一个所述交易,对所述交易中的独立交易进行过滤,取出所述交易集合中的所述独立交易并将其存入对应的独立交易缓存区中,后将所述交易集合中余下的关联交易保留于所述交易集合中。
并行化处理子模块32,用于启动一用于处理所述关联交易的关联交易处理线程,并行启动处理所述独立交易的一个或多个独立交易处理线程,其中,启动所述独立交易处理线程的个数,以依据包括所述独立交易与所述关联交易个数的比值、所述关联交易处理线程的处理时间、所述区块链节点的处理性能在内的因素的并行进程智能算法来确定。
进一步地,在所述独立交易过滤子模块31中,具体的过滤过程为:
遍历所述交易集合中的每一个所述交易,并用当前迭代交易的包括源地址和目的地址在内的地址,与所述交易集合中的所有的所述交易进行对比;
若在所述交易集合中存在包括源地址和目的地址在内的任意一个地址与所述当前迭代交易的包括源地址和目的地址在内的任意一个地址相同的所述交易,则将所述当前迭代交易和与所述当前迭代交易的地址相同的所述交易,标记为所述关联交易,保留于所述交易集合中;
若在所述交易集合中,不存在包括源地址和目的地址在内的任意一个地址与所述当前迭代交易的包括源地址和目的地址在内的任意一个地址相同的所述交易,则取出所述当前迭代交易作为所述独立交易,存入所述独立交易缓存区中。
进一步地,在所述独立交易过滤子模块31中,还可以将所述独立交易进行过滤的过程与所述区块链节点共识的过程并发执行。因为联盟链大多采用传统分布式一致性算法作为共识算法,这类算法至少有两阶段通信协议,且需要对通信消息进行复杂的处理,所以往往时间开销不俗。而公链所采用pow算法在共识时间消耗上更长,所以,将独立交易的过滤过程和共识过程并行处理,将不会带来额外的时间开销,只会因为交易的并行执行,带来性能的提升。
在所述独立交易过滤子模块31中,还包括:
并发过滤单元,用于对所述独立交易过滤的过程进行并发处理,具体为:将所述交易集合拆分为若干个交易集合子集,将所述交易集合子集进行并发处理;开启若干个线程同时遍历每一个所述交易集合子集,并用每一个所述交易集合子集中的所述当前迭代交易与原始的所述交易集合中的所述交易进行对比;若对比后所述当前迭代交易为所述关联交易,保留于所述交易集合子集中,否则为所述独立交易,存入所述独立交易缓存区中;针对于所述的交易集合子集中的剩余所述交易进行合并,替换原始的所述交易集合。
进一步地,所述并行化处理子模块32,还包括:
并行进程确定单元,用于通过并行进程智能算法确定启动关联交易处理线程和独立交易处理线程的个数,具体为:
使用所述独立交易的个数除以所述关联交易的个数,并加上预设的线程计算常量,计算得到处理所述交易所需要的预计算线程数量,其中,所述预设的线程计算常量根据所述关联交易的数量进行动态调整;
根据所述区块链节点的处理性能对线程总数设置上限,若所述预计算线程数量小于所述线程总数的上限,最终开启的线程的数量为所述预计算线程数量,否则,所述最终开启的线程的数量为所述线程总数的上限;
使用所述最终开启的线程中的一个线程作为所述关联交易处理线程,剩余的所述最终开启的线程作为所述独立交易处理线程。
第五实施例
本实施例提供了一种实现区块链交易并行化的系统,其特征在于,包括区块链网络,在上述区块链网络中包含若干个如第四实施例中提到的区块链节点。
所述区块链网络,用于接收所述区块链网络中的所有的所述区块链节点,发起的交易,并将所述交易广播到每一个所述区块链节点中。
所述区块链节点,用于发起所述交易,并接收所述区块链网络中广播的所述交易,并对所述交易进行并行化的处理,具体包括:
交易发起模块1,用于通过区块链节点的节点地址参与到区块链共识中,通过所述节点地址发起交易;
交易同步模块2,用于接收并同步区块链网络中所述区块链节点所发起的所述交易,并将所述交易存入交易池中;
交易并行化模块3,用于对所述交易池中待打包的交易集合,进行交易并行化处理。
一种计算机设备,包括存储器和一个或多个处理器,所述存储器中存储有计算机代码,所述计算机代码被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如第一实施例中任一项所述的方法。
一种计算机可读存储介质,计算机可读存储介质存储有计算机代码,当计算机代码被执行时,如上述方法被执行。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。如本说明书实施例所示实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Net work Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子系统执行时,使得所述电子系统执行实施例一所述的方法。在此不再赘述。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。

Claims (11)

1.一种实现区块链交易并行化的方法,其特征在于,包括以下步骤:
获取区块链节点对应的交易池中待打包的交易集合;
遍历所述交易集合中的每一个交易,对所述交易中的独立交易进行过滤,取出所述交易集合中的所述独立交易并将其存入对应的独立交易缓存区中,后将所述交易集合中余下的关联交易保留于所述交易集合中;
启动一用于处理所述关联交易的关联交易处理线程,并行启动处理所述独立交易的一个或多个独立交易处理线程,其中,启动所述独立交易处理线程的个数,以依据包括所述独立交易与所述关联交易个数的比值、所述关联交易处理线程的处理时间、所述区块链节点的处理性能在内的因素的并行进程智能算法来确定。
2.根据权利要求1所述的实现区块链交易并行化的方法,其特征在于,遍历所述交易集合中的每一个所述交易,对所述交易中的所述独立交易进行过滤,取出所述交易集合中的所述独立交易并将其存入对应的所述独立交易缓存区中,后将所述交易集合中余下的所述关联交易保留于所述交易集合中,具体为:
遍历所述交易集合中的每一个所述交易,并用当前迭代交易的包括源地址和目的地址在内的地址,与所述交易集合中的所有的所述交易进行对比;
若在所述交易集合中存在包括源地址和目的地址在内的任意一个地址与所述当前迭代交易的包括源地址和目的地址在内的任意一个地址相同的所述交易,则将所述当前迭代交易和与所述当前迭代交易的地址相同的所述交易,标记为所述关联交易,保留于所述交易集合中;
若在所述交易集合中,不存在包括源地址和目的地址在内的任意一个地址与所述当前迭代交易的包括源地址和目的地址在内的任意一个地址相同的所述交易,则取出所述当前迭代交易作为所述独立交易,存入所述独立交易缓存区中。
3.根据权利要求1所述的实现区块链交易并行化的方法,其特征在于,所述并行进程智能算法,具体为:
使用所述独立交易的个数除以所述关联交易的个数,并加上预设的线程计算常量,计算得到处理所述交易所需要的预计算线程数量;
根据所述区块链节点的处理性能对线程总数设置上限,若所述预计算线程数量小于所述线程总数的上限,最终开启的线程的数量为所述预计算线程数量,否则,所述最终开启的线程的数量为所述线程总数的上限;
使用所述最终开启的线程中的一个线程作为所述关联交易处理线程,剩余的所述最终开启的线程作为所述独立交易处理线程。
4.根据权利要求3所述的实现区块交易并行化的方法,其特征在于,所述预设的线程计算常量根据所述关联交易的数量进行动态调整。
5.根据权利要求1所述的实现区块交易并行化的方法,其特征在于,在对所述交易中的所述独立交易进行过滤时,还包括:将所述独立交易进行过滤的过程与所述区块链节点共识的过程并发执行。
6.根据权利要求1所述的实现区块交易并行化的方法,其特征在于,在对所述交易中的所述独立交易进行过滤时,还包括:对所述独立交易过滤的过程进行并发处理,具体为:
将所述交易集合拆分为若干个交易集合子集,将所述交易集合子集进行并发处理;
开启若干个线程同时遍历每一个所述交易集合子集,并用每一个所述交易集合子集中的所述当前迭代交易与原始的所述交易集合中的所述交易进行对比;
若对比后所述当前迭代交易为所述关联交易,保留于所述交易集合子集中,否则为所述独立交易,存入所述独立交易缓存区中;
针对于所述的交易集合子集中的剩余所述交易进行合并,替换原始的所述交易集合。
7.一种区块链节点,其特征在于,包括交易发起模块,交易同步模块,交易并行化模块;
所述交易发起模块,用于通过区块链节点的账户地址参与到区块链共识中,通过所述账户地址发起交易;
所述交易同步模块,用于接收并同步区块链网络中所述区块链节点所发起的所述交易,并将所述交易存入交易池中;
所述交易并行化模块,用于对所述交易池中待打包的交易集合,进行交易并行化处理。
8.根据权利要求7所述的区块链节点,其特征在于,所述交易并行化模块,具体包括:
独立交易过滤子模块,用于在获取所述区块链节点对应的交易池中待打包的交易集合之后,遍历所述交易集合中的每一个所述交易,对所述交易中的独立交易进行过滤,取出所述交易集合中的所述独立交易并将其存入对应的独立交易缓存区中,后将所述交易集合中余下的关联交易保留于所述交易集合中;
并行化处理子模块,用于启动一用于处理所述关联交易的关联交易处理线程,并行启动处理所述独立交易的一个或多个独立交易处理线程,其中,启动所述独立交易处理线程的个数,以依据包括所述独立交易与所述关联交易个数的比值、所述关联交易处理线程的处理时间、所述区块链节点的处理性能在内的因素的并行进程智能算法来确定。
9.根据权利要求8所述的区块链节点,其特征在于,所述独立交易过滤子模块,还包括:
并发过滤单元,用于对所述独立交易过滤的过程进行并发处理,具体为:将所述交易集合拆分为若干个交易集合子集,将所述交易集合子集进行并发处理;开启若干个线程同时遍历每一个所述交易集合子集,并用每一个所述交易集合子集中的所述当前迭代交易与原始的所述交易集合中的所述交易进行对比;若对比后所述当前迭代交易为所述关联交易,保留于所述交易集合子集中,否则为所述独立交易,存入所述独立交易缓存区中;针对于所述的交易集合子集中的剩余所述交易进行合并,替换原始的所述交易集合。
10.一种计算机设备,包括存储器和一个或多个处理器,所述存储器中存储有计算机代码,所述计算机代码被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至6中任一项所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如权利要求1至6中任一项所述的方法被执行。
CN202010613063.XA 2020-06-30 2020-06-30 一种实现区块链交易并行化的方法及区块链节点 Pending CN111861744A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010613063.XA CN111861744A (zh) 2020-06-30 2020-06-30 一种实现区块链交易并行化的方法及区块链节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010613063.XA CN111861744A (zh) 2020-06-30 2020-06-30 一种实现区块链交易并行化的方法及区块链节点

Publications (1)

Publication Number Publication Date
CN111861744A true CN111861744A (zh) 2020-10-30

Family

ID=72988880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010613063.XA Pending CN111861744A (zh) 2020-06-30 2020-06-30 一种实现区块链交易并行化的方法及区块链节点

Country Status (1)

Country Link
CN (1) CN111861744A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559174A (zh) * 2020-12-08 2021-03-26 上海物融智能科技有限公司 一种区块链并行交易处理方法及装置
CN112784312A (zh) * 2021-01-13 2021-05-11 杭州溪塔科技有限公司 一种多个存证交易的合并执行方法、装置及电子设备
CN113159791A (zh) * 2020-12-08 2021-07-23 苏州域乎区块链科技有限公司 一种基于区块链的分层式交易并行执行方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109636592A (zh) * 2017-10-20 2019-04-16 北京航空航天大学 高性能智能合约设计
CN109919691A (zh) * 2019-02-27 2019-06-21 腾讯科技(深圳)有限公司 一种数据处理的系统、方法以及装置
CN110869967A (zh) * 2019-03-28 2020-03-06 阿里巴巴集团控股有限公司 用于并行处理区块链交易的系统和方法
CN111095325A (zh) * 2019-04-12 2020-05-01 阿里巴巴集团控股有限公司 在分布式账本系统中进行交易的并行执行

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109636592A (zh) * 2017-10-20 2019-04-16 北京航空航天大学 高性能智能合约设计
CN109919691A (zh) * 2019-02-27 2019-06-21 腾讯科技(深圳)有限公司 一种数据处理的系统、方法以及装置
CN110869967A (zh) * 2019-03-28 2020-03-06 阿里巴巴集团控股有限公司 用于并行处理区块链交易的系统和方法
CN111095325A (zh) * 2019-04-12 2020-05-01 阿里巴巴集团控股有限公司 在分布式账本系统中进行交易的并行执行

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559174A (zh) * 2020-12-08 2021-03-26 上海物融智能科技有限公司 一种区块链并行交易处理方法及装置
CN113159791A (zh) * 2020-12-08 2021-07-23 苏州域乎区块链科技有限公司 一种基于区块链的分层式交易并行执行方法及系统
CN112784312A (zh) * 2021-01-13 2021-05-11 杭州溪塔科技有限公司 一种多个存证交易的合并执行方法、装置及电子设备

Similar Documents

Publication Publication Date Title
EP3678346B1 (en) Blockchain smart contract verification method and apparatus, and storage medium
CN111861744A (zh) 一种实现区块链交易并行化的方法及区块链节点
CN108846749B (zh) 一种基于区块链技术的分片化的交易执行系统及方法
CN111444196B (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
CN110020859B (zh) 一种并行执行的区块链共识方法、装置及电子设备
US20220358119A1 (en) Blockchain consensus method, apparatus and device
CN112506671B (zh) 区块链中的交易处理方法、装置及电子设备
CN110704438B (zh) 一种区块链中布隆过滤器的生成方法及装置
EP3640813B1 (en) Cluster-based random walk method and apparatus
CN111444192B (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
CN111698244B (zh) 一种新增节点快速参与共识的方法、装置及电子设备
CN110659905A (zh) 交易验证方法、装置、终端设备以及存储介质
CN111966631A (zh) 一种可快速分发的镜像文件生成方法、系统、设备和介质
CN108399175B (zh) 一种数据存储、查询方法及其装置
CN107451204B (zh) 一种数据查询方法、装置及设备
CN113486109A (zh) 异构数据库的数据同步方法、装置及电子设备
CN113126879B (zh) 一种数据存储方法、装置和电子设备
CN110008382B (zh) 一种确定TopN数据的方法、系统及设备
CN115760405A (zh) 交易执行方法、装置、计算机设备及介质
CN112860412B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN112907198A (zh) 业务状态流转维护方法、装置及电子设备
CN106790620B (zh) 一种分布式大数据处理方法
CN113641871B (zh) 一种无锁散列方法、装置、设备及介质
CN111274228B (zh) 保单数据迁移存储方法、系统、设备及可读存储介质
CN110874486B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20201030

RJ01 Rejection of invention patent application after publication