CN112559174A - 一种区块链并行交易处理方法及装置 - Google Patents

一种区块链并行交易处理方法及装置 Download PDF

Info

Publication number
CN112559174A
CN112559174A CN202011443208.2A CN202011443208A CN112559174A CN 112559174 A CN112559174 A CN 112559174A CN 202011443208 A CN202011443208 A CN 202011443208A CN 112559174 A CN112559174 A CN 112559174A
Authority
CN
China
Prior art keywords
transaction
node
processed
slave node
slave
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
CN202011443208.2A
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.)
Shenshang information technology (Shanghai) Co.,Ltd.
Original Assignee
Shanghai Wurong Intelligent 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 Wurong Intelligent Technology Co ltd filed Critical Shanghai Wurong Intelligent Technology Co ltd
Priority to CN202011443208.2A priority Critical patent/CN112559174A/zh
Publication of CN112559174A publication Critical patent/CN112559174A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种区块链并行交易处理方法,应用于交易处理服务,所述交易处理服务包括:主节点和至少一个从节点,每一个从节点包括至少一个虚拟节点,所述方法包括:获取各个待处理交易的输入输出参数;依据各个输入输出参数对各个待处理参数进行分组,得到冲突待处理交易集和/或非冲突待处理交易集;将冲突待处理交易集分配给同一从节点,将非冲突待处理交易集分配给交易处理服务中各个从节点中的至少一个;当分配完成时,以令各个从节点采用并行化的方式处理各个待处理交易。上述方法,对各个待处理交易进行分类,将存在冲突的冲突待处理交易集分配给同一节点处理,之后再令各个从节点并行处理,在保证交易准确的前提下,提高了吞吐量。

Description

一种区块链并行交易处理方法及装置
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链并行交易处理方法及装置。
背景技术
当前区块链网络的交易吞吐量极为受限。当网络交易数量激增时,区块链网络会发生严重的拥堵事件。例如,DeFi(去中心化金融)热潮导致以太坊网络数次遭受交易拥堵。
造成这一现象的一个重要原因是,目前主流的区块链网络均采用单一节点对交易进行处理和打包。传统方案采用在单一节点上串行化执行交易是因为:串行化执行虽然牺牲了交易吞吐量,但是可以很简单、直接地满足区块链交易的正确性。
为了提高一个区块包含的交易量,需要把对交易的运算从单一节点延展至多个节点并进行并行处理。并行处理虽然在理论上可以提高交易的吞吐量,但是对交易的正确性提出了极大的挑战。一些原本在串行处理中不会发生的异常现象,却会在并行化处理中变得很普遍。例如,考虑某一个用户的两个转账交易,交易的逻辑都是把账户里的所有余额转至收款方。在串行处理方案下,第二个交易会被取消,因为在交易执行的时候,账户已经没有余额。然而在并行处理方案下,两个交易同时执行,同时看到了账户的余额。如果***处理不善,那么很可能账户的余额被转账了两次,因此并行处理的正确性没有办法保证。
发明内容
有鉴于此,本发明提供了一种区块链并行交易处理方法及装置,用于解决现有的并行处理虽然在理论上可以提高交易的吞吐量,但是对交易的正确性提出了极大的挑战的问题,具体方案如下:
一种区块链并行交易处理方法,应用于交易处理服务,所述交易处理服务包括:主节点和至少一个从节点,每一个从节点包括至少一个虚拟节点,所述方法包括:
获取各个待处理交易的输入输出参数;
依据各个输入输出参数对所述各个待处理交易进行分组,得到冲突待处理交易集和/或非冲突待处理交易集,其中,所述冲突待处理交易集为输入输出参数存在交集的各个待处理交易;
将所述冲突待处理交易集分配给同一从节点,将所述非冲突待处理交易集分配给所述交易处理服务中各个从节点中的至少一个;
当分配完成时,以令所述各个从节点采用并行化的方式处理所述各个待处理交易。
上述的方法,可选的,将所述冲突待处理交易集分配给同一从节点,包括:
获取所述交易集群中各个从节点的可用计算资源;
依据所述可用计算资源为所述各个从节点分配虚拟节点;
获取所述冲突待处理交易集需要的计算资源,基于所述计算资源和各个可用计算资源在所述交易集群中选取目标从节点,所述目标从节点为一个;
将所述冲突待处理交易集中的各个待处理交易分配给所述目标从节点中的同一虚拟节点。
上述的方法,可选的,还包括:
轮询各个从节点的当前状态;
若存在处理结束的空闲从节点,获取可转移虚拟节点任务;
将所述可转移虚拟节点任务转移值所述空闲从节点。
上述的方法,可选的,还包括:
获取所述当前虚拟节点中各个待处理交易的运算结果,依据执行顺序对各个运算结果进行整合,得到第一整合结果;
获取当前从节点中各个虚拟节点的第一整合结果,对各个第一整合结果进行整合,得到第二整合结果;
在各个从节点运算完成时,对各个第二整合结果进行整合,得到目标整合结果,将所述目标整合结果上链。
上述的方法,可选的,当分配完成时,以令所述各个从节点采用并行化的方式处理所述各个待处理交易,包括:
针对所述交易处理服务中的各个从节点采用并行并行化的方式处理;
针对每一个从节点中的各个虚拟节点,采用二阶段锁定或者序列化快照隔离的方式对其中的各个待处理交易进行并行处理。
一种区块链并行交易处理装置,应用于交易处理服务,所述交易处理服务包括:主节点和至少一个从节点,每一个从节点包括至少一个虚拟节点,所述装置包括:
第一获取模块,用于获取各个待处理交易的输入输出参数;
分组模块,用于依据各个输入输出参数对所述各个待处理交易进行分组,得到冲突待处理交易集和/或非冲突待处理交易集,其中,所述冲突待处理交易集为输入输出参数存在交集的各个待处理交易;
分配模块,用于将所述冲突待处理交易集分配给同一从节点,将所述非冲突待处理交易集分配给所述交易处理服务中各个从节点中的至少一个;
处理模块,用于当分配完成时,以令所述各个从节点采用并行化的方式处理所述各个待处理交易。
上述的装置,可选的,所述分配模块包括:
获取单元,用于获取所述交易集群中各个从节点的可用计算资源;
第一分配单元,用于依据所述可用计算资源为所述各个从节点分配虚拟节点;
获取和选取单元,用于获取所述冲突待处理交易集需要的计算资源,基于所述计算资源和各个可用计算资源在所述交易集群中选取目标从节点,所述目标从节点为一个;
第二分配单元,用于将所述冲突待处理交易集中的各个待处理交易分配给所述目标从节点中的同一虚拟节点。
上述的装置,可选的,还包括:
轮询模块,用于轮询各个从节点的当前状态;
第二获取模块,用于若存在处理结束的空闲从节点,获取可转移虚拟节点任务;
转移模块,用于将所述可转移虚拟节点任务转移值所述空闲从节点。
上述的装置,可选的,还包括:
第一整合模块,用于获取所述当前虚拟节点中各个待处理交易的运算结果交易处理服务,依据执行顺序对各个运算结果进行整合,得到第一整合结果;
第二整合模块,用于获取当前从节点中各个虚拟节点的第一整合结果,对各个第一整合结果进行整合,得到第二整合结果;
第三整合模块,用于在各个从节点运算完成时,对各个第二整合结果进行整合,得到目标整合结果,将所述目标整合结果上链。
上述的装置,可选的,所述处理模块包括:
第一处理单元,用于针对所述交易处理服务中的各个从节点采用并行并行化的方式处理;
第二处理单元,用于针对每一个从节点中的各个虚拟节点,采用二阶段锁定或者序列化快照隔离的方式对其中的各个待处理交易进行并行处理。
与现有技术相比,本发明包括以下优点:
本发明公开了一种区块链并行交易处理方法及装置,应用于交易处理服务,所述交易处理服务包括:主节点和至少一个从节点,每一个从节点包括至少一个虚拟节点,所述方法包括:获取各个待处理交易的输入输出参数;依据各个输入输出参数对各个待处理参数进行分组,得到冲突待处理交易集和/或非冲突待处理交易集,其中,冲突待处理交易集为输入输出参数存在交集的各个待处理交易;将冲突待处理交易集分配给同一从节点,将非冲突待处理交易集分配给交易处理服务中各个从节点中的至少一个;当分配完成时,以令各个从节点采用并行化的方式处理各个待处理交易。上述方法,对各个待处理交易进行分类,将存在冲突的冲突待处理交易集分配给同一节点处理,之后再令各个从节点并行处理,在保证交易准确的前提下,提高了吞吐量。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种区块链并行交易处理方法流程图;
图2为本申请实施例公开的一种区块链并行交易处理方法执行示意图;
图3为本申请实施例公开的一种交易处理服务的结构框图;
图4为本申请实施例公开的一种区块链并行交易处理方法又一执行示意图;
图5为本申请实施例公开的一种区块链并行交易处理装置结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
本发明公开了一种区块链并行交易处理方法及装置,应用于对区块链交易的并行处理,当前区块链网络的交易吞吐量极为受限。当网络交易数量激增时,区块链网络会发生严重的拥堵事件。例如,DeFi(去中心化金融)热潮导致以太坊网络数次遭受交易拥堵。造成这一现象的一个重要原因是,目前主流的区块链网络均采用单一节点对交易进行处理和打包。在PoW(算力证明)的情况下,虽然多个节点竞争出块,但是对于一个区块而言,它包含的交易都由一个节点运算得来。在PoS(权益证明)和其它共识协议下,也有相应的问题。为了提高一个区块包含的交易量,我们需要把对交易的运算从单一节点延展至多个节点并进行并行处理。并行化执行交易虽然在理论上可以提高交易的吞吐量,但是对交易的正确性提出了极大的挑战。因此,本发明提供了一种区块链并行交易处理方法用于解决上述问题,本发明在不牺牲交易正确性的前提下,在架构和算法层面对交易并行化处理提出了改良和创新。在架构层面,将传统的单一交易处理节点扩展至主从架构的交易处理服务。主节点负责交易的统筹处理,从节点则负责交易的具体运算。通过引入若干从节点,可以有效弥补单一节点算力不足的问题。在算法层面,主节点根据交易的输入和输出参数,对交易进行返祖。当两个交易的输入输出参数存在交集时,我们称之为冲突交易。主节点将所有冲突交易分发至同一个节点运算。不同节点的交易不存在相互依赖性,可以以任意顺序进行运算。对于同一节点的交易,为了进一步提高吞吐量,我们采用序列化快照隔离(SerializableSnapshot Isolation)的方式对交易进行并发处理。所述处理方法应用于交易处理服务,所述交易处理服务包括:主节点和至少一个从节点,每一个从节点包括至少一个虚拟节点,所述方法的执行流程如图1所示,包括步骤:
S101、获取各个待处理交易的输入输出参数;
本发明实施例中,所述各个待处理交易来自于区块链,待处理交易的输入输出参数依据待处理交易类型的不同而不同,若待处理交易为普通转账交易,相应的输入输出参数为转入和转出账户地址,若待处理交易为智能合约交易,相应的输入和输出参数可以从对应的交易合约中获取,本发明实施例中对具体的获取方法不进行限定,优选的,可以将各个输入输出参数组成参数集合。
S102、依据各个输入输出参数对所述各个待处理交易进行分组,得到冲突待处理交易集和/或非冲突待处理交易集,其中,所述冲突待处理交易集为输入输出参数存在交集的各个待处理交易;
本发明实施例中,将所述参数集合中的各个输入输出参数通过映射的方式进行分组,针对当前输入输出参数,判断所述参数集合中除所述当前输入输出参数之外的其余输入输出参数与其是否存在交集,若不存在,将所述当前输入输出参数分配给非冲突待处理交易集,若存在,将该输入输出参数作为目标输入输出参数与所述当前输入输出参数组成冲突待处理交易集,继续判断所述参数集合中是否存在与所述目标输入输出参数存在交集的其它输入输出参数,若存在将其添加至当前冲突待处理交易集,若不存在,结束当前判断,重新选取所述参数集合中的其它输入输出参数进行判断,直至所述交易集合中的每一个输入输出参数均判断完成,针对上述过程,可以的到冲突待处理交易集、非冲突待处理交易集,或者,所述冲突待处理交易集和所述非冲突待处理交易集,例如,假定待处理交易1的输入参数是a,b,c,输出是d,e。相应输入输出集合是{a,b,c,d,e},假定待处理交易2的输入参数是b,d,输出是e,g。相应输出集合是{b,d,e,g},则两者存在交集{b,d,e}。
进一步的,所述冲突待处理交易集可以存在多个。
S103、将所述冲突待处理交易集分配给同一从节点,将所述非冲突待处理交易集分配给所述交易处理服务中各个从节点中的至少一个;
本发明实施例中,针对上述得到的冲突待处理交易集和/或非冲突待处理交易集,为了避免冲突待处理交易中各个待处理交易在不同节点并行处理造成处理结果的不准确,依据每一个从节点的计算资源,将所述冲突待处理交易集中的各个待处理交易发送给同一节点,将所述非冲突待处理交易集分配给所述交易处理服务中各个从节点中的至少一个。对上述的分配进行举例说明,例如,一个待处理交易的输出参数,往往是另一个待处理交易的输入参数。在考虑不同交易的是否冲突时,用集合去表示一个交易的输入参数与输出参数。当不同交易的集合存在交集时,则交易冲突,即两个待处理交易存在相关性,反之则不然。例如,考虑交易1的逻辑是,读取地址a的值,并将(a+1)赋值给地址b;交易2的逻辑则是,读取地址c的值,并将(c+1)赋值给地址d。交易1的参数集合是{a,b},交易2的参数集合是{c,d}。很显然,两个集合不存在交集。可以任意顺序并行执行这两个交易。然而,如果交易2的逻辑是,读取地址b的值,并将(b+1)赋值给地址c,则交易1和交易2存在交集{b}。此时,能以任意并行顺序执行两个交易。假设a,b,c默认的值都是0,考虑如下执行顺序,如图2所示,每个步骤的操作时间取决于当时的节点资源状况,首先执行交易1,它读到a的值是0,然后,***执行交易2,它读到b的值是0。然后***回到交易1,将b更新成(a+1),也就是1。接着,***回到交易2,将c更新成(b+1),也就是1。然而,由于***先执行交易1,再执行交易2,则最终b的值应当是1,c的值应当是2不是1。由此可见,对于相互冲突的待处理交易,不能以任意顺序并行执行。
S104、当分配完成时,以令所述各个从节点采用并行化的方式处理所述各个待处理交易。
本发明实施例中,当所述各个待处理交易分配完成时,令所述各个从节点并行将其中包含的各个待处理交易进行处理,由于将冲突待处理交易集分配给同一从节点处理,并且各个从节点性慈宁宫处理其中的待处理交易,在保证正确的前提下,提高了处理速度,即提高了交易的吞吐量。
本发明公开了一种区块链并行交易处理方法,应用于交易处理服务,所述交易处理服务包括:主节点和至少一个从节点,每一个从节点包括至少一个虚拟节点,所述方法包括:获取各个待处理交易的输入输出参数;依据各个输入输出参数对各个待处理参数进行分组,得到冲突待处理交易集和/或非冲突待处理交易集,其中,冲突待处理交易集为输入输出参数存在交集的各个待处理交易;将冲突待处理交易集分配给同一从节点,将非冲突待处理交易集分配给交易处理服务中各个从节点中的至少一个;当分配完成时,以令各个从节点采用并行化的方式处理各个待处理交易。上述方法,对各个待处理交易进行分类,将存在冲突的冲突待处理交易集分配给同一节点处理,之后再令各个从节点并行处理,在保证交易准确的前提下,提高了吞吐量。
本发明实施例中,所述交易处理服务的结构框图如图3所示,其中,所述交易处理服务包括:主节点和至少一个从节点,主节点不进行任何交易处理运算,它的职责是将具体的交易分发至特定的从节点,并从从节点回收运算结果。从节点的职责则是进行具体的交易运算。具体的执行流程如下:
1、主节点对交易的并行处理进行统筹规划。主节点在区块链网络中获取交易。
2、交易的预处理和分发,虽然待处理交易具有不同的逻辑,例如转账操作,或是智能合约特定的业务逻辑,但是从宏观角度看,本发明实施例只关心区块链数据状态的变化,也就是交易的输出参数。对于一个确定性的交易(例如,不包含随机数生成操作),交易的输出参数取决于交易的输入参数。也就是,给定交易的输入值,则决定了交易相应的输出值。因此,对于一个交易,只需要考虑其输入和输出参数。
在交易的预处理过程中,主节点首先检查每一个交易来提取出相应的输入和输出参数。对于普通转账交易,相应的参数是转入和转出账户地址。对于智能合约交易,相应的参数可以从交易对应的合约代码中获得。随后,主节点构造该交易对应的参数集合。
进一步的,将参数集合的交易映射到不同从节点。其中,冲突交易必须映射到同一个节点。也就是,如果两个交易的参数集合存在交集,那么这两个交易必须被映射到同一个节点。
本发明实施例中,针对每一个从节点,引入了虚拟节点的概念,优选的每一个虚拟节点具有相同的计算能力,针对每一个从节点,获取其中的可用计算资源,基于可用计算资源计算每一个从节点可以包含的虚拟节点的数量,计算过程如下,基于每一个从节点的可用计算资源除以每一个虚拟节点的计算资源,对计算结果取整,得到每一个从节点包括的虚拟节点的数量。进一步的,交易的映射对象是虚拟节点而非从节点。不同虚拟节点间的交易可以以任何顺序并行执行,但是,为了保证计算的正确性,冲突待处理交易集只能分配给同一从节点的同一虚拟节点下,非冲突待处理交易集中的各个待处理交易依据其在计算过程中所需计算资源分配给对应从节点中的对应的虚拟节点。
采用虚拟节点可以更高效、灵活地使用从节点的计算资源。因为每一个虚拟节点被映射到的交易数量并不相等,可以整合不同个数的虚拟节点并分配给特定的从节点,这样可以使得各个从节点的工作量基本相似。由于虚拟节点弱化了交易映射和从节点的关系,当从节点增加或减少时,只需调整对从节点的虚拟节点的分配即可,而不用对交易进行重新映射。
优选的,为每一个虚拟节点建立交易列表,交易映射完毕以后,主节点把拟节点的交易列表分发给各个从节点。从节点根据分配到的交易列表执行相应的交易。
3、执行交易,不同虚拟节点之间的交易相互没有依赖,因而可以以任意顺序并行执行。对于同一个虚拟节点负责的交易,若其中存在冲突待处理交易集,必须确保一定的顺序执行来满***易的正确性。
由于区块链具有很强的金融属性,意味着交易处理必须严格满足正确性。如果我们为了交易吞吐量的提升而采用弱隔离(Weak Isolation)的解决方案,例如提交读(ReadCommitted)或者快照隔离(Snapshot Isolation),则会导致一部分交易执行得到不合理的结果。因而,我们必须采用最严格的隔离方案,使得交易的运行满足严格的序列化要求。
在此前提下,为了提高单一虚拟节点的交易吞吐,本发明实施例中采用并行化的交易处理方式。对于冲突待处理交易集中的各个待处理交易,能够采用并行处理的原因是,虽然冲突可能存在,但是冲突未必一定存在。例如,如图4所示,每个步骤的操锁时间取决于当时的节点资源状况,交易1和2并发执行,如果交易2优先于交易1提交,则交易结果的正确性仍然得到满足。可以把该执行想象成两个交易串行执行,首先执行交易2,然后执行交易1。然而,由于采用了并行执行,可以在更短的时间内完成更多的交易处理。
对于冲突待处理交易集的并行执行,通常可以采用二阶段锁定(Two PhaseLocking)或者是序列化快照隔离(Serializable Snapshot Isolation)的方式进行操作。二阶段锁定采用了悲观锁的方式,在交易的执行过程中用读写锁的方式锁定住输入和输出参数,直到交易成功提交才释放资源。序列化快照隔离则采用了乐观锁的方式,不同交易可以并行执行,在交易提交的时候,当发现资源存在冲突,例如一个交易的输入参数已被另一个交易修改,***则会取消并重试该交易。自然的,序列化快照隔离提供了更好的并发吞吐性。我们在并行执行单一虚拟节点的交易时,采用了序列化快照隔离的方式进行交易的运算处理。
4、回收交易结果,当从节点运算完毕以后,从节点将交易执行顺序和交易结果发送给主节点,主节点接收每一个从节点的交易执行顺序和交易结果。
5、整合交易并上链,将所有交易归并至区块,并同时更新运算结果至区块链底层数据存储***中。
对于归并至同一个区块的交易,不同虚拟节点之间的交易不存在顺序相关性,而同一虚拟节点中的交易,则必须按照从节点返回的顺序写入区块。对于运算结果的更新,也应按照同样的顺序执行。整合过程如下:获取所述当前虚拟节点中各交易的运算结果,依据执行顺序对各个运算结果进行整合,得到第一整合结果,获取当前从节点中各个虚拟节点的第一整合结果,对各个第一整合结果进行整合,得到第二整合结果;在各个从节点运算完成时,对各个第二整合结果进行整合,得到目标整合结果,将所述目标整合结果上链,其中,本发明实施例中,对具体的整合方式不进行限定,其中,整合方式可以以预设标识进行连接或者存储到指定位置等。
为了提高***的效率,主节点对交易进行实时的整合。每当有虚拟节点完成运算,主节点就获取相应的结果进行整合。这样,当所有从节点运算完成以后,主节点可以直接进行区块的上链工作,极大地降低了交易的等待延迟。
对于一个分布式***,可靠性是一个非常重要的指标。由于***引入了多个组成实体,这=意味着***发生故障的可能性也会大大增加。主节点不仅单纯地对交易结果进行实时整合,还监控着从节点运行中可能存在的故障。当一个从节点丧失心跳响应,或者遇到***故障时,主节点会启动新的从节点来接替它的任务。考虑到主节点自身存在单点故障的可能性,我们维护一个待机状态的主节点副本。当主节点发生故障时,可以随时切换到副本运行。
综上,当***运行正常,主节点向区块链网络递交新的区块以后。主节点会重置各从节点的运行状态,并开始新一轮的任务分发。
进一步的,考虑到不同从节点的实际工作负荷不尽相同,采用了任务重分配的调度方式(Work Stealing)。主节点轮询不同从节点的工作状态,如果发现有从节点提早结束,主节点则会从***中最慢的从节点上分配一个虚拟节点给已经完成任务的从节点。该从节点可以执行该虚拟节点内的所有交易,来分担其它节点的工作量。具体执行流程如下:
(1)从节点与主节点协商基准区块高度。从节点将从该区块高度读取输入参数的值。
(2)从节点从主节点处获取虚拟节点信息和对应交易列表
(3)从节点开始进行交易处理。不同虚拟节点之间的交易可以以任意顺序并行运行。对于同一虚拟节点的交易,从节点采用序列化快照隔离的方式运行。
(4)从节点与主节点通讯,报告交易处理状态。
(5)从节点从主节点处获取额外虚拟节点任务。提早完成的从节点可以进行额外的任务处理,来减轻较慢的从节点的负荷。
(6)从节点交易处理完毕,将交易处理顺序和结果返回至主节点。
基于上述的一种区块链并行交易处理方法,本发明实施例中还提供流量。
基于上述一种区块链并行交易处理方法,本发明实施例中,还提供了一种区块链并行交易处理装置,应用于交易处理服务,所述交易处理服务包括:主节点和至少一个从节点,每一个从节点包括至少一个虚拟节点,所述装置的结构框图如图5所示,所述装置包括:
第一获取模块201、分组模块202、分配模块203和处理模块204。
其中,
所述第一获取模块201,用于获取各个待处理交易的输入输出参数;
所述分组模块202,用于依据各个输入输出参数对所述各个待处理交易进行分组,得到冲突待处理交易集和/或非冲突待处理交易集,其中,所述冲突待处理交易集为输入输出参数存在交集的各个待处理交易;
所述分配模块203,用于将所述冲突待处理交易集分配给同一从节点,将所述非冲突待处理交易集分配给所述交易处理服务中各个从节点中的至少一个;
所述处理模块204,用于当分配完成时,以令所述各个从节点采用并行化的方式处理所述各个待处理交易。
本发明公开了一种区块链并行交易处理装置,应用于交易处理服务,所述交易处理服务包括:主节点和至少一个从节点,每一个从节点包括至少一个虚拟节点,所述方法包括:获取各个待处理交易的输入输出参数;依据各个输入输出参数对各个待处理参数进行分组,得到冲突待处理交易集和/或非冲突待处理交易集;将冲突待处理交易集分配给同一从节点,将非冲突待处理交易集分配给交易处理服务中各个从节点中的至少一个;当分配完成时,以令各个从节点采用并行化的方式处理各个待处理交易。上述装置,对各个待处理交易进行分类,将存在冲突的冲突待处理交易集分配给同一节点处理,之后再令各个从节点并行处理,在保证交易准确的前提下,提高了吞吐量。
本发明实施例中,所述分配模块203包括:
获取单元205、第一分配单元206、获取和选取单元207和第二分配单元208。
其中,
所述获取单元205,用于获取所述交易集群中各个从节点的可用计算资源;
所述第一分配单元206,用于依据所述可用计算资源为所述各个从节点分配虚拟节点;
所述获取和选取单元207,用于获取所述冲突待处理交易集需要的计算资源,基于所述计算资源和各个可用计算资源在所述交易集群中选取目标从节点,所述目标从节点为一个;
所述第二分配单元208,用于将所述冲突待处理交易集中的各个待处理交易分配给所述目标从节点中的同一虚拟节点。
本发明实施例中,所述装置还包括:
轮询模块209、第二获取模块210和转移模块211。
其中,
所述轮询模块209,用于轮询各个从节点的当前状态;
所述第二获取模块210,用于若存在处理结束的空闲从节点,获取可转移虚拟节点任务;
所述转移模块211,用于将所述可转移虚拟节点任务转移值所述空闲从节点。
本发明实施例中,所述装置还包括:
第一整合模块212、第二整合模块213和第三整合模块214。
其中,
所述第一整合模块212,用于获取所述当前虚拟节点中各个待处理交易的运算结果交易处理服务,依据执行顺序对各个运算结果进行整合,得到第一整合结果,
所述第二整合模块213,用于获取当前从节点中各个虚拟节点的第一整合结果,对各个第一整合结果进行整合,得到第二整合结果;
所述第三整合模块214,用于在各个从节点运算完成时,对各个第二整合结果进行整合,得到目标整合结果,将所述目标整合结果上链。
本发明实施例中,所述处理模块204包括:
第一处理单元215和第二处理单元216。
其中,
所述第一处理单元215,用于针对所述交易处理服务中的各个从节点采用并行并行化的方式处理;
所述第二处理单元216,用于针对每一个从节点中的各个虚拟节点,采用二阶段锁定或者序列化快照隔离的方式对其中的各个待处理交易进行并行处理。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种区块链并行交易处理方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种区块链并行交易处理方法,其特征在于,应用于交易处理服务,所述交易处理服务包括:主节点和至少一个从节点,每一个从节点包括至少一个虚拟节点,所述方法包括:
获取各个待处理交易的输入输出参数;
依据各个输入输出参数对所述各个待处理交易进行分组,得到冲突待处理交易集和/或非冲突待处理交易集,其中,所述冲突待处理交易集为输入输出参数存在交集的各个待处理交易;
将所述冲突待处理交易集分配给同一从节点,将所述非冲突待处理交易集分配给所述交易处理服务中各个从节点中的至少一个;
当分配完成时,以令所述各个从节点采用并行化的方式处理所述各个待处理交易。
2.根据权利要求1所述的方法,其特征在于,将所述冲突待处理交易集分配给同一从节点,包括:
获取所述交易集群中各个从节点的可用计算资源;
依据所述可用计算资源为所述各个从节点分配虚拟节点;
获取所述冲突待处理交易集需要的计算资源,基于所述计算资源和各个可用计算资源在所述交易集群中选取目标从节点,所述目标从节点为一个;
将所述冲突待处理交易集中的各个待处理交易分配给所述目标从节点中的同一虚拟节点。
3.根据权利要求1所述的方法,其特征在于,还包括:
轮询各个从节点的当前状态;
若存在处理结束的空闲从节点,获取可转移虚拟节点任务;
将所述可转移虚拟节点任务转移值所述空闲从节点。
4.根据权利要求1所述的方法,其特征在于,还包括:
获取所述当前虚拟节点中各个待处理交易的运算结果交易处理服务,依据执行顺序对各个运算结果进行整合,得到第一整合结果;
获取当前从节点中各个虚拟节点的第一整合结果,对各个第一整合结果进行整合,得到第二整合结果;
在各个从节点运算完成时,对各个第二整合结果进行整合,得到目标整合结果,将所述目标整合结果上链。
5.根据权利要求1所述的方法,其特征在于,当分配完成时,以令所述各个从节点采用并行化的方式处理所述各个待处理交易,包括:
针对所述交易处理服务中的各个从节点采用并行并行化的方式处理;
针对每一个从节点中的各个虚拟节点,采用二阶段锁定或者序列化快照隔离的方式对其中的各个待处理交易进行并行处理。
6.一种区块链并行交易处理装置,其特征在于,应用于交易处理服务,所述交易处理服务包括:主节点和至少一个从节点,每一个从节点包括至少一个虚拟节点,所述装置包括:
第一获取模块,用于获取各个待处理交易的输入输出参数;
分组模块,用于依据各个输入输出参数对所述各个待处理交易进行分组,得到冲突待处理交易集和/或非冲突待处理交易集,其中,所述冲突待处理交易集为输入输出参数存在交集的各个待处理交易;
分配模块,用于将所述冲突待处理交易集分配给同一从节点,将所述非冲突待处理交易集分配给所述交易处理服务中各个从节点中的至少一个;
处理模块,用于当分配完成时,以令所述各个从节点采用并行化的方式处理所述各个待处理交易。
7.根据权利要求6所述的装置,其特征在于,所述分配模块包括:
获取单元,用于获取所述交易集群中各个从节点的可用计算资源;
第一分配单元,用于依据所述可用计算资源为所述各个从节点分配虚拟节点;
获取和选取单元,用于获取所述冲突待处理交易集需要的计算资源,基于所述计算资源和各个可用计算资源在所述交易集群中选取目标从节点,所述目标从节点为一个;
第二分配单元,用于将所述冲突待处理交易集中的各个待处理交易分配给所述目标从节点中的同一虚拟节点。
8.根据权利要求6所述的装置,其特征在于,还包括:
轮询模块,用于轮询各个从节点的当前状态;
第二获取模块,用于若存在处理结束的空闲从节点,获取可转移虚拟节点任务;
转移模块,用于将所述可转移虚拟节点任务转移值所述空闲从节点。
9.根据权利要求6所述的装置,其特征在于,还包括:
第一整合模块,用于获取所述当前虚拟节点中各个待处理交易的运算结果交易处理服务,依据执行顺序对各个运算结果进行整合,得到第一整合结果;
第二整合模块,用于获取当前从节点中各个虚拟节点的第一整合结果,对各个第一整合结果进行整合,得到第二整合结果;
第三整合模块,用于在各个从节点运算完成时,对各个第二整合结果进行整合,得到目标整合结果,将所述目标整合结果上链。
10.根据权利要求6所述的装置,其特征在于,所述处理模块包括:
第一处理单元,用于针对所述交易处理服务中的各个从节点采用并行并行化的方式处理;
第二处理单元,用于针对每一个从节点中的各个虚拟节点,采用二阶段锁定或者序列化快照隔离的方式对其中的各个待处理交易进行并行处理。
CN202011443208.2A 2020-12-08 2020-12-08 一种区块链并行交易处理方法及装置 Pending CN112559174A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011443208.2A CN112559174A (zh) 2020-12-08 2020-12-08 一种区块链并行交易处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011443208.2A CN112559174A (zh) 2020-12-08 2020-12-08 一种区块链并行交易处理方法及装置

Publications (1)

Publication Number Publication Date
CN112559174A true CN112559174A (zh) 2021-03-26

Family

ID=75061059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011443208.2A Pending CN112559174A (zh) 2020-12-08 2020-12-08 一种区块链并行交易处理方法及装置

Country Status (1)

Country Link
CN (1) CN112559174A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113205417A (zh) * 2021-04-27 2021-08-03 华东师范大学 一种面向联盟链的交易并行处理方法及***
CN113744061A (zh) * 2021-11-04 2021-12-03 支付宝(杭州)信息技术有限公司 一种在区块链中执行交易的方法、区块链、和从节点

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284185A (zh) * 2017-07-21 2019-01-29 英特尔公司 用于区块链交易加速的装置、方法和***
CN111680050A (zh) * 2020-05-25 2020-09-18 杭州趣链科技有限公司 一种联盟链数据的分片处理方法、设备和存储介质
CN111724256A (zh) * 2020-05-28 2020-09-29 天津大学 一种基于多核架构的智能合约执行优化方法
CN111861744A (zh) * 2020-06-30 2020-10-30 上海简苏网络科技有限公司 一种实现区块链交易并行化的方法及区块链节点

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284185A (zh) * 2017-07-21 2019-01-29 英特尔公司 用于区块链交易加速的装置、方法和***
CN111680050A (zh) * 2020-05-25 2020-09-18 杭州趣链科技有限公司 一种联盟链数据的分片处理方法、设备和存储介质
CN111724256A (zh) * 2020-05-28 2020-09-29 天津大学 一种基于多核架构的智能合约执行优化方法
CN111861744A (zh) * 2020-06-30 2020-10-30 上海简苏网络科技有限公司 一种实现区块链交易并行化的方法及区块链节点

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113205417A (zh) * 2021-04-27 2021-08-03 华东师范大学 一种面向联盟链的交易并行处理方法及***
CN113744061A (zh) * 2021-11-04 2021-12-03 支付宝(杭州)信息技术有限公司 一种在区块链中执行交易的方法、区块链、和从节点
CN113744061B (zh) * 2021-11-04 2022-08-09 支付宝(杭州)信息技术有限公司 在区块链***中执行交易的方法、区块链***、和从节点

Similar Documents

Publication Publication Date Title
CN108804112B (zh) 一种区块链落账处理方法及***
Stankovic A perspective on distributed computer systems
EP1649374B1 (en) Parallel recovery by non-failed nodes
Vidyarthi et al. Scheduling in distributed computing systems: Analysis, design and models
Graham Issues in real-time data management
CN113205417B (zh) 一种面向联盟链的交易并行处理方法及***
JP2001518660A (ja) 多重ノードクラスタにおける多重プロセッサノードの逐次及び確実な始動及び/又は再ロード方法
CN103262064A (zh) 分布式计算体系结构
Bhargava et al. A model for adaptable systems for transaction processing
CN112559174A (zh) 一种区块链并行交易处理方法及装置
Hellings et al. Byshard: Sharding in a byzantine environment
US7921220B2 (en) Reducing occurrences of two-phase commits in a multi-node computing system
Shrivastava et al. Supporting transaction predictability in replicated DRTDBS
Georgiou et al. The complexity of synchronous iterative Do-All with crashes
Nanda et al. A Comprehensive Survey of Machine Learning in Scheduling of Transactions
Shanker et al. Some performance issues in distributed real time database systems
Ghose et al. A framework for OpenCL task scheduling on heterogeneous multicores
Kanrar et al. A new voting-based mutual exclusion algorithm for distributed systems
Pandey et al. SP-LIFT: a serial parallel linear and fast-paced recovery-centered transaction commit protocol
Barker et al. Concurrent transaction execution in multidatabase systems
Lee et al. Priority assignment for sub-transaction in distributed real-time databases
Fan et al. 2PC+: A High Performance Protocol for Distributed Transactions of Micro-service Architecture
Shanker et al. Real time commit protocol-active
Ibáñez-Espiga et al. Data placement strategy for a parallel database system
Rakhra et al. Utilization of Resources on Cloud Hosting Network in Secure Environment

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210730

Address after: 200241 Building 2, 889 Qishen Road, Minhang District, Shanghai

Applicant after: Shenshang information technology (Shanghai) Co.,Ltd.

Address before: 601d, building 5, Zizhu Science Park, 555 Dongchuan Road, Minhang District, Shanghai, 200241

Applicant before: SHANGHAI WURONG INTELLIGENT TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210326