CN114677222A - 区块链的并行交易处理方法、系统和计算机存储介质 - Google Patents
区块链的并行交易处理方法、系统和计算机存储介质 Download PDFInfo
- Publication number
- CN114677222A CN114677222A CN202210429003.1A CN202210429003A CN114677222A CN 114677222 A CN114677222 A CN 114677222A CN 202210429003 A CN202210429003 A CN 202210429003A CN 114677222 A CN114677222 A CN 114677222A
- Authority
- CN
- China
- Prior art keywords
- transaction
- node
- nodes
- main
- requests
- 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
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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及区块链的并行交易处理方法、系统和计算机存储介质,一方面将X个共识节点设置为主节点,将绑定到主节点上的额外工作负载分配至X个副本上,而非一个副本上,进行分流以降低主节点的工作负载;另一方面将交易请求划分为Y个分区,分配至Z个主节点,在请求交易阶段实现并行;二者将工作流共识→执行与工作流执行→共识→验证结合,将请求进行分区,并行进行工作流,节点对部分分区的交易请求调用共识协议来商定事务的顺序,并行进行正常节点推测执行客户端事务的排序,当出现不一致时,只是一个主节点引导的交易请求重新开始执行共识协议并且正常节点同时进行推测事务,大大提高了工作流速度和响应速度,减轻了单个主节点的任务量。
Description
技术领域
本发明涉及区块链领域,特别是涉及一种区块链的并行交易处理技术。
背景技术
跨企业交易应用程序(例如,股票交易)促进了相互不信任的参与者(例如,客户和商家)之间交易的即时记录和清算。这些交易应用程序通常部署在一个或多个数据中心,通过专用网线连接,以处理大量具有实时提交延迟的事务。区块链可以处理分布式事务被大量应用程序使用,同时也吸引了学术界为交易应用开发各种许可的区块链框架。被许可区块链由大量可识别参与者共同维护,可以快速进行拜占庭容错共识协议(BFT)对提交交易事务。
现有的BFT系统使用一个单一副本作为主节点leader(无论是完全排序请求或执行准备),这实际上降低了应用程序的处理速度。在一定程度上,这个问题可以通过在副本之间旋转leader角色来缓解。然而,由于这些方法是基于一个完全有序的请求序列,并且只是分割了建立请求序列的责任,因此效果是有限的。
为了使BFT系统可以同时进行多个事务请求处理,于是将绑定到leader角色的额外工作负载分配到所有副本上,并在请求交易阶段实现并行。但是在一个独立的BFT协议实例中管理每个分区来实现的并进行工作流的预测,节点会对结果进行验证,提交有效的结果,中止无效的结果,其工作流是执行→共识→验证,但是这种的中止率很高。
因此,如何减轻主节点的负载负担,又能提高工作流效率是区块链交易处理中亟待解决的技术问题。
发明内容
为解决上述技术问题,本发明提供一种区块链的并行交易处理方法,包括:
S1:将区块链节点划分为正常节点和共识节点,并选定X个共识节点为主节点;
S2:上传交易请求,并将交易请求划分为Y个分区;
S3:在X个主节点中,选定Z个主节点引导Y个分区的交易请求;
S4:Z个主节点,对自身引导的交易请求进行排序和标识,并广播至共识节点和正常节点;
S5:对Z个主节点排序编号,并令n=1;
S6:共识节点和正常节点分别对第n个主节点引导的交易请求排序;
S7:判断共识节点和正常节点对第n个主节点引导的交易请求排序的排序结果是否一致;
S8:若不一致,返回步骤S6;
S9:若一致,则第n个主节点引导的交易请求交易成功,令n=n+1;
S10:判断n>Z是否成立;
S11,若否,则返回步骤S6,若是则结束;
其中,X、Y、Z为正整数,且X>1;Y>1;1<Z≤X。
进一步地,步骤S2,包括,
S21:提取交易请求的特征;
S22:根据交易请求的特征将交易请求划分为Y个分区。
进一步地,步骤S3,包括:
S31:获取每个分区的交易请求的数量;
S32:获取每个主节点的当前容量阈值;
S33:根据每个分区的交易请求的数量和每个主节点的当前容量阈值,在X个主节点中选定Z个主节点引导Y个分区的交易请求,使得每个主节点引导的交易请求的数量不超过其当前容量阈值。
进一步地,步骤S33,包括:
S331:将Y个分区编号为Yi,将Z个主节点编号为Zj,1≤i≤Y,1≤j≤Z;
S332:初始化i=1,j=1;
S333:判断第i个分区的交易请求的数量yi是否超过第j个主节点的当前容量阈值zj;
S334:若否,则将第i个分区的交易请求分配至第j个主节点;令i=i+1;判断i>Y或j>Z是否成立,若是则结束,若否则返回步骤S333;
S335:若是,则将第i个分区的前zj个交易请求分配至第j个主节点,令第i个分区当前的交易请求的数量yi=yi-zj;令j=j+1;返回步骤S332。
进一步地,步骤S33,包括:
S331’:将Y个分区编号为Yi,将Z个主节点编号为Zj,1≤i≤Y,1≤j≤Z;
S332’:初始化i=1,j=1;
S333’:判断第i个分区的交易请求的数量yi是否超过第j个主节点的当前容量阈值xj;
S334’:若否,则将第i个分区的交易请求分配至第j个主节点;令i=i+1,j=j+1;判断i>Y或j>X是否成立,若是则结束,若否则返回步骤S333’;
S335’:若是,则将第i个分区的前zj个交易请求分配至第j个主节点,令第i个分区当前的交易请求的数量yi=yi-zj;令j=j+1;返回步骤S332’。
进一步地,步骤S2,还包括:
S23:根据交易请求的特征,将Y个分区进行优先级排序。
进一步地,步骤S2,包括:
S21’:对主节点排序标号,并提取每个主节点的当前容量阈值;
S22’:按照每个主节点的当前容量阈值,将交易请求划分为Y个分区;
步骤S3,包括:
S31’:将Y个分区的交易请求,按序分配至Z个主节点,其中Z=Y。
另一方面,本发明还提供一种区块链的并行交易处理系统,包括:
节点划分装置,用于将区块链节点划分为正常节点和共识节点,并选定X个共识节点为主节点;
请求划分装置,用于上传交易请求,并将交易请求划分为Y个分区;
节点选定装置,用于在X个主节点中,选定Z个主节点引导Y个分区的交易请求;
排序一致性判断装置,用于:
Z个主节点,对自身引导的交易请求进行排序和标识,并广播至共识节点和正常节点;
对Z个主节点排序编号,并令n=1;
共识节点和正常节点分别对第n个主节点引导的交易请求排序;
判断共识节点和正常节点对第n个主节点引导的交易请求排序的排序结果是否一致;
若不一致,重新排序;
若一致,则第n个主节点引导的交易请求交易成功,直至完成所有主节点的遍历;
其中,X、Y、Z为正整数,且X>1;Y>1;1<Z≤X。
进一步地,并行交易处理系统,用于执行上述任意的并行交易处理方法。
另一方面,本发明还提供一种计算机存储介质,存储有计算机程序;所述计算机程序,用于执行上述任意的并行交易处理方法。
本发明的区块链的并行交易处理方法、系统和计算机存储介质,一方面相较于现有技术中只有一个主节点,其将X个共识节点设置为主节点,将绑定到主节点上的额外工作负载分配至X个副本上,而非一个副本上,进行分流以降低主节点的工作负载;另一方面将交易请求划分为Y个分区,分配至Z个主节点,在请求交易阶段实现并行;二者将工作流共识→执行与工作流执行→共识→验证结合,将请求进行分区,并行进行工作流,节点对部分分区的交易请求调用共识协议(如拜占庭容错)来商定事务的顺序,并行进行正常节点推测执行客户端事务的排序,当出现不一致时,只是一个主节点引导的交易请求重新开始执行共识协议并且正常节点同时进行推测事务,大大提高了工作流速度,减轻了单个主节点的任务量。示例的,传统方法中,若交易请求有100个,由单一的主节点引导,不仅需要对100个交易请求进行排序,而且如果出错则共识节点和正常节点均需要对这100个交易请求重新排序执行,任务量大且相应速度慢。采用本发明的并行交易处理方法,不仅采用共识节点和正常节点并行进行工作流排序验证是否一致,排除存储恶意节点等情况,而且将交易请求分区划分给多个主节点,每次仅对一个主节点引导的交易请求进行排序执行,若存在错误时,仅需对该主节点引导的交易请求重新排序执行,大大减小了任务量、提高了响应速度。
附图说明
图1为本发明区块链的并行交易处理方法的一个实施例的流程图;
图2为交易请求的示意图。
具体实施方式
如图1所示,提供了一种区块链的并行交易处理方法,包括:
S1:将区块链节点划分为正常节点和共识节点,并选定X个共识节点为主节点;其中X为正整数,且X>1。具体的,正常节点,即为不参与共识协议排序过程的节点;共识节点,即为参与共识协议排序过程的节点。更为具体的,每个共识节点均可被随机提升为共识节点的主节点(leader),客户端将交易请求分配给主节点(负责的共识节点)。更为具体的,共识节点可选但不仅限于采用拜占庭容错BFT共识机制。
S2:上传交易请求,并将交易请求划分为Y个分区;其中Y为正整数,且Y>1。具体的,可选但不仅限于根据交易请求的特征或/和主节点的特征,将交易请求分区划分,更为具体的,交易请求的特征,可选但不仅限于为交易请求的类型等;主节点的特征,可选但不仅限于主节点的负载(容量阈值,即最多容纳处理的交易请求数量)、运行时状态(当前处理量)等。更为具体的,客户端可选但不仅限于将交易请求上传至共识节点,并为共识节点配置预测器组件,分析提取交易请求的特征或/和主节点的特征,将交易请求分区划分为Y个分区。更为具体的,预测器组件可选但不仅限于设定为结构相同的预测器,期内承载应用程序PREDICT()函数,以分析每个交易请求和主节点的特征。
S3:在X个主节点中,选定Z个主节点引导Y个分区的交易请求;Z为正整数,且1<Z≤X。具体的,每个主节点(leader)可选但不仅限于引导一个或多个分区的交易请求,并行进行后续执行阶段。也就是说,针对Y个分区的交易请求,主节点的总个数X以及选定的主节点个数Z,可选但不仅限于等于、小于或大于Y。示例的,假设将交易请求划分为5个分区(Y),那么主节点的个数可以是大于1的任意整数,若主节点的总个数(X)为3,那么可选但不仅限于将5个分区的交易请求分配至2个(Z)主节点或3个(Z)主节点,其中一个主节点可能引导一个分区或多个分区;若主节点的总体个数(X)为6,则可选但不仅限于将5个分区的交易请求分配至2、3、4、5个(Z)分区,其中一个主节点可以引导一个分区或多个分区,也有未分到分区的空余主节点。
S4:Z个主节点,对自身引导的交易请求进行排序和标识,并广播至共识节点和正常节点;具体的,主节点leader可选但不仅限于作为定序器,用连续的序列号对自身引导的交易请求进行排序,并为每个交易请求附上签名标识,以便于后续一对一的对应。
S5:对Z个主节点排序编号,并令n=1;
S6:共识节点和正常节点分别对第n个主节点引导的交易请求排序;具体的,共识节点在单个主节点引导的交易请求中运行共识算法,如拜占庭容错BFT协议进行排序,优选为按照每个交易请求哈希序列的顺序进行共识,每次仅运行一个请求,其它请求作为占位符。具体的,可选但不仅限于从交易请求编号(ID号)最小的开始执行;具体的,正常节点在单个主节点引导的交易请求中采用调度器,得到交易请求的序列号,然后推测性地顺序执行交易请求(客户端实物)。更为具体的,为确保在非确定性交易时系统的状态一致性。系统采用了multi-write协议,以使正常节点遵循相同的执行结果。
S7:判断共识节点和正常节点对第n个主节点引导的交易请求排序的排序结果是否一致;具体的,从这个主节点引导的第一个交易请求开始判断,直至最后一个交易请求,若未出现一个排序不一致则判定为排序一致;若出现一个排序不一致则判定为排序不一致,后面的无需再继续判断。
S8:若不一致,返回步骤S6;具体的,若不一致,则表征存在对手,即恶意节点(可能为共识节点或正常节点)、交易错误等,导致出现二者交易顺序不一致,进而结果也会不一致的情况,此时需要中止交易,返回步骤S6,转换一个新的共识节点对请求的工作流进行共识排序,如拜占庭容错BFT协议共识,存在一个试图更换协议来引导其他共识节点进入一个被许可区块链。同时正常节点也遵循约定的请求顺序流重新排序。
S9:若一致,则第n个主节点引导的交易请求交易成功,令n=n+1;具体的,若一致,则表征不存在对手,即恶意节点、交易错误等,导致出现二者交易顺序不一致,进而结果也会不一致的情况,此时可以提交交易请求事务,保障该主节点引导的交易请求交易成功。
S10:判断n>Z是否成立;具体的,执行到步骤S9,即完成一个主节点(第n个主节点)所引导的交易请求的遍历,需要进入下一个主节点(第n=n+1个主节点),此时需要判断是否所有主节点都遍历完成,达到选定的主节点的个数。
S11,若否,则返回步骤S6,若是则结束。
本发明的区块链的并行交易处理方法,一方面相较于现有技术中只有一个主节点,其将X个共识节点设置为主节点,将绑定到主节点上的额外工作负载分配至X个副本上,而非一个副本上,进行分流以降低主节点的工作负载;另一方面将交易请求划分为Y个分区,分配至Z个主节点,在请求交易阶段实现并行;二者将工作流共识→执行与工作流执行→共识→验证结合,将请求进行分区,并行进行工作流,节点对部分分区的交易请求调用共识协议(如拜占庭容错)来商定事务的顺序,并行进行正常节点推测执行客户端事务的排序,当出现不一致时,只是一个主节点引导的交易请求重新开始执行共识协议并且正常节点同时进行推测事务,大大提高了工作流速度,减轻了单个主节点的任务量。示例的,传统方法中,若交易请求有100个,由单一的主节点引导,不仅需要对100个交易请求进行排序,而且如果出错则共识节点和正常节点均需要对这100个交易请求重新排序执行,任务量大且相应速度慢。采用本发明的并行交易处理方法,不仅采用共识节点和正常节点并行进行工作流排序验证是否一致,排除存储恶意节点等情况,而且将交易请求分区划分给多个主节点,每次仅对一个主节点引导的交易请求进行排序执行,若存在错误时,仅需对该主节点引导的交易请求重新排序执行,大大减小了任务量、提高了响应速度。
优选的,在一个实施例中,步骤S2,可选但不仅限于包括:
S21:提取交易请求的特征;S22:根据交易请求的特征将交易请求划分为Y个分区{D1……DY,D表示交易请求Deal的简称}。具体的,为详细解释交易请求的划分过程,以股票交易为例做解释说明,值得注意的,该股票交易及其类型和具体数量仅为适应性举例,不对本发明并行交易处理方法的应用范围作任何限定。假设如图2所示,按序上传10个股票交易请求①-⑩(值得注意的,本案的数量,如此处的10个交易请求、后续的主节点的容量阈值等仅为适应性举例,事实上应该是数以万计数量级的数量),则可提取其特征(如交易类型),将10个交易请求划分为4个分区,具体的包括:分区1——2个买单请求①⑦(买家广播需要购买多少股票、定价多少)、分区2——3个卖单请求⑤⑥⑩(卖家广播需要售出多少股票、定价多少)、分区3——3个成单请求②④⑧(买卖双方达成交易,广播股票转让和资金转让的请求)和分区4——2个撤单请求③⑨(买家或卖家挂单后,暂无响应,需要撤单重新广播交易的请求)。值得注意的,以交易类型作为交易请求的特征仅为适应性举例,本领域技术人员还可选但不仅限于提取交易请求的时间节点、重要性程度、优先级顺序、客户端种类等作为交易请求的特征,以此作为交易请求的划分标准。
在该实施例中,给出了步骤S2,如何划分交易请求的一个具体实施例,其根据交易请求的特征,如交易类型、时间节点、重要性程度、优先级顺序、客户端种类等,将交易请求划分为Y个分区,能够根据每个分区的具体情况做后续排序执行。以上述股票交易为例,可优先处理成单请求和撤单请求,再处理买单请求和卖单请求。
优选的,在一个实施例中,步骤S3,可选但不仅限于包括:
S31:获取每个分区的交易请求的数量;具体的,可选但不仅限于一一统计每个分区的交易请求的数量;
S32:获取每个主节点的当前容量阈值;具体的,主节点的当前容量阈值,指的是主节点当前空余的交易请求处理位置,等于其自身容量阈值(主节点的负载)减去当前正处理的交易请求量(主节点运行时状态);
S33:根据每个分区的交易请求的数量和每个主节点的当前容量阈值,在X个主节点中选定Z个主节点引导Y个分区的交易请求,使得每个主节点引导的交易请求的数量不超过其当前容量阈值。
在该实施例中给出了,步骤S3如何选定Z个主节点以引导Y个分区交易请求的具体实施方式,根据一个分区的交易请求的数量,若数量小(几个分区交易请求的数量和仍未超过一个主节点的当前容量阈值),则选一个主节点引导多个分区;若数量大(一个分区交易请求的数量已靠近一个主节点的当前容量阈值),则选一个主节点引导一个分区;若数量巨大(一个分区交易请求的数量已超过一个主节点的当前容量阈值),则可选多个主节点引导一个分区,即将一个分区的交易请求分配至多个主节点。总的原则是,一个主节点引导的交易请求的数量(不管是一个分区还是多个分区),不超过其当前容量阈值。具体的,如上示例的将10个交易请求划分为4个分区:分区1——2个买单请求①⑦、分区2——3个卖单请求⑤⑥⑩、分区3——3个成单请求②④⑧和分区4——2个撤单请求③⑨,若主节点的当前容量阈值仅为2个交易请求(该容量阈值的示例仅为适应性举例,事实上应该是数以万计数量级的数量),那么分区2和分区3所分配的交易请求的数量已超过其能容纳的数量阈值,需要对该分区的交易请求进行再划分处理。
优选的,在一个实施例中,步骤S33,可选但不仅限于包括:
S331:将Y个分区编号为Yi,将Z个主节点编号为Zj,1≤i≤Y,1≤j≤Z;
S332:初始化i=1,j=1;
S333:判断第i个分区的交易请求的数量yi是否超过第j个主节点的当前容量阈值zj;
S334:若否,则将第i个分区的交易请求分配至第j个主节点;令i=i+1;判断i>Y或j>Z是否成立,若是则结束,若否则返回步骤S333;
S335:若是,则将第i个分区的前zj个交易请求分配至第j个主节点,令第i个分区当前的交易请求的数量yi=yi-zj;令j=j+1;返回步骤S332。
在该实施例中,给出了步骤S33,如何选定Z个主节点引导Y个分区的交易请求的一个具体实施例,其根据每个分区交易请求的数量和每个主节点的当前容量阈值,选定合理数量的主节点引导合理数量的分区。示例的,对于上述10个交易请求划分为4个分区:分区1——2个买单请求①⑦、分区2——3个卖单请求⑤⑥⑩、分区3——3个成单请求②④⑧和分区4——2个撤单请求③⑨,若主节点的当前容量阈值仅为2个交易请求。那么按照步骤S331-S335的步骤,则由5个主节点引导该4个分区,分别引导为:①⑦、⑤⑥、⑩②、④⑧、③⑨。该具体实施例的优点是既能按照主节点的容量阈值分配交易请求,避免出现拥堵,又能达到资源的最高效充分利用,在效率和资源利用率上达到平衡;其缺点是可能将同一分区的交易请求分裂至不同的主节点,对于后续优先级排序有不利影响。
优选的,在另一个实施例中,步骤S33,可选但不仅限于包括:
S331’:将Y个分区编号为Yi,将Z个主节点编号为Zj,1≤i≤Y,1≤j≤Z;
S332’:初始化i=1,j=1;
S333’:判断第i个分区的交易请求的数量yi是否超过第j个主节点的当前容量阈值xj;
S334’:若否,则将第i个分区的交易请求分配至第j个主节点;令i=i+1,j=j+1;判断i>Y或j>X是否成立,若是则结束,若否则返回步骤S333’;
S335’:若是,则将第i个分区的前zj个交易请求分配至第j个主节点,令第i个分区当前的交易请求的数量yi=yi-zj;令j=j+1;返回步骤S332’。
在该实施例中,给出了步骤S3,如何选定Z个主节点引导Y个分区的交易请求的另一个具体实施例,其不仅根据每个分区交易请求的数量和每个主节点的当前容量阈值,选定合理数量的主节点引导合理数量的分区,而且在步骤S334’中,在将第i个分区的交易请求分配至第j个主节点后,直接令j=j+1,以将新的分区的交易请求分配至新的主节点,避免该分区的交易请求数量不大,但仍然被割裂分配至不同主节点中的情况。示例的,对于上述10个交易请求划分为4个分区:分区1——2个买单请求①⑦、分区2——3个卖单请求⑤⑥⑩、分区3——3个成单请求②④⑧和分区4——2个撤单请求③⑨,若主节点的当前容量阈值仅为2个交易请求。那么按照步骤S331’-S335’的步骤,则由6个主节点引导该4个分区,分别引导为:①⑦、⑤⑥、⑩、②④、⑧、③⑨。该具体实施例的优点是能够基本按照主节点的容量阈值分配交易请求,且能根据哪个主节点处理哪种类型的交易请求,在X个主节点中选取Z个主节点引导Y个分区的交易请求,能够尽量避免同一分区的交易请求被分配至不同主节点的情况(除非同一分区的交易请求数量很大被分配至不同主节点),但是其势必占用比步骤S331-S335的实施例更多的主节点(每个分区的交易请求至少占用了一个主节点),在资源利用率上会稍欠缺。具体选用步骤S331-S335的实施例,或步骤S331’-S335’的实施例,可由本领域技术人员根据交易请求的具体数量、紧急程度等而自由选择。
优选的,步骤S2,还可选但不仅限于包括:
S23:根据交易请求的特征,将Y个分区进行优先级排序。具体的,可选但不仅限于根据交易类型、时间先后、紧急程度等对Y个分区的交易请求进行优先级排序。示例的,如股票交易中,依次排列成单请求、撤单请求、买单请求、卖单请求,以从优先级顺序处理各分区的交易请求。
在该实施例中,增设按优先级排序Y个分区交易请求的步骤,能够优先处理紧急重要的交易请求,进一步提高重要交易请求的响应速度和效率。
在另一实施例中,步骤S2,可选但不仅限于包括:
S21’:对主节点排序标号,并提取每个主节点的当前容量阈值;S22’:按照每个主节点的当前容量阈值,将交易请求划分为Y个分区;
步骤S3,可选但不仅限于包括S31’:将Y个分区的交易请求,按序分配至Z个主节点,Z=Y。具体的,示例上述10个交易请求,首先提取每个主节点的当前容量阈值(假设:第一主节点的当前容量阈值为2、第二主节点的当前容量阈值为5、第三主节点的当前容量阈值为1、第四主节点的当前容量阈值为4),则根据每个主节点的当前容量阈值,将10个交易请求划分为2个+5个+1个+2个(如图2所示的①②+③④⑤⑥⑦+⑧+⑨⑩),依次分配给第一-第四个主节点,其中第一-第三个主节点满员,第四个主节点还有2个空缺。
在该实施例中,给出了步骤S2,如何划分交易请求的另一个具体实施例,此处不再按照交易请求的特征进行划分,而是直接以主节点的当前容量阈值进行划分,能够根据交易请求的数量按需分配主节点,其优点是不会出现超过主节点容量阈值,而需再分配的情况,能进一步提高交易请求的响应效应;但是其没有根据交易请求的特征进行分区划分,不能根据交易请求的特征(类型、紧急程度等)进行后续处理,只能按照交易请求上传的时间顺序进行后续处理。
另一方面,本发明还提供一种区块链的交易处理系统,,包括:
节点划分装置,用于将区块链节点划分为正常节点和共识节点,并选定X个共识节点为主节点;
请求划分装置,用于上传交易请求,并将交易请求划分为Y个分区;
节点选定装置,用于在X个主节点中,选定Z个主节点引导Y个分区的交易请求;
排序一致性判断装置,用于:
Z个主节点,对自身引导的交易请求进行排序和标识,并广播至共识节点和正常节点;
对Z个主节点排序编号,并令n=1;
共识节点和正常节点分别对第n个主节点引导的交易请求排序;
判断共识节点和正常节点对第n个主节点引导的交易请求排序的排序结果是否一致;
若不一致,重新排序;
若一致,则第n个主节点引导的交易请求交易成功,直至完成所有主节点的遍历;
其中,X、Y、Z为正整数,且X>1;Y>1;1<Z≤X。
进一步地,并行交易处理系统,用于执行上述任意的并行交易处理方法。
值得注意的,上述装置的分割仅为功能性分割,并不对其物理概念进行分割,本领域技术人员可以理解的,将多个装置组合封装形成组合结构。
另一方面,本发明还提供一种计算机存储介质,存储有计算机程序;所述计算机程序,用于执行上述任意的并行交易处理方法。
上述并行交易处理系统基于上述并行交易处理方法创造,其技术作用和有益效果在此不再赘述,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种区块链的并行交易处理方法,其特征在于,包括:
S1:将区块链节点划分为正常节点和共识节点,并选定X个共识节点为主节点;
S2:上传交易请求,并将交易请求划分为Y个分区;
S3:在X个主节点中,选定Z个主节点引导Y个分区的交易请求;
S4:Z个主节点,对自身引导的交易请求进行排序和标识,并广播至共识节点和正常节点;
S5:对Z个主节点排序编号,并令n=1;
S6:共识节点和正常节点分别对第n个主节点引导的交易请求排序;
S7:判断共识节点和正常节点对第n个主节点引导的交易请求排序的排序结果是否一致;
S8:若不一致,返回步骤S6;
S9:若一致,则第n个主节点引导的交易请求交易成功,令n=n+1;
S10:判断n>Z是否成立;
S11,若否,则返回步骤S6,若是则结束;
其中,X、Y、Z为正整数,且X>1;Y>1;1<Z≤X。
2.根据权利要求1所述的并行交易处理方法,其特征在于,步骤S2,包括,
S21:提取交易请求的特征;
S22:根据交易请求的特征将交易请求划分为Y个分区。
3.根据权利要求1所述的并行交易处理方法,其特征在于,步骤S3,包括:
S31:获取每个分区的交易请求的数量;
S32:获取每个主节点的当前容量阈值;
S33:根据每个分区的交易请求的数量和每个主节点的当前容量阈值,在X个主节点中选定Z个主节点引导Y个分区的交易请求,使得每个主节点引导的交易请求的数量不超过其当前容量阈值。
4.根据权利要求3所述的并行交易处理方法,其特征在于,步骤S33,包括:
S331:将Y个分区编号为Yi,将Z个主节点编号为Zj,1≤i≤Y,1≤j≤Z;
S332:初始化i=1,j=1;
S333:判断第i个分区的交易请求的数量yi是否超过第j个主节点的当前容量阈值zj;
S334:若否,则将第i个分区的交易请求分配至第j个主节点;令i=i+1;判断i>Y或j>Z是否成立,若是则结束,若否则返回步骤S333;
S335:若是,则将第i个分区的前zj个交易请求分配至第j个主节点,令第i个分区当前的交易请求的数量yi=yi-zj;令j=j+1;返回步骤S332。
5.根据权利要求3所述的并行交易处理方法,其特征在于,步骤S33,包括:
S331’:将Y个分区编号为Yi,将Z个主节点编号为Zj,1≤i≤Y,1≤j≤Z;
S332’:初始化i=1,j=1;
S333’:判断第i个分区的交易请求的数量yi是否超过第j个主节点的当前容量阈值xj;
S334’:若否,则将第i个分区的交易请求分配至第j个主节点;令i=i+1,j=j+1;判断i>Y或j>X是否成立,若是则结束,若否则返回步骤S333’;
S335’:若是,则将第i个分区的前zj个交易请求分配至第j个主节点,令第i个分区当前的交易请求的数量yi=yi-zj;令j=j+1;返回步骤S332’。
6.根据权利要求2所述的并行交易处理方法,其特征在于,步骤S2,还包括:
S23:根据交易请求的特征,将Y个分区进行优先级排序。
7.根据权利要求1所述的并行交易处理方法,其特征在于,步骤S2,包括:
S21’:对主节点排序标号,并提取每个主节点的当前容量阈值;
S22’:按照每个主节点的当前容量阈值,将交易请求划分为Y个分区;
步骤S3,包括:
S31’:将Y个分区的交易请求,按序分配至Z个主节点,其中Z=Y。
8.一种区块链的并行交易处理系统,其特征在于,包括:
节点划分装置,用于将区块链节点划分为正常节点和共识节点,并选定X个共识节点为主节点;
请求划分装置,用于上传交易请求,并将交易请求划分为Y个分区;
节点选定装置,用于在X个主节点中,选定Z个主节点引导Y个分区的交易请求;
排序一致性判断装置,用于:
Z个主节点,对自身引导的交易请求进行排序和标识,并广播至共识节点和正常节点;
对Z个主节点排序编号,并令n=1;
共识节点和正常节点分别对第n个主节点引导的交易请求排序;
判断共识节点和正常节点对第n个主节点引导的交易请求排序的排序结果是否一致;
若不一致,重新排序;
若一致,则第n个主节点引导的交易请求交易成功,直至完成所有主节点的遍历;
其中,X、Y、Z为正整数,且X>1;Y>1;1<Z≤X。
9.根据权利要求8所述的并行交易处理系统,其特征在于,用于执行权利要求1-7任意一项所述的并行交易处理方法。
10.一种计算机存储介质,其特征在于,存储有计算机程序;所述计算机程序,用于执行权利要求1-7任意一项所述的并行交易处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210429003.1A CN114677222A (zh) | 2022-04-22 | 2022-04-22 | 区块链的并行交易处理方法、系统和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210429003.1A CN114677222A (zh) | 2022-04-22 | 2022-04-22 | 区块链的并行交易处理方法、系统和计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114677222A true CN114677222A (zh) | 2022-06-28 |
Family
ID=82080391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210429003.1A Pending CN114677222A (zh) | 2022-04-22 | 2022-04-22 | 区块链的并行交易处理方法、系统和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114677222A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117478304A (zh) * | 2023-12-28 | 2024-01-30 | 湖南天河国云科技有限公司 | 区块链管理方法、系统和计算机设备 |
CN117668121A (zh) * | 2023-12-25 | 2024-03-08 | 北京大学长沙计算与数字经济研究院 | 一种区块链共识、区块引用方法以及平行型图区块链系统 |
CN117808466A (zh) * | 2024-02-28 | 2024-04-02 | 中国信息通信研究院 | 基于区块链的交易预执行方法和装置 |
-
2022
- 2022-04-22 CN CN202210429003.1A patent/CN114677222A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117668121A (zh) * | 2023-12-25 | 2024-03-08 | 北京大学长沙计算与数字经济研究院 | 一种区块链共识、区块引用方法以及平行型图区块链系统 |
CN117478304A (zh) * | 2023-12-28 | 2024-01-30 | 湖南天河国云科技有限公司 | 区块链管理方法、系统和计算机设备 |
CN117478304B (zh) * | 2023-12-28 | 2024-03-01 | 湖南天河国云科技有限公司 | 区块链管理方法、系统和计算机设备 |
CN117808466A (zh) * | 2024-02-28 | 2024-04-02 | 中国信息通信研究院 | 基于区块链的交易预执行方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114677222A (zh) | 区块链的并行交易处理方法、系统和计算机存储介质 | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
JP4781089B2 (ja) | タスク割り当て方法およびタスク割り当て装置 | |
CN100487659C (zh) | 用于优化分段资源分配的方法和设备 | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
CN112084002A (zh) | 云环境下微服务系统的弹性伸缩方法、系统、介质及设备 | |
JPH06202882A (ja) | 複数のタスク及びジョブのスケジューリング方法 | |
Djigal et al. | Task scheduling for heterogeneous computing using a predict cost matrix | |
CN111932257B (zh) | 一种区块链并行化处理方法及装置 | |
CN105138405B (zh) | 基于待释放资源列表的MapReduce任务推测执行方法和装置 | |
CN110050261A (zh) | 计算资源分配 | |
CN111190691A (zh) | 适用于虚拟机的自动迁移方法、系统、装置及存储介质 | |
JP2022539955A (ja) | タスクスケジューリング方法及び装置 | |
CN114265679A (zh) | 数据处理方法、装置和服务器 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN112214328B (zh) | 一种用于同构多链中交易处理的负载均衡方法 | |
US10402762B2 (en) | Heterogeneous platform configurations | |
Chien et al. | Market-oriented multiple resource scheduling in grid computing environments | |
Martinez et al. | Planning workflow executions when using spot instances in the cloud | |
JP2022524177A (ja) | トランザクションの並行実行方法、装置及び記憶媒体 | |
Ibrahim et al. | Improving mapreduce performance with progress and feedback based speculative execution | |
CN110088730A (zh) | 任务处理方法、装置、介质及其设备 | |
KR102002246B1 (ko) | 빅데이터 처리를 위한 자원 분배 방법 및 장치 | |
CN115098240B (zh) | 一种多处理器应用调度方法和系统及存储介质 | |
CN115686795A (zh) | 一种基于dag的启发式任务调度方法 |
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 |