CN114140115B - 区块链交易池的分片方法、系统、存储介质和计算机系统 - Google Patents
区块链交易池的分片方法、系统、存储介质和计算机系统 Download PDFInfo
- Publication number
- CN114140115B CN114140115B CN202111259102.1A CN202111259102A CN114140115B CN 114140115 B CN114140115 B CN 114140115B CN 202111259102 A CN202111259102 A CN 202111259102A CN 114140115 B CN114140115 B CN 114140115B
- Authority
- CN
- China
- Prior art keywords
- transaction
- transaction pool
- pool
- standard
- blockchain
- 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.)
- Active
Links
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/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
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种区块链交易池的分片方法、系统、存储介质和计算机系统,采用分治法的思想,提出对交易池结构的分片改进,将单个完整的大的区块链交易池,分片划分为若干小的标准交易池,以供后续调用处理交易或参与区块链系统的其它进程。使得线程对交易池的读写锁竞争控制在限定的小标准交易池范围内,在读写锁的加锁或解锁操作中,无需对整个大的区块链交易池进行读写锁的加锁或解锁操作,避免了多个操作之间的拥塞问题,能有效降低冲突的频率,提升交易吞吐率,从而提升交易池整体的处理效率、进而提升区块链系统的整体性能。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及一种交易池的分片技术。
背景技术
区块链系统的交易是指发给区块链系统的一段请求数据,可用于部署智能合约,调用智能合约接口,维护智能合约的生命周期,以及管理资产和价值交换。交易主要由发送者、接受者、交易数据和交易签名四部分组成,是区块链系统各种应用的基础。
以用户发起的交易为例,首先,用户需要用自己的私钥给自己创建的交易签名,然后把签名后的交易发送到区块链上,接着由区块链系统的多个节点完成共识处理,随后执行交易相关的智能合约代码,生成交易指定的状态数据,最后,由记账节点将交易打包到新发布区块里,和状态数据一起落盘存储。至此,该交易被区块链系统确认,而被确认的交易被认为同时具备了一致性和事务性。
区块链交易池(TxPool交易缓冲池),用来暂存未被加入到区块的交易(包括本节点创建的交易和其他节点广播过来的交易)。一方面,需要检验所有提交交易的合法性,另一方面,然后从中选择合法交易交由区块链系统的共识机制确认,并需要缓存所有待处理的合法交易。交易池作为区块链系统的核心部件,在交易发出到上链的整个生命周期里都有交易池的参与,因此,交易池的性能直接影响区块链系统性能。
如图1所示(以太坊的交易池),区块链交易池的资源调度存在于每条交易从发出到上链的全生命周期里(包括:RPC线程,Sync线程,Channel线程,Verify线程和打包线程等)。例如,网络接收到一个待打包的交易,需要获取交易池的写锁(独占模式锁住),然后将交易写入交易池中,共识模块打包过程需要获取交易池读锁(共享模式锁住),从中提取交易进行执行,当交易执行完并获得区块后,获取写锁(独占模式锁住),从交易池中删除已打包交易。但是,现有方法在该过程,对交易池整体频繁使用读写锁,导致交易池的锁竞争成为系统“热点”,制约了区块链系统的整体性能的进一步提升。尤其是,制约区块链系统交易吞吐率的提升(transaction-per-second,TPS每秒处理的交易的次数)随着用户量和交易量的增加,低TPS已经不能满足需求,成为制约区块链系统性能提升的瓶颈。
为了提升TPS,业界提出了不同的交易池优化方案。公开号为CN110599136A的专利,提供了一种区块链交易池流量管控的方法,通过获取区块链节点对应的用户集合,以及所述区块链节点对应的交易池的最大缓存容量,为所述用户集合中的每个用户分别配置与所述交易池关联的流量阈值,用以提供交易池的整体利用率。FISCO BCOS对交易池性能的优化采用拆分且并行执行交易验证任务、交易异步通知策略来优化交易流水线处理效率。
现有区块链交易池进行读操作或写操作都是通过线程实现的,线程作为独立运行和调度的基本单位。现有的区块链系统有且仅有一个完整的交易池,通过读写锁进行调度,为了保持数据的一致性,每个操作都需要对交易池整体进行加锁或解锁,由于使用大量的锁导致多个操作之间产生堵塞。
因此,如何优化区块链交易池,避免频繁读写锁,进而提升区块链系统的整体性能,是目前区块链技术领域亟待解决的技术问题。
发明内容
为解决上述技术问题,本发明提供一种区块链交易池的分片方法,包括:
确定需要划分的标准交易池Si的数量X;其中X为正整数;2≤i≤X;
为每个所述标准交易池Si,匹配一一对应的唯一标识;
将每个所述标准交易池Si的唯一标识,作哈希运算,将每个所述标准交易池Si的唯一标识映射至哈希环上的点Ai,以将区块链交易池,划分为X个标准交易池Si。
进一步地,所述X等于N/3的取整数;所述N为区块链CPU的核心数量。
进一步地,所述X的大小由CPU的核心数量、内存容量和网络带宽决定。
进一步地,所述唯一标识为索引IDi;其中,IDi=Prefix+i;所述Prefix代表所述标准交易池Si的前缀;i代表所述标准交易池Si的序号。
进一步地,所述前缀,为CPU节点的主机名或IP地址或物理地址MAC。
进一步地,所述哈希运算,为MurmurHash。
另一方面,本发明还提供了一种区块链交易池的分片系统,包括:
数量确定单元,用于确定需要划分的标准交易池Si的数量X;其中X为正整数;2≤i≤X;
标识匹配单元,与所述数量确定单元连接,用于为每个所述标准交易池Si,匹配一一对应的唯一标识;
映射分块单元,与所述标识匹配单元连接,用于将每个所述标准交易池Si的唯一标识,作哈希运算,将每个所述标准交易池Si的唯一标识映射至哈希环上的点Ai,以将区块链交易池,划分为X个标准交易池Si。
进一步地,所述分片系统,用于执行权利要求1-5任意一项所述的分片方法。
另一方面,本发明还提供了一种计算机可读存储介质,其上存储有用于执行上述任意的分片方法的计算机程序。
另一方面,本发明还提供了一种计算机系统,包括上述计算机可读存储介质和一个或多个处理器;
所述处理器,被配置为运行所述计算机程序。
本发明提供的区块链交易池的分片方法、系统、计算机可读存储介质和计算机系统,采用分治法的思想,提出对交易池结构的分片改进,将单个完整的大的区块链交易池,分片划分为若干小的标准交易池,以供后续调用处理交易或参与区块链系统的其它进程。使得线程对交易池的读写锁竞争控制在限定的小标准交易池范围内,在读写锁的加锁或解锁操作中,无需对整个大的区块链交易池进行读写锁的加锁或解锁操作,避免了多个操作之间的拥塞问题,能有效降低冲突的频率,提升交易吞吐率,从而提升交易池整体的处理效率、进而提升区块链系统的整体性能。
附图说明
图1为以太坊的交易池示意图;
图2为本发明区块链交易的处理方法的一个实施例的流程图;
图3为本发明的标注交易池的划分示意图;
图4为本发明的区块链交易的处理方法的步骤S1的流程图;
图5为区块链交易池划分为4个标准交易池,映射至哈希环的示意图;
图6为本发明的区块链交易的处理方法的步骤S2的流程图;
图7-8为本发明的标准交易池与交易在哈希环上的位置的两种示意图;
图9为本发明的区块链交易的处理方法的步骤S23的流程图;
图10为本发明的区块链交易的处理方法的步骤S23b的一个实施例的流程图;
图11为本发明的区块链交易的处理方法的步骤S23b的另一个实施例的流程图;
图12为本发明的区块链交易的处理方法的步骤S0的流程图;
图13为本发明的区块链交易的处理方法的步骤S01的一个实施例的流程图;
图14为本发明的区块链交易的处理方法的步骤S01的另一个实施例的流程图;
图15为本发明的区块链交易的处理系统的一个实施例的结构框图。
具体实施方式
如图2所示,给出了本发明区块链交易的处理方法的一个具体实施例,包括:分片步骤S1和调用步骤S2。
S1:将一个区块链交易池Pool,划分为X个标准交易池(SubPooli,后续简称为Si);其中,X为正整数;2≤i≤X。具体的,(如图3所示),分片交易池系统,可选但仅限于包括一个区块链交易池(分片交易池)和若干个标准交易池等实体构成。各实体在两层交易池系统中所扮演的角色与拥有的功能具体介绍如下:1、分片交易池:该池接口和普通交易池接口相同,通过增加一个交易分片处理中间层,隔离交易池上层业务逻辑,实现与普通交易池无差异化的访问方式。分片交易池具备两个关键组件:(1)交易池分片装置,该装置可选但不仅限于采用一种基于一致性哈希环的交易池分片算法实现,由于交易哈希具备较好离散性,交易池交易具备较好的平衡性,可实现交易较均匀的分布在各标准交易池;(2)交易池交易合并装置,该装置主要是对分片交易池进行交易排序获取时需要用到,主要实现一个先进先出的排序方法。在公有链模式下,合并装置还需要基于最大收益率对交易进行排序。另外,该装置构建一个全局的交易优先队列,用于实现对不同标准交易池的交易排序方法。2、标准交易池:X个标准交易池一致,满足区块链常规交易处理的所有流程,与具体区块链采用的网络模块和共识算法相关,包括对单独标准交易池的写入、交易排序、读取、删除几个标准接口。
S2:根据当前交易的特征值,调用上述标准交易池中的1至X-1个,完成当前交易。
在该实施例中,本发明的区块链交易的处理方法,采用分治法的思想,提出对交易池结构的分片改进,将单个完整的大的区块链交易池,分片划分为若干小的标准交易池,根据当前交易的特征值调用适合的小标准交易池处理完成,将线程对交易池的读写锁竞争控制在限定的小标准交易池范围内,在读写锁的加锁或解锁操作中,无需对整个大的区块链交易池进行读写锁的加锁或解锁操作,避免了多个操作之间的拥塞问题,能有效降低冲突的频率,提升交易吞吐率,从而提升交易池整体的处理效率、进而提升区块链系统的整体性能。
具体的,如图4所示,步骤S1中,分片步骤可选但不仅限于包括:
S11:确定将原本完整的区块链交易池,划分为若干标准交易池的数量X。具体的,该数量X为经验值,可选但不仅限于由本领域技术人员根据节点自身CPU的核心数量N,即并行处理能力,而预先自由设定,优选为等于N/3的取整数。更为具体的,该数量X,可预先设置,通过输入设备直接输入;或根据当前情况计算得到。更为具体的,该数量X,可选但不仅限于由CPU的核心数量、内存大小及网络带宽决定。示例的,以当前区块链系统中,CPU的核心数量为N个、内存大小为M G、带宽为L兆为例,X可选但不仅限于等于K1×N+K2×M+K3×L。其中,K1、K2、K3为各影响因素的影响因子。具体各影响因子的数值,可选但不仅限于由本领域技术人员根据该区块链系统的应用场景而自由设定。示例的,在区块链系统应用于运算优先考虑的业务场景下,以影响因子K1为重,在区块链系统应用于缓存优先考虑的业务场景下,以影响因子K2为重,在区块链系统应用于网络吞吐优先考虑的业务场景下,以影响因子K3为重。
S12:为划分的每个标准交易池Si(2≤i≤X),匹配一一对应的唯一标识。具体的,可选但不仅限于为X个标准交易池的每个标准交易池Si创建类似于身份证名片一样的索引IDi,作为对应标准交易池的唯一标识。更为具体的,该索引IDi可选但不仅限于以Prefix+i表示(即:IDi=Prefix+i)。其中,Prefix代表交易池前缀,可选但不仅限于为节点的主机名或节点的IP地址或物理地址MAC;i代表第i个标准交易池,为X个标准交易池所标记的序号。
S13:将每个标准交易池的唯一标识,作哈希运算,以将每个标准交易池Si的唯一标识(可选但不仅限于为索引IDi)映射至哈希环上的点Ai(如图5所示,为划分为4个标准交易池的示意图,A1-A4分别映射为S1-S4)。具体的,以该唯一标识为索引IDi为例,计算Hash(IDi),将匹配于X个标准交易池的所有唯一标识,一一映射到哈希环上。具体的,可选但不仅限于将所有标准交易池S1,..,Si,..,Sx的索引ID1,..,IDi,..,IDx依次作为一致性哈希操作函数Hash的输入,经过Hash(IDi),映射到[0,232-1]数值空间上,把输出结果的区间首尾相连,形成一个顺时针增长的哈希环,如图5所示(4个标准交易池划分完成后,形成的哈希环示意图)。更为具体的,期间运用的哈希运算Hash可选但不仅限于为MurmurHash。
在该实施例中,给出了步骤S1的一个具体实施方式,即如何将一个完整的大区块链交易池Pool分块划分为多个小标准交易池Si。其基于一致性哈希环,把标准交易池通过一致性哈希算法全部映射到[0,232-1]的数值空间上,再将这个数值空间首尾相连形成哈希环,不仅解决了标准交易池的一一对应问题,避免造成混乱和误差;还由于哈希算法具备较好的离散性,使得标准交易池具备较好的平衡性,可使后续交易较均匀的散落分布在各标准交易池中。值得注意的,该分片步骤是如何将大的区块链交易池划分为小标准交易池的完整技术方案,其可选但不仅限于应用于后续调用中完成交易处理过程,还可应用于区块链系统的其它进程中,解决其它需要全局调用区块链交易池,以全局锁的技术问题,更为具体的,该标准交易池也并非交易池的最小划分,划分的标准交易池还可按此方法进行进一步细分,划分为更小的标准交易池。
更为具体的,如图6所示,步骤S2,可选但不仅限于,包括:
S21:生成当前交易(Transactionj,简称为Tj)的特征值。具体的,可选但不仅限于采用当前交易Tj的Nonce值或者当前交易Tj本身的哈希值作为特征值。具体的,本领域技术人员可选但不仅限于通过本地的通用唯一识别码生成器为新进候选交易,即当前交易生成Nonce值。值得注意的,与每个标准交易池一样,该Nonce值、哈希值对于每个新进候选交易而言,也是具有唯一标识的,其能应用于后续哈希运算,以将每个当前交易Tj,都映射到哈希环上的固定一点。
S22:将当前交易Tj的特征值,即上述确定的Nonce值或哈希值,作哈希运算,以将当前交易Tj映射至哈希环上的点Bj。
S23:根据点Ai和Bj的位置,对当前交易Tj,调用标准交易池Si,完成当前交易。
为便于理解本发明,在详细讲述如何调用标准交易池Si之前,先以图5为例,做个示例性约定,本领域技术人员可以理解的,在哈希值与标准交易池的映射表中,通过查表可以确定从点A1-A2这段圆弧上的所有哈希值(0-232×1/4]所对应的交易都优先调用A2所对应标准交易池S2;从点A2-A3这段圆弧上的所有哈希值(232×1/4-232×1/2]所对应的交易都优先调用A3所对应标准交易池S3;从点A3-A4这段圆弧上的所有哈希值(232×1/2-232×3/4]所对应的交易都优先调用A4所对应标准交易池S4;从点A4-A1这段圆弧上的所有哈希值(232×3/4-232-1]所对应的交易都优先调用A1所对应标准交易池S1。
具体的,若点Ai和Bj重合,如图7所示,即该当前交易Tj在哈希环上的位置Bj恰好与某个标准交易池Si的位置Ai重合(这种情况是很少的,因为哈希环上包括232-1个密密麻麻的点,均可对应某个交易,而标准交易池Si的数量没这么多,只是哈希环上均布的零散点),即落入标准交易池Si的管辖范围,则该当前交易Tj优先于调用该标准交易池Si完成交易。如图7所示,在标准交易池S1-S4的四个点位A1-A4中,当前交易Tj在哈希环上的位置Bj与标准交易池S2重合,即落入标准交易池S2的管辖范围,优先考虑调用该标准交易池S2完成交易。更为具体的,可选但不仅限于还需要考虑该标准交易池Si的交易数量是否超过设定阈值,若超过则需等待或者调用其相邻的两个标准交易池Si+1、Si-1(即如图5示例的,调用S1或S3),若未超过则直接调用标准交易池Si(S2)完成交易。当然,更为具体的,还需要考虑Si+1、Si-1交易数量是否超过设定阈值,若超过则需等待,直至Si、Si+1、Si-1中的1至X-1个的交易数量未超过设定阈值,则选其完成当前交易Tj。具体的Si、Si+1、Si-1的优先级及判断标准,可由本领域技术人员根据实际需求而任意设定。
若点Ai和Bj不重合,如图8所示,即该当前交易Tj在哈希环上的位置Bj没有与任何一个标准交易池Si的位置Ai重合(这种情况更常见,因为232数量相当庞大,如上所述的恰巧重合的机会相当少),而是位于哈希环的相邻两个标准交易池(Si与Si-1)所组成的一段弧上(这段弧上散落了很多个哈希值),即落入该两个标准交易池的共同管辖范围,此时可以选择标准交易池Si和标准交易池Si-1中的任意一个来完成当前交易。具体选用哪个标准交易池可查找哈希值与标准交易池的映射表确定。
如图8所示的,当前交易Tj在哈希环上的位置Bj没有与任何一个标准交易池Si的位置重合,而是位于A3和A2所组成的一段弧上。那么我们通过查表,可以优选A3、A2所对应的S3和S2中的任何一个来完成当前交易。当然,同样的要考虑,这两个标准交易池S3和S2的交易数量是否超过设定阈值。具体的,可选但不仅限于优先考虑顺时针方向上离Bj距离最近的Ai所对应的Si(如图8所示的A3),作为完成当前交易的首选交易池,若该标准交易池Si的交易数量未超过设定阈值,则调用Si,若超过,则考虑逆时针方向上离Bj距离最近的Ai-1所对应的Si-1(如图8所示的A2),作为完成当前交易的二选交易池,若该标准交易池Si-1的交易数量未超过设定阈值,则调用Si-1,若超过则等待,再次判断Si,直到Si和Si-1中有一个的交易数量未超过设定阈值时,调用其一。
具体的,如图9所示,上述S23,可选但不仅限于包括:
S23a:判断点Bj的位置是否与某个标准交易池Si对应的点Ai的位置重合;
S23b:若重合,则调用点Ai所对应的标准交易池Si,完成当前交易;
S23c:若不重合,则调用与点Bj顺时针方向最近的点Ai所对应的标准交易池Si或与点Bj逆时针方向最近的点Ai-1所对应的标准交易池Si-1,完成当前交易。
在该实施例中,给出了本发明处理方法,在处理当前交易时,如何在X个标准交易池中,均衡调用某个标准交易池Si来完成当前交易的具体实施例。通过重合和不重合的两种判断,综合考虑两种情况,分别对待,能够将每个当前交易Tj,离散分配至X个标准交易池Si,进一步确保在读写锁的加锁或解锁操作中,无需对整个大的区块链交易池进行读写锁的加锁或解锁操作,避免了多个操作之间的拥塞问题,能有效降低冲突的频率,提升交易吞吐率,从而提升交易池整体的处理效率、进而提升区块链系统的整体性能。值得注意的,该调用步骤是如何在X个标准交易池Si中有选择性的调用合适标准交易池的完整技术方案,其可选但不仅限于应用于前序分片步骤中完成交易处理过程,还可应用于本发明分治思想下的其它分片方法中,解决其它需要全局调用区块链交易池,以全局锁的技术问题。
优选的,为避免S23b某个标准交易池Si的处理数量达到设定上限,造成系统崩盘或紊乱,本领域技术人员可选但不仅限于在判断位置重合之后,及调用标准交易池Si之前,还插入一个判断该标准交易池Si的交易数量是否达到设定阈值的步骤。具体的,如图10所示,步骤S23b,还可选但不仅限于包括:
S23b1:若重合,则判断标准交易池Si的交易数量是否超过设定阈值;
S23b2:若未超过设定阈值,则调用标准交易池Si,完成当前交易;
S23b3:若超过设定阈值,则等待,并返回S23b1再判断,直到标准交易池Si的交易数量未超过设定阈值,完成当前交易。
类似的,为避免S23c某个标准交易池Si的处理数量达到设定上限,造成系统崩盘或紊乱,本领域技术人员可选但不仅限于在Si的处理数量达到设定上限时,考虑Si-1或其它可选的标准交易池,具体调用优先级及考虑哪些个标准交易池,可由本领域技术人员根据实际情况而自由设定。优选的,考虑Si或Si-1。更为优选的,在判断位置重合之后,及调用标准交易池Si或Si-1之前,还插入一个判断该标准交易池Si或Si-1的交易数量是否达到设定阈值的步骤。具体的,如图10所示,步骤S23c,还可选但不仅限于包括:
S23c1:若不重合,则判断与点Bj顺时针方向最近的点Ai所对应的标准交易池Si的交易数量,是否超过设定阈值;
S23c2:若未超过设定阈值,则调用标准交易池Si,完成当前交易;
S23c3:若超过设定阈值,则判断与点Bj逆时针方向最近的点Ai-1所对应的标准交易池Si-1的交易数量,是否超过设定阈值;
S23c4:若未超过设定阈值,则调用标准交易池Si-1,完成当前交易;
S23c5:若超过设定阈值,则等待,并返回步骤S23c1,直到标准交易池Si、Si-1的其中一个的交易数量未超过设定阈值,则调用其完成当前交易。值得注意的,上述调用的标准交易池的具体哪个或哪几个,以及调用优先级别,仅给出上述示例,但并不以此具体实施例为限,本领域技术人员可根据实际需求,如交易数量的设定阈值大小、等待时间要求等任意设定。示例的,可仅调用标准交易池Si,也可调用Si、Si-1的甚至是涉及到Si+1、Si+2、Si-2均可,其先判断顺时针再判断逆时针,还是先判断逆时针再判断顺时针等优先顺序也均不受限。
更为优选的,为减轻标准交易池Si的负担,并减少用户等待的时间,如图11所示,步骤S23b,在另一个实施例中,还可选但不仅限于包括:
S23b1’:若重合,则判断标准交易池Si的交易数量是否超过设定阈值;
S23b2’:若未超过设定阈值,则调用标准交易池Si,完成当前交易;
S23b3’:若超过设定阈值,则判断与点Bj顺时针方向最近的点Ai+1所对应的标准交易池Si+1的交易数量,是否超过设定阈值;
S23b4’:若未超过设定阈值,则调用标准交易池Si+1,完成当前交易;
S23b5’:若超过设定阈值,则判断与点Bj逆时针方向最近的点Ai-1所对应的标准交易池Si-1的交易数量,是否超过设定阈值;
S23b6’:若未超过设定阈值,则调用标准交易池Si-1,完成当前交易;
S23b7’:若超过设定阈值,则等待,并返回步骤S23b1’,直到标准交易池Si、Si+1、Si-1的其中一个的交易数量未超过设定阈值,则调用其完成当前交易。值得注意的,上述调用的标准交易池的具体哪个或哪几个,以及调用优先级别,仅给出上述示例,但并不以此具体实施例为限,本领域技术人员可根据实际需求,如交易数量的设定阈值大小、等待时间要求等任意设定。示例的,可仅调用标准交易池Si,也可调用Si、Si+1、Si-1的任意两两或三个的组合,甚至是涉及到Si+2、Si-2均可,其先判断顺时针再判断逆时针,还是先判断逆时针再判断顺时针等优先顺序也均不受限。
更为优选的,如图12所示,为避免对无效交易进行判断再处理,浪费运行空间和内存,节约运行时间,本发明区块链交易的处理方法,还可选但不仅限于包括步骤S0:包括:
S01:判断当前交易Tj是否为有效交易;
S02:若当前交易Tj为有效交易,则进行后续调用完成步骤;
S03:若当前交易Tj不为有效交易(为无效交易),则不进行后续调用完成步骤。
具体的,该判定当前交易是否为有效交易的步骤S01-S03,可选但不仅限于设置在步骤S1或S2之前或之中,只要是调用标准交易池完成当前交易之前,均可。
具体的,如图13所示,步骤S01,可选但不仅限于,包括:
S01a:判断当前交易Tj是否合法;
S01b:若不合法,则判定当前交易Tj,不为有效交易(无效交易),舍弃;
S01c:若合法,则判定当前交易Tj,为有效交易,执行后续步骤。
优选的,如图14所示,在另一个实施例中,步骤S01,可选但不仅限于,包括:
S01a’:判断当前交易Tj是否合法;
S01b’:若不合法,则判定当前交易Tj不为有效交易;
S01c’:若合法,则继续判断当前交易Tj是否为重复交易;
S01d’:若为重复交易,则判定当前交易Tj不为有效交易;
S01e’:若不为重复交易,则判定当前交易Tj为有效交易。
值得注意的,该判定当前交易Tj是否有效的步骤,可选但不仅限于包括判定其是否为合法交易和重复交易。本领域技术人员可以理解的,可选合法交易和重复交易的其一判定,或者二者综合,或者涉及更多判定该交易是否为有效交易的评判指标。另外,其判定顺序以及标准均可由本领域技术人员根据实际要求而任意设定。
另一方面,如图15所示,本发明基于上述处理方法,还提供一种区块链交易的处理系统,包括:
分片模块100,用于将区块链交易池,划分为X个标准交易池Si;其中X为正整数;2≤i≤X;
调用模块200,与分片模块100连接,用于根据当前交易Tj的特征值,调用标准交易池Si中的1至X-1个,完成当前交易Tj。
具体的,分片模块100,可选但不仅限于包括:
数量确定单元110,用于确定标准交易池Si的数量X;
标识匹配单元120,与数量确定单元110连接,用于为每个标准交易池Si,匹配一一对应的唯一标识;
映射分块单元130,与标识匹配单元120连接,用于将每个标准交易池Si的唯一标识,作哈希运算,将每个标准交易池Si的唯一标识映射至哈希环上的点Ai,以将区块链交易池,划分为X个标准交易池Si。
更为具体的,调用模块200,可选但不仅限于包括:
特征值生成单元210,用于生成当前交易Tj的特征值;
映射定点单元220,与特征值生成单元210连接,用于将当前交易Tj的Nonce值,作哈希运算,将当前交易Tj映射至哈希环上的点Bj;
判断调用单元230,与映射分块单元130和映射定点单元220连接,用于根据点Ai和Bj的位置,对当前交易Tj,调用标准交易池Si中的1至X-1个,完成当前交易Tj。
需要说明的,上述模块和单元,为本发明区块链交易的处理系统的功能性划分,并不对其结构、单元模块作实质意义上的割裂,可选但不仅限于通过整块CPU单元或处理器执行完成。
另一方面,本发明还提供一种计算机可读存储介质,其上存储有执行上述任意的处理方法和/或分片方法和/或调用方法的计算机程序。
另一方面,本发明还提供一种计算机系统,包括上述任意的计算机可读存储介质和一个或多个处理器,该处理器被配置为执行上述计算机程序。
上述区块链交易的处理系统、计算机可读存储介质、计算机系统和上述处理方法一致,其技术特征的组合、技术作用和有益效果在此不再赘述,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种区块链交易池的分片方法,其特征在于,包括:
确定需要划分的标准交易池Si的数量X;其中X为正整数;2≤i≤X;
为每个所述标准交易池Si,匹配一一对应的唯一标识;
将每个所述标准交易池Si的唯一标识,作哈希运算,将每个所述标准交易池Si的唯一标识映射至哈希环上的点Ai,以将分片交易池,从结构上划分为X个标准交易池Si;所述分片交易池和普通交易池接口相同,通过增加一个交易分片处理中间层,隔离分片交易池上层业务逻辑,实现与普通交易池无差异化的访问方式;所述分片交易池,包括交易池分片装置和交易池合并装置;所述交易池合并装置,用于进行交易排序。
2.根据权利要求1所述的分片方法,其特征在于,所述X等于N/3的取整数;所述N为区块链CPU的核心数量。
3.根据权利要求1所述的分片方法,其特征在于,所述X的大小由CPU的核心数量、内存容量和网络带宽决定。
4. 根据权利要求1所述的分片方法,其特征在于,所述唯一标识为索引IDi;其中,IDi=Prefix+i;所述Prefix代表所述标准交易池Si的前缀; i代表所述标准交易池Si的序号。
5.根据权利要求4所述的分片方法,其特征在于,所述前缀,为CPU节点的主机名或IP地址或物理地址MAC。
6.根据权利要求1-5任意一项所述的分片方法,其特征在于,所述哈希运算,为MurmurHash。
7.一种区块链交易池的分片系统,其特征在于,包括:
数量确定单元,用于确定需要划分的标准交易池Si的数量X;其中X为正整数;2≤i≤X;
标识匹配单元,与所述数量确定单元连接,用于为每个所述标准交易池Si,匹配一一对应的唯一标识;
映射分块单元,与所述标识匹配单元连接,用于将每个所述标准交易池Si的唯一标识,作哈希运算,将每个所述标准交易池Si的唯一标识映射至哈希环上的点Ai,以将分片交易池,从结构上划分为X个标准交易池Si;所述分片交易池和普通交易池接口相同,通过增加一个交易分片处理中间层,隔离分片交易池上层业务逻辑,实现与普通交易池无差异化的访问方式;所述分片交易池,包括交易池分片装置和交易池合并装置;所述交易池合并装置,用于进行交易排序。
8.根据权利要求7所述的分片系统,其特征在于,所述X等于N/3的取整数;所述N为区块链CPU的核心数量。
9.根据权利要求7所述的分片系统,其特征在于,所述X的大小由CPU的核心数量、内存容量和网络带宽决定。
10.根据权利要求7所述的分片系统,其特征在于,所述唯一标识为索引IDi;其中,IDi=Prefix+i;所述Prefix代表所述标准交易池Si的前缀; i代表所述标准交易池Si的序号。
11.根据权利要求10所述的分片系统,其特征在于,所述前缀,为CPU节点的主机名或IP地址或物理地址MAC。
12.根据权利要求7-11任意一项所述的分片系统,其特征在于,其特征在于,所述哈希运算,为MurmurHash。
13.一种计算机可读存储介质,其特征在于,其上存储有用于执行权利要求1-6任意一项所述的区块链交易池的分片方法的计算机程序。
14.一种计算机系统,其特征在于,包括权利要求13所述的计算机可读存储介质和一个或多个处理器;
所述处理器,被配置为运行所述计算机程序。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111259102.1A CN114140115B (zh) | 2021-10-28 | 2021-10-28 | 区块链交易池的分片方法、系统、存储介质和计算机系统 |
PCT/CN2021/141181 WO2023070925A1 (zh) | 2021-10-28 | 2021-12-24 | 区块链交易池的分片方法、系统、存储介质和计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111259102.1A CN114140115B (zh) | 2021-10-28 | 2021-10-28 | 区块链交易池的分片方法、系统、存储介质和计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114140115A CN114140115A (zh) | 2022-03-04 |
CN114140115B true CN114140115B (zh) | 2022-09-06 |
Family
ID=80396180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111259102.1A Active CN114140115B (zh) | 2021-10-28 | 2021-10-28 | 区块链交易池的分片方法、系统、存储介质和计算机系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114140115B (zh) |
WO (1) | WO2023070925A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710486B (zh) * | 2022-03-09 | 2023-09-08 | 合肥工业大学 | 区块链系统中分片单点过热的监控方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682984B (zh) * | 2016-10-27 | 2019-09-10 | 深圳壹账通智能科技有限公司 | 基于区块链的交易事务处理方法及系统 |
CN108243250B (zh) * | 2018-01-05 | 2020-12-15 | 无锡井通网络科技有限公司 | 一种基于分布式网络的分片快速选择方法 |
CN109146447B (zh) * | 2018-07-09 | 2022-07-05 | 矩阵元技术(深圳)有限公司 | 区块链透明分片方法、装置及系统 |
CN111507695B (zh) * | 2020-04-17 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN113032370A (zh) * | 2021-03-30 | 2021-06-25 | 东北大学 | 一种分区区块链系统的设计方法 |
-
2021
- 2021-10-28 CN CN202111259102.1A patent/CN114140115B/zh active Active
- 2021-12-24 WO PCT/CN2021/141181 patent/WO2023070925A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023070925A1 (zh) | 2023-05-04 |
CN114140115A (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7114629B2 (ja) | ブロックチェーントランザクションの並列検証のためのシステム及び方法 | |
CN111680050B (zh) | 一种联盟链数据的分片处理方法、设备和存储介质 | |
CN111344706B (zh) | 管理区块链上的交易的方法和系统 | |
CN112153085B (zh) | 一种数据处理方法、节点及区块链系统 | |
EP3493084B1 (en) | Method for processing data in bloom filter and bloom filter | |
WO2017133623A1 (zh) | 一种数据流处理方法、装置和系统 | |
CN113708937B (zh) | 区块链交易的处理方法和系统 | |
WO2020173287A1 (en) | Systems and methods for determining network shards in blockchain network | |
CN111144866B (zh) | 数据转移方法、装置、节点设备及存储介质 | |
CN110287205A (zh) | 一种区块链跨分片交易数据处理方法及装置 | |
TWI605340B (zh) | 用於s列表分配之系統與方法 | |
WO2019080232A1 (zh) | 工作流系统中的任务信息传输方法、装置和计算机设备 | |
CN110555079B (zh) | 数据处理方法、装置、设备以及存储介质 | |
WO2022062833A1 (zh) | 内存分配方法及相关设备 | |
US20230102617A1 (en) | Repeat transaction verification method, apparatus, and device, and medium | |
CN114140115B (zh) | 区块链交易池的分片方法、系统、存储介质和计算机系统 | |
JP2017501492A (ja) | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 | |
US20160156747A1 (en) | Management of transmission control blocks (tcbs) supporting tcp connection requests in multiprocessing environments | |
CN113157450B (zh) | 在区块链系统中执行区块的方法及装置 | |
US8156289B2 (en) | Hardware support for work queue management | |
JP2009217750A (ja) | コンピュータシステム、入出力優先度制御方法、及びプログラム | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
WO2024098613A1 (zh) | 一种hmac算法处理系统、方法、设备及非易失性可读存储介质 | |
CN112748996A (zh) | 一种非集中式拓扑系统的负载均衡策略方法及系统 | |
CN114140114A (zh) | X个标准交易池的调用方法、系统、介质和计算机系统 |
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 |