CN113708937B - 区块链交易的处理方法和*** - Google Patents
区块链交易的处理方法和*** Download PDFInfo
- Publication number
- CN113708937B CN113708937B CN202111259077.7A CN202111259077A CN113708937B CN 113708937 B CN113708937 B CN 113708937B CN 202111259077 A CN202111259077 A CN 202111259077A CN 113708937 B CN113708937 B CN 113708937B
- Authority
- CN
- China
- Prior art keywords
- transaction
- pool
- standard
- current
- point
- 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
-
- 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/3226—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 a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- 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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Economics (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Computer Networks & Wireless Communication (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)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及一种区块链交易的处理方法和***,其发明核心在于,采用分治法的思想,提出对区块链交易池结构的分片改进,将单个完整的大的区块链交易池,分片划分为若干小的标准交易池,并根据当前交易的特征值调用适合的小标准交易池处理完成,将线程对交易池的读写锁竞争控制在限定的小标准交易池范围内,在读写锁的加锁或解锁操作中,无需对整个大的区块链交易池进行读写锁的加锁或解锁操作,避免了多个操作之间的拥塞问题,能有效降低冲突的频率,提升交易吞吐率,从而提升交易池整体的处理效率、进而提升区块链***的整体性能。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及一种区块链交易池的分片及调用方法。
背景技术
区块链***的交易是指发给区块链***的一段请求数据,可用于部署智能合约,调用智能合约接口,维护智能合约的生命周期,以及管理资产和价值交换。交易主要由发送者、接受者、交易数据和交易签名四部分组成,是区块链***各种应用的基础。
以用户发起的交易为例,首先,用户需要用自己的私钥给自己创建的交易签名,然后把签名后的交易发送到区块链上,接着由区块链***的多个节点完成共识处理,随后执行交易相关的智能合约代码,生成交易指定的状态数据,最后,由记账节点将交易打包到新发布区块里,和状态数据一起落盘存储。至此,该交易被区块链***确认,而被确认的交易被认为同时具备了一致性和事务性。
区块链交易池(TxPool交易缓冲池),用来暂存未被加入到区块的交易(包括本节点创建的交易和其他节点广播过来的交易)。一方面,需要检验所有提交交易的合法性,另一方面,然后从中选择合法交易交由区块链***的共识机制确认,并需要缓存所有待处理的合法交易。交易池作为区块链***的核心部件,在交易发出到上链的整个生命周期里都有交易池的参与,因此,交易池的性能直接影响区块链***性能。
如图1所示(以太坊的交易池),区块链交易池的资源调度存在于每条交易从发出到上链的全生命周期里(包括:RPC线程,Sync线程,Channel线程, Verify线程和打包线程等)。例如,网络接收到一个待打包的交易,需要获取交易池的写锁(独占模式锁住),然后将交易写入交易池中,共识模块打包过程需要获取交易池读锁(共享模式锁住),从中提取交易进行执行,当交易执行完并获得区块后,获取写锁(独占模式锁住),从交易池中删除已打包交易。但是,现有方法在该过程,对交易池整体频繁使用读写锁,导致交易池的锁竞争成为***“热点”,制约了区块链***的整体性能的进一步提升。尤其是,制约区块链***交易吞吐率的提升(transaction-per-second,TPS每秒处理的交易的次数) 随着用户量和交易量的增加,低TPS已经不能满足需求,成为制约区块链***性能提升的瓶颈。
为了提升TPS,业界提出了不同的交易池优化方案。公开号为 CN110599136A的专利,提供了一种区块链交易池流量管控的方法,通过获取区块链节点对应的用户集合,以及所述区块链节点对应的交易池的最大缓存容量,为所述用户集合中的每个用户分别配置与所述交易池关联的流量阈值,用以提供交易池的整体利用率。FISCO BCOS对交易池性能的优化采用拆分且并行执行交易验证任务、交易异步通知策略来优化交易流水线处理效率。
现有区块链交易池进行读操作或写操作都是通过线程实现的,线程作为独立运行和调度的基本单位。现有的区块链***有且仅有一个完整的交易池,通过读写锁进行调度,为了保持数据的一致性,每个操作都需要对交易池整体进行加锁或解锁,由于使用大量的锁导致多个操作之间产生堵塞。
因此,如何优化区块链交易池,以提升交易吞吐率、避免频繁读写锁,进而提升区块链***的整体性能,是目前区块链技术领域亟待解决的技术问题。
发明内容
为解决上述技术问题,本发明提供一种区块链交易的处理方法,包括:
分片步骤:将区块链交易池,划分为X个标准交易池Si;其中X为正整数; 2≤i≤X;
调用步骤:根据当前交易Tj的特征值,调用所述标准交易池Si中的1至X-1 个,完成所述当前交易Tj。
进一步地,所述分片步骤,包括:
数量确定:确定标准交易池Si的数量X;
标识匹配:为每个所述标准交易池Si,匹配一一对应的唯一标识;
映射分块:将每个所述标准交易池Si的唯一标识,作哈希运算,将每个所述标准交易池Si的唯一标识映射至哈希环上的点Ai,以将区块链交易池,划分为X个标准交易池Si。
进一步地,所述调用步骤,包括:
特征值生成:生成所述当前交易Tj的特征值;
映射定点:将所述当前交易Tj的Nonce值,作哈希运算,将所述当前交易 Tj映射至哈希环上的点Bj;
判断调用:根据点Ai和Bj的位置,调用所述标准交易池Si中的1至X-1个,完成所述当前交易Tj。
进一步地,所述判断调用的步骤,包括:
判断点Bj的位置是否与点Ai的位置重合;
若重合,则调用点Ai所对应的标准交易池Si,完成当前交易;
若不重合,则调用与点Bj顺时针方向最近的点Ai所对应的标准交易池Si或与点Bj逆时针方向最近的点Ai-1所对应的标准交易池Si-1,完成当前交易。
进一步地,所述若重合,则调用点Ai所对应的标准交易池Si,完成当前交易的步骤,包括:
若重合,则判断标准交易池Si的交易数量是否超过设定阈值;
若未超过设定阈值,则调用标准交易池Si,完成当前交易;
若超过设定阈值,则等待,并再次判断标准交易池Si的交易数量是否超过设定阈值,直到标准交易池Si的交易数量未超过设定阈值,完成当前交易。
进一步地,所述若不重合,则调用与点Bj顺时针方向最近的点Ai所对应的标准交易池Si或与点Bj逆时针方向最近的点Ai-1所对应的标准交易池Si-1,完成当前交易的步骤,包括:
若不重合,则判断与点Bj顺时针方向最近的点Ai所对应的标准交易池Si的交易数量,是否超过设定阈值;
若未超过设定阈值,则调用标准交易池Si,完成当前交易;
若超过设定阈值,则判断与点Bj逆时针方向最近的点Ai-1所对应的标准交易池Si-1的交易数量,是否超过设定阈值;
若未超过设定阈值,则调用标准交易池Si-1,完成当前交易;
若超过设定阈值,则等待,并返回若不重合,则判断与点Bj顺时针方向最近的点Ai所对应的标准交易池Si的交易数量,是否超过设定阈值的步骤,直到标准交易池Si、Si-1的其中一个的交易数量未超过设定阈值,则调用其完成当前交易。
进一步地,所述调用所述标准交易池Si中的1至X-1个,完成所述当前交易Tj之前,还包括步骤:
判断所述当前交易Tj是否为有效交易;
若所述当前交易Tj为有效交易,则进行调用所述标准交易池Si中的1至 X-1个,完成所述当前交易Tj的步骤;
若所述当前交易Tj不为有效交易,则不进行调用所述标准交易池Si中的1 至X-1个,完成所述当前交易Tj的步骤。
进一步地,所述判断所述当前交易Tj是否为有效交易的步骤,包括:
判断所述当前交易Tj是否合法;
若不合法,则判定所述当前交易Tj不为有效交易;
若合法,则判定所述当前交易Tj为有效交易。
进一步地,所述判断所述当前交易Tj是否为有效交易的步骤,包括:
判断所述当前交易Tj是否合法;
若不合法,则判定所述当前交易Tj不为有效交易;
若合法,则继续判断所述当前交易Tj是否为重复交易;
若为重复交易,则判定所述当前交易Tj不为有效交易;
若不为重复交易,则判定所述当前交易Tj为有效交易。
另一方面,本发明还提供一种区块链交易的处理***,包括:
分片模块,用于将区块链交易池,划分为X个标准交易池Si;其中X为正整数;2≤i≤X;
调用模块,与所述分片模块连接,用于根据当前交易Tj的特征值,调用所述标准交易池Si中的1至X-1个,完成所述当前交易Tj。
进一步地,所述分片模块,包括:
数量确定单元,用于确定标准交易池Si的数量X;
标识匹配单元,与所述数量确定单元连接,用于为每个所述标准交易池Si,匹配一一对应的唯一标识;
映射分块单元,与所述标识匹配单元连接,用于将每个所述标准交易池Si的唯一标识,作哈希运算,将每个所述标准交易池Si的唯一标识映射至哈希环上的点Ai,以将区块链交易池,划分为X个标准交易池Si。
进一步地,所述调用模块,包括:
特征值生成单元,用于生成所述当前交易Tj的特征值;
映射定点单元,与所述特征值生成单元连接,用于将所述当前交易Tj的 Nonce值,作哈希运算,将所述当前交易Tj映射至哈希环上的点Bj;
判断调用单元,与所述映射分块单元和映射定点单元连接,用于根据点Ai和Bj的位置,调用所述标准交易池Si中的1至X-1个,完成所述当前交易Tj。
进一步地,所述处理***,用于执行上述任意的处理方法。
本发明提供的区块链交易的处理方法和***,采用分治法的思想,提出对交易池结构的分片改进,将单个完整的大的区块链交易池,分片划分为若干小的标准交易池,根据当前交易的特征值调用适合的小标准交易池处理完成,将线程对交易池的读写锁竞争控制在限定的小标准交易池范围内,在读写锁的加锁或解锁操作中,无需对整个大的区块链交易池进行读写锁的加锁或解锁操作,避免了多个操作之间的拥塞问题,能有效降低冲突的频率,提升交易吞吐率,从而提升交易池整体的处理效率、进而提升区块链***的整体性能。
附图说明
图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:将一个区块链交易池Pool,划分为X个标准交易池(SubPooli,后续简称为Si);其中,X为正整数。具体的,(如图3所示),分片交易池***,可选但不仅限于包括一个区块链交易池(分片交易池)和若干个标准交易池等实体构成。各实体在两层交易池***中所扮演的角色与拥有的功能具体介绍如下: 1、分片交易池:该池接口和普通交易池接口相同,通过增加一个交易分片处理中间层,隔离交易池上层业务逻辑,实现与普通交易池无差异化的访问方式。分片交易池具备两个关键组件:(1)交易池分片装置,该装置可选但不仅限于采用一种基于一致性哈希环的交易池分片算法实现,由于交易哈希具备较好离散性,交易池交易具备较好的平衡性,可实现交易较均匀的分布在各标准交易池;(2)交易池交易合并装置,该装置主要是对分片交易池进行交易排序获取时需要用到,主要实现一个先进先出的排序方法。在公有链模式下,合并装置还需要基于最大收益率对交易进行排序。另外,该装置构建一个全局的交易优先队列,用于实现对不同标准交易池的交易排序方法。2、标准交易池:X个标准交易池一致,满足区块链常规交易处理的所有流程,与具体区块链采用的网络模块和共识算法相关,包括对单独标准交易池的写入、交易排序、读取、删除几个标准接口。
S2:根据当前交易的特征值,调用上述标准交易池中的1至X-1个,完成当前交易。
在该实施例中,本发明的区块链交易的处理方法,采用分治法的思想,提出对交易池结构的分片改进,将单个完整的大的区块链交易池,分片划分为若干小的标准交易池,根据当前交易的特征值调用适合的小标准交易池处理完成,将线程对交易池的读写锁竞争控制在限定的小标准交易池范围内,在读写锁的加锁或解锁操作中,无需对整个大的区块链交易池进行读写锁的加锁或解锁操作,避免了多个操作之间的拥塞问题,能有效降低冲突的频率,提升交易吞吐率,从而提升交易池整体的处理效率、进而提升区块链***的整体性能。
具体的,如图4所示,步骤S1中,划分步骤可选但不仅限于包括:
S11:确定将原本完整的区块链交易池,划分为若干标准交易池的数量X。具体的,该数量X为经验值,可选但不仅限于由本领域技术人员根据节点自身 CPU的核心数量N,即并行处理能力,而预先自由设定,优选为等于N/3的取整数。更为具体的,该数量X,可预先设置,通过输入设备直接输入;或根据当前情况计算得到。
S12:为划分的每个标准交易池Si,匹配一一对应的唯一标识。具体的,可选但不仅限于为X个标准交易池的每个标准交易池Si创建类似于身份证名片一样的索引IDi,作为对应标准交易池的唯一标识。更为具体的,该索引IDi可选但不仅限于以Prefix+i表示(即:IDi=Prefix+i)。其中,Prefix代表交易池前缀,可选但不仅限于为节点的主机名或节点的IP地址;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,进一步确保在读写锁的加锁或解锁操作中,无需对整个大的区块链交易池进行读写锁的加锁或解锁操作,避免了多个操作之间的拥塞问题,能有效降低冲突的频率,提升交易吞吐率,从而提升交易池整体的处理效率、进而提升区块链***的整体性能。
优选的,为避免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 为正整数;
调用模块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 (12)
1.一种区块链交易的处理方法,其特征在于,包括:
分片步骤:将分片交易池,从结构上划分为X个标准交易池Si;其中X为正整数;所述分片交易池和普通交易池接口相同,通过增加一个交易分片处理中间层,隔离分片交易池上层业务逻辑,实现与普通交易池无差异化的访问方式;所述分片交易池,包括交易池分片装置和交易池合并装置;所述交易池合并装置,用于进行交易排序;
调用步骤:根据当前交易Tj的特征值,调用所述标准交易池Si中的任意1个,完成所述当前交易Tj。
2.根据权利要求1所述的处理方法,其特征在于,所述分片步骤,包括:
数量确定:确定标准交易池Si的数量X;
标识匹配:为每个所述标准交易池Si,匹配一一对应的唯一标识;
映射分块:将每个所述标准交易池Si的唯一标识,作哈希运算,将每个所述标准交易池Si的唯一标识映射至哈希环上的点Ai,以将分片交易池,划分为X个标准交易池Si。
3.根据权利要求2所述的处理方法,其特征在于,调用步骤,包括:
特征值生成:生成所述当前交易Tj的特征值;
映射定点:将所述当前交易Tj的特征值,作哈希运算,将所述当前交易Tj映射至哈希环上的点Bj;
判断调用:根据点Ai和点Bj的位置,调用所述标准交易池Si中的任意1个,完成所述当前交易Tj。
4.根据权利要求3所述的处理方法,其特征在于,所述判断调用的步骤,包括:
判断点Bj的位置是否与点Ai的位置重合;
若重合,则调用点Ai所对应的标准交易池Si,完成当前交易;
若不重合,则调用与点Bj顺时针方向最近的点Ai所对应的标准交易池Si或与点Bj逆时针方向最近的点Ai-1所对应的标准交易池Si-1,完成当前交易。
5.根据权利要求4所述的处理方法,其特征在于,所述若重合,则调用点Ai所对应的标准交易池Si,完成当前交易的步骤,包括:
若重合,则判断标准交易池Si的交易数量是否超过设定阈值;
若未超过设定阈值,则调用标准交易池Si,完成当前交易;
若超过设定阈值,则等待,并再次判断标准交易池Si的交易数量是否超过设定阈值,直到标准交易池Si的交易数量未超过设定阈值,完成当前交易。
6.根据权利要求4所述的处理方法,其特征在于,所述若不重合,则调用与点Bj顺时针方向最近的点Ai所对应的标准交易池Si或与点Bj逆时针方向最近的点Ai-1所对应的标准交易池Si-1,完成当前交易的步骤,包括:
若不重合,则判断与点Bj顺时针方向最近的点Ai所对应的标准交易池Si的交易数量,是否超过设定阈值;
若未超过设定阈值,则调用标准交易池Si,完成当前交易;
若超过设定阈值,则判断与点Bj逆时针方向最近的点Ai-1所对应的标准交易池Si-1的交易数量,是否超过设定阈值;
若未超过设定阈值,则调用标准交易池Si-1,完成当前交易;
若超过设定阈值,则等待,并返回若不重合,则判断与点Bj顺时针方向最近的点Ai所对应的标准交易池Si的交易数量,是否超过设定阈值的步骤,直到标准交易池Si、Si-1的其中一个的交易数量未超过设定阈值,则调用其完成当前交易。
7.根据权利要求1-6任意一项所述的处理方法,其特征在于,调用所述标准交易池Si中的任意1个,完成所述当前交易Tj之前,还包括步骤:
判断所述当前交易Tj是否为有效交易;
若所述当前交易Tj为有效交易,则进行调用所述标准交易池Si中的任意1个,完成所述当前交易Tj的步骤;
若所述当前交易Tj不为有效交易,则不进行调用所述标准交易池Si中的任意1个,完成所述当前交易Tj的步骤。
8.根据权利要求7所述的处理方法,其特征在于,所述判断所述当前交易Tj是否为有效交易的步骤,包括:
判断所述当前交易Tj是否合法;
若不合法,则判定所述当前交易Tj不为有效交易;
若合法,则判定所述当前交易Tj为有效交易。
9.根据权利要求7所述的处理方法,其特征在于,所述判断所述当前交易Tj是否为有效交易的步骤,包括:
判断所述当前交易Tj是否合法;
若不合法,则判定所述当前交易Tj不为有效交易;
若合法,则继续判断所述当前交易Tj是否为重复交易;
若为重复交易,则判定所述当前交易Tj不为有效交易;
若不为重复交易,则判定所述当前交易Tj为有效交易。
10.一种区块链交易的处理***,其特征在于,包括:
分片模块,用于将分片交易池,从结构上划分为X个标准交易池Si;其中X为正整数; 所述分片交易池和普通交易池接口相同,通过增加一个交易分片处理中间层,隔离分片交易池上层业务逻辑,实现与普通交易池无差异化的访问方式;所述分片交易池,包括交易池分片装置和交易池合并装置;所述交易池合并装置,用于进行交易排序;
调用模块,与所述分片模块连接,用于根据当前交易Tj的特征值,调用所述标准交易池Si中的任意1个,完成所述当前交易Tj。
11.根据权利要求10所述的处理***,其特征在于,所述分片模块,包括:
数量确定单元,用于确定标准交易池Si的数量X;
标识匹配单元,与所述数量确定单元连接,用于为每个所述标准交易池Si,匹配一一对应的唯一标识;
映射分块单元,与所述标识匹配单元连接,用于将每个所述标准交易池Si的唯一标识,作哈希运算,将每个所述标准交易池Si的唯一标识映射至哈希环上的点Ai,以将分片交易池,划分为X个标准交易池Si。
12.根据权利要求11所述的处理***,其特征在于,所述调用模块,包括:
特征值生成单元,用于生成所述当前交易Tj的特征值;
映射定点单元,与所述特征值生成单元连接,用于将所述当前交易Tj的特征值,作哈希运算,将所述当前交易Tj映射至哈希环上的点Bj;
判断调用单元,与所述映射分块单元和所述映射定点单元连接,用于根据点Ai和Bj的位置,调用所述标准交易池Si中的任意1个,完成所述当前交易Tj。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111259077.7A CN113708937B (zh) | 2021-10-28 | 2021-10-28 | 区块链交易的处理方法和*** |
PCT/CN2021/141180 WO2023070924A1 (zh) | 2021-10-28 | 2021-12-24 | 区块链交易的处理方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111259077.7A CN113708937B (zh) | 2021-10-28 | 2021-10-28 | 区块链交易的处理方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113708937A CN113708937A (zh) | 2021-11-26 |
CN113708937B true CN113708937B (zh) | 2022-03-01 |
Family
ID=78647228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111259077.7A Active CN113708937B (zh) | 2021-10-28 | 2021-10-28 | 区块链交易的处理方法和*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113708937B (zh) |
WO (1) | WO2023070924A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113708937B (zh) * | 2021-10-28 | 2022-03-01 | 湖南天河国云科技有限公司 | 区块链交易的处理方法和*** |
CN114205160B (zh) * | 2021-12-13 | 2024-05-28 | 深圳前海微众银行股份有限公司 | 基于区块链的数据处理方法、装置及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112839086A (zh) * | 2021-01-06 | 2021-05-25 | 中山大学 | 基于区块链分片技术的网络资源分配方法和装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991008B (zh) * | 2016-01-20 | 2020-12-18 | 华为技术有限公司 | 一种资源锁管理方法、相关设备及*** |
US11489662B2 (en) * | 2018-08-30 | 2022-11-01 | International Business Machines Corporation | Special relationships in a blockchain |
CN110489059B (zh) * | 2019-07-11 | 2022-04-12 | 平安科技(深圳)有限公司 | 数据集群存储的方法、装置及计算机设备 |
CN110717762B (zh) * | 2019-12-16 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN110737668B (zh) * | 2019-12-17 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 数据存储方法、数据读取方法、相关设备及介质 |
CN111127013B (zh) * | 2019-12-24 | 2023-12-29 | 深圳大学 | 基于区块链的去中心化数据交易方法、装置、设备及介质 |
CN111181715B (zh) * | 2019-12-30 | 2022-07-12 | 杭州云象网络技术有限公司 | 一种基于一致性哈希共识协议的多方跨链方法 |
CN111507695B (zh) * | 2020-04-17 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN111611321B (zh) * | 2020-06-29 | 2023-07-25 | 度小满科技(北京)有限公司 | 一种数据存储方法、装置及区块链*** |
CN112260836A (zh) * | 2020-09-28 | 2021-01-22 | 电子科技大学 | 一种基于分片技术提升区块链吞吐量的方法 |
CN113708937B (zh) * | 2021-10-28 | 2022-03-01 | 湖南天河国云科技有限公司 | 区块链交易的处理方法和*** |
-
2021
- 2021-10-28 CN CN202111259077.7A patent/CN113708937B/zh active Active
- 2021-12-24 WO PCT/CN2021/141180 patent/WO2023070924A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112839086A (zh) * | 2021-01-06 | 2021-05-25 | 中山大学 | 基于区块链分片技术的网络资源分配方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023070924A1 (zh) | 2023-05-04 |
CN113708937A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7434448B2 (ja) | ブロックチェーントランザクションの並列検証のためのシステム及び方法 | |
CN113708937B (zh) | 区块链交易的处理方法和*** | |
CN106406896B (zh) | 一种并行PipeLine技术的区块链建块方法 | |
CN112153085B (zh) | 一种数据处理方法、节点及区块链*** | |
WO2018076760A1 (zh) | 基于区块链的交易事务处理方法、***、电子装置及存储介质 | |
US10235538B2 (en) | Method and server for providing notary service for file and verifying file recorded by notary service | |
JP2021508877A (ja) | 高性能分散型記録システム | |
WO2017133623A1 (zh) | 一种数据流处理方法、装置和*** | |
WO2020173287A1 (en) | Systems and methods for determining network shards in blockchain network | |
JP2021508876A (ja) | 高性能分散型記録システムにおける同時トランザクション処理 | |
CN111144866B (zh) | 数据转移方法、装置、节点设备及存储介质 | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约*** | |
CN109493051B (zh) | 可动态进行账户分配及迁移的主链加并行多子链***架构 | |
WO2019080232A1 (zh) | 工作流***中的任务信息传输方法、装置和计算机设备 | |
CN110555079B (zh) | 数据处理方法、装置、设备以及存储介质 | |
US20230102617A1 (en) | Repeat transaction verification method, apparatus, and device, and medium | |
US10212259B2 (en) | Management of transmission control blocks (TCBs) supporting TCP connection requests in multiprocessing environments | |
CN114140115B (zh) | 区块链交易池的分片方法、***、存储介质和计算机*** | |
JP2017501492A (ja) | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 | |
CN113157450B (zh) | 在区块链***中执行区块的方法及装置 | |
JP2009217750A (ja) | コンピュータシステム、入出力優先度制御方法、及びプログラム | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN112634034B (zh) | 预约方法、装置、电子设备及计算机可读存储介质 | |
WO2024098613A1 (zh) | 一种hmac算法处理***、方法、设备及非易失性可读存储介质 | |
CN116703601B (zh) | 基于区块链网络的数据处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |