WO2020082871A1 - 一种并行化执行区块链交易的方法、装置及系统 - Google Patents
一种并行化执行区块链交易的方法、装置及系统 Download PDFInfo
- Publication number
- WO2020082871A1 WO2020082871A1 PCT/CN2019/101666 CN2019101666W WO2020082871A1 WO 2020082871 A1 WO2020082871 A1 WO 2020082871A1 CN 2019101666 W CN2019101666 W CN 2019101666W WO 2020082871 A1 WO2020082871 A1 WO 2020082871A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transaction
- queue
- transactions
- written
- block
- Prior art date
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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Definitions
- the variance calculated based on the number of transactions corresponding to each transaction queue is not greater than the specified threshold.
- Any node in the blockchain network obtains the block to be written; reads each transaction from the block to be written, and organizes each transaction into N transaction queues; N is greater than 1; For each transaction queue, execute each transaction in the transaction queue in sequence from first to last; write the block to be written into the blockchain;
- the execution result of the transaction is to create a storage address and store the information, or update the information stored on the storage address.
- the input / output interface 1030 is used to connect input / output modules to realize information input and output.
- the input / output / module can be configured as a component in the device (not shown in the figure), or can be externally connected to the device to provide corresponding functions.
- the input device may include a keyboard, mouse, touch screen, microphone, various sensors, etc.
- the output device may include a display, a speaker, a vibrator, an indicator light, and the like.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Finance (AREA)
- Strategic Management (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)
Abstract
公开了一种并行化执行区块链交易的方法、装置及系统。在本说明书实施例中,如果待写入区块中的每个交易皆不是对不止一个存储地址上存储的信息进行更新的交易,那么,区块链网络中的每个节点可以将待写入区块中的各交易组织成至少两个交易队列,然后,同时开始执行每个交易队列中的交易。
Description
本说明书实施例涉及信息技术领域,尤其涉及一种并行化执行区块链交易的方法、装置及系统。
对于常见的区块链应用场景而言,当需要进行各节点间的共识时,各节点会基于共识算法选举出有权限将若干待执行的交易打包成区块的节点,即记账节点。在共识之后,记账节点从缓存中捞取若干待执行的交易打包成区块,并将所述区块广播给其他节点。随后,针对每个节点,该节点一方面会按照所述区块中各交易被发起的先后顺序,由先到后依次执行每个交易,另一方面会将所述区块写入区块链。
通常,将节点由先到后逐个执行区块中的每个交易的方式称为串行化的交易执行方式。之所以要采用这种串行化的交易执行方式,是因为在常见的区块链应用场景下,一笔交易的执行有时会对不止一个存储地址上存储的信息进行更新,如果不采用串行化的交易执行方式,则容易出现有的交易执行失败的情况。
但是,在有的区块链应用场景下,不存在会对不止一个存储地址上存储的信息进行更新的交易。在这些区块链应用场景下,采用上述的串行化的交易执行方式,会导致交易执行效率较低。
发明内容
为了解决现有的区块链交易执行方式效率较低的问题,本说明书实施例提供一种并行化执行区块链交易的方法、装置及系统,技术方案如下:
根据本说明书实施例的第1方面,提供一种并行化执行区块链交易的方法,包括:
针对区块链网络中的每个节点,该节点获取待写入区块;针对所述待写入区块中的每个交易,该交易的执行结果为,创设一个存储地址并存入信息,或更新一个存储地址上存储的信息;
从所述待写入区块中读取各交易,并将各交易组织成N个交易队列;N大于1;
同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易;
将所述待写入区块写入区块链。
根据本说明书实施例的第2方面,提供一种并行化执行区块链交易的装置,所述装置为区块链网络中的任一节点,所述装置包括:
获取模块,获取待写入区块;针对所述待写入区块中的每个交易,该交易的执行结果为,创设一个存储地址并存入信息,或更新一个存储地址上存储的信息;
组织模块,从所述待写入区块中读取各交易,并将各交易组织成N个交易队列;N大于1;
执行模块,同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易;
写入模块,将所述待写入区块写入区块链。
根据本说明书实施例的第3方面,提供一种并行化执行区块链交易的系统,包括由多个节点组成的区块链网络;
所述区块链网络中的任一节点,获取待写入区块;从所述待写入区块中读取各交易,并将各交易组织成N个交易队列;N大于1;同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易;将所述待写入区块写入区块链;
其中,针对所述待写入区块中的每个交易,该交易的执行结果为,创设一个存储地址并存入信息,或更新一个存储地址上存储的信息。
本说明书实施例所提供的技术方案,如果待写入区块中的每个交易皆不是对不止一个存储地址上存储的信息进行更新的交易,那么,区块链网络中的每个节点可以将待写入区块中的各交易组织成至少两个交易队列,然后,同时开始执行每个交易队列中的交易。如此,每个节点可以在单位时间内执行更多数量的交易,提升了交易执行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种并行化执行区块链交易的方法的流程示意图;
图2是现有技术中串行化的交易执行方式示意图;
图3是本说明书实施例提供的并行化的交易执行方式示意图;
图4是本说明书实施例提供的一种并行化执行区块链交易的装置的结构示意图;
图5是本说明书实施例提供的一种并行化执行区块链交易的系统的结构示意图;
图6是用于配置本说明书实施例方法的一种计算机设备的结构示意图。
需要说明的是,在本说明书中所描述的交易(transaction),是指用户通过区块链的客户端创建,并需要最终发布至区块链的分布式数据库中的一笔数据。
也就是说,区块链中的交易,存在狭义的交易以及广义的交易之分。狭义的交易是指用户向区块链发布的一笔价值转移;例如,在传统的比特币区块链网络中,交易可以是用户在区块链中发起的一笔转账。而广义的交易是指用户向区块链发布的一笔具有业务意图的业务数据;例如,运营方可以基于实际的业务需求搭建一个联盟链,依托于联盟链部署一些与价值转移无关的其它类型的在线业务(比如,租房业务、车辆调度业务、保险理赔业务、信用服务、医疗服务等),而在这类联盟链中,交易可以是用户在联盟链中发布的一笔具有业务意图的业务消息或者业务请求。
下面,以以太坊这种区块链协议为例,对现有技术采用串行化的交易执行方式的原因进行详细说明。值得强调的是,在除以太坊之外的其他区块链协议中,采用串行化的交易执行方式的原因也是类似的。
在以太坊中,存在外部账户与合约账户之分。外部账户用于存储用户拥有的以太币余额,外部账户本质上是存储有余额信息的存储地址。合约账户用于存储用户创设的智能合约,合约账户本质上是存储有智能合约代码的存储地址。
在以太坊中,一般有两种类型的交易,即外部账户向其他账户(可以是外部账户也可以是合约账户)的转账交易,以及外部账户创建合约账户的合约创建交易。
转账交易的执行一般会对不止一个存储地址上存储的信息进行更新。具体而言,一笔转账交易的执行,通常会改变两个账户的余额(即两个账户地址上存储的余额信息),即从转账账户的余额中扣除转账金额,向收账账户的余额中增加转账金额。一笔转账交易可执行的前提是转账账户的余额不小于转账金额。
实际应用中,某一笔转账交易(记为转账交易A)中的转账账户,有可能是之前的另一笔转账交易(记为转账交易B)中的收账用户。如果不按照交易被发起的顺序由先到后执行交易,那么可能出现如下情况,即转账交易B未执行,导致转账交易A中的转账账户没有充足的余额进行转账。正是因为这样,凡是涉及转账交易的区块链应用场景,都不得不采用串行化的交易执行方式,以保证交易可以顺利执行。
而合约创建交易的执行实际上是创建一个合约账户,即创设一个存储地址,并将智能合约代码存入创设的存储地址。显然,合约创建交易的执行只会影响一个存储地址。
此外,区块链应用场景是多种多样的,在有的区块链应用场景下,可以基于以太坊进行扩展,开发出新类型的交易,这种交易的执行也可能只会影响一个存储地址。例如,利用区块链进行内容存证。一笔存证交易的执行,本质上是创设一个存储地址,将要存证的内容存入创设的存储地址。
基于以上,本发明提出了一种并行化执行区块链交易的方法,专门针对某一类区块链应用场景,在这类区块链场景下,每笔交易的执行结果只会影响一个存储地址。
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1是本说明书实施例提供的一种并行化执行区块链交易的方法的流程示意图,包括以下步骤:
S100:针对区块链网络中的每个节点,该节点获取待写入区块。
在本说明书实施例中,所述待写入区块实际上各节点共识之后,由记账节点打包成 的区块。记账节点会将所述待写入区块广播给其他节点。众所周知,在区块链协议中,每个节点一方面需要执行待写入区块中的每个交易,另一方面需要将待写入区块写入到区块链中进行公示。所述待写入区块一旦写入区块链中,相当于将待写入区块中的每个交易进行了公示。公示于区块链上的交易可以用来核查相应的交易执行结果是否正确,以防止有节点作恶。
在步骤S100中,针对每个节点,如果该节点是记账节点,那么该节点获取所述待写入区块的方式具体可以是从自身的缓存中捞取若干交易打包成所述待写入区块;如果该节点不是记账节点,那么该节点获取所述待写入区块的方式具体可以是接收记账节点广播的所述待写入区块。
值得强调的是,针对所述待写入区块中的每个交易,该交易的执行结果为,创设一个存储地址并存入信息,或更新一个存储地址上存储的信息(向一个存储地址存入信息或修改一个存储地址上存储的信息)。也就是说,所述待写入区块中的每个交易的执行结果,只会对一个存储地址产生影响。
例如,创建合约账户的合约创建交易,就是执行结果为创设一个存储地址并存入信息的交易。
又如,在有些区块链应用场景下,需要对每个用户的购物记录进行存证。那么,就需要在数据库中创设每个用户对应的记录存储地址。当目标用户进行购物时,就会产生一条购物记录,区块链网络中的任一节点会基于该购物记录构建记录存证交易并广播。然后,针对每个节点,该节点会在合适的时机(即该记录存证交易被打包进待写入模块并广播给各节点时)执行该记录存证交易,即将该购物记录存入目标用户对应的记录存储地址。显然,目标用户进行多次购物所产生的多条购物记录都会被存入目标用户对应的记录存储地址。因此,上述的记录存证交易,就是执行结果为更新一个存储地址上存储的信息交易。
S102:从所述待写入区块中读取各交易,并将各交易组织成N个交易队列。
在现有技术中,每个节点通常采用串行化的交易执行方式来执行所述待写入区块中的各交易。如图2所示,所谓串行化的交易执行方式,是指每个节点按照一定的先手顺序,逐个执行所述待写入区块中的每个交易。
而在本说明书实施例中,会将所述待写入区块中的各交易拆分为N组,其中,N为大于1的自然数。然后,针对每个组,将这个组中的交易排列成一个交易队列。本说明 书对每个交易队列中交易的排列顺序不做具体限定。
S104:同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易。
在步骤S104中,实际上是同时开始并行化的针对每个交易队列进行交易执行。而具体到每个交易队列,实际上是串行化执行该交易队列中的每个交易。如图3所示。
所谓“同时”,是指节点在同一时间开始执行每个交易队列中的交易。相当于节点在同一时间创设了N个交易执行进程,每个交易进程负责执行一个交易队列中的交易。
对比图2和图3的两种交易执行方式,显然,采用图3所示的交易执行方式,可以在单位时间内执行更多的交易。
S106:将所述待写入区块写入区块链。
在本说明书实施例中,针对每个节点,可以在执行步骤S104之后,执行步骤S106;也可以不在执行步骤S104之后才执行步骤S106。
通过图1所示的并行化执行区块链交易的方法,如果待写入区块中的每个交易皆不是对不止一个存储地址上存储的信息进行更新的交易,那么,区块链网络中的每个节点可以将待写入区块中的各交易组织成至少两个交易队列,然后,同时开始执行每个交易队列中的交易。如此,每个节点可以在单位时间内执行更多数量的交易,提升了交易执行效率。
此外,在本说明书实施例中,每个交易队列对应的交易数量(即每个交易队列中的交易的数量)可以比较接近。如此,在并行化的同时针对各交易队列进行交易执行时,每个执行进程所执行的交易的数量比较接近,不会出现有的进程闲置,有的进程负荷过重的情况。这也意味着,节点可以在单位时间内,执行尽可能多的交易。
具体地,可以设置基于每个交易队列对应的交易数量计算得到的方差不大于指定阈值。基于每个交易队列对应的交易数量计算得到的方差越小,各交易队列对应的交易数量就越接近。
另外,在本说明书实施例中,具体可以采用以太坊协议构建区块链网络。在以太坊中,每个节点上安装有虚拟机程序,用于为以太坊协议的实现提供运行环境。
通常,一个虚拟机程序用于执行一个区块链进程。而在本说明书实施例中,由于需要同时针对不止一个交易队列,并行化的执行不止一个区块链进程,因此,需要在每个节点上预先部署不止一个虚拟机程序。
具体地,如果需要将待写入区块中的交易组织成N个交易队列,那么,就需要预先在每个节点上部署N个虚拟机程序。
如此,在步骤S104中,可以建立预先部署的N个虚拟机程序与N个交易队列之间的一一对应关系;同时针对每个交易队列,通过该交易队列对应的虚拟机程序,由先到后依次执行该交易队列中的每个交易。
此外,在本说明书实施例中,通常,待写入区块中的交易既有第一类交易,也有第二类交易。其中,第一类交易是指,执行结果为更新一个存储地址上存储的信息的交易;第二类交易是指,执行结果为创设一个存储地址并存入信息的交易。
显然,待写入区块中可能存在不止一个第一类交易会对同一个存储地址上存储的信息进行更新。而节点在执行每个第一类交易时,往往需要先访问当前所执行的第一类交易所针对的存储地址。这种情况下,节点在执行待写入区块中的交易时,如果能对同一存储地址对应的所有第一类交易进行集中批量执行,那么只需要针对同一个存储地址进行一次访问即可,这会显著提升节点执行交易的速度。
具体地,在步骤S102中,可以从各交易中选择出执行结果为更新一个存储地址上存储的信息的交易,作为第一类交易,以及,将各交易中除第一类交易以外的其他交易作为第二类交易;将各第一类交易中,对应的存储地址相同的第一类交易组织成一个交易子队列;以每个交易子队列为一个处理单位,并且,以每个第二类交易视为一个处理单位;将各处理单位组织成N个交易队列。
如此,所述待写入区块中,对应于任一存储地址的全部第一类交易都会被整合一个交易子队列,该交易子队列会被整体放入到某个交易队列中。节点在针对该交易队列进行交易执行时,一旦访问该存储地址,就会连续执行该存储地址对应的全部第一类交易。
进一步地,将各处理单位组织成N个交易队列,可以如下:
根据每个处理单位对应的交易数量,由大到小对各处理单位进行排序;并且,初始化每个交易队列对应的交易数量为0;根据排序结果,选择第一个处理单位;将当前选择的处理单位添加到最小交易队列的队尾,并更新所述最小交易队列对应的交易数量;最小交易队列是当前对应的交易数量最小的交易队列;继续选择下一个处理单位,直至所有处理单位都被添加到交易队列。
通过这种方式,可以使得各交易队列分别对应的交易数量大体相当。这样,在基于各交易队列进行并行化的交易执行时,各执行进程上的工作负荷也大体相当,不会有某 个执行进程闲置的情况出现,这样可以在单位时间内执行最多的交易,显著提升节点的交易执行效率。
基于图1所示的方法,本说明书实施例还对应提供了一种并行化执行区块链交易的装置,所述装置为区块链网络中的任一节点,如图4所示,所述装置包括:
获取模块401,获取待写入区块;针对所述待写入区块中的每个交易,该交易的执行结果为,创设一个存储地址并存入信息,或更新一个存储地址上存储的信息;
组织模块402,从所述待写入区块中读取各交易,并将各交易组织成N个交易队列;N大于1;
执行模块403,同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易;
写入模块404,将所述待写入区块写入区块链。
基于每个交易队列对应的交易数量计算得到的方差不大于指定阈值。
所述装置上预先部署有N个虚拟机程序;
所述执行模块403,建立预先部署的N个虚拟机程序与N个交易队列之间的一一对应关系;同时针对每个交易队列,通过该交易队列对应的虚拟机程序,由先到后依次执行该交易队列中的每个交易。
所述组织模块402,从各交易中选择出执行结果为更新一个存储地址上存储的信息的交易,作为第一类交易,以及,将各交易中除第一类交易以外的其他交易作为第二类交易;将各第一类交易中,对应的存储地址相同的第一类交易组织成一个交易子队列;以每个交易子队列为一个处理单位,并且,以每个第二类交易视为一个处理单位;将各处理单位组织成N个交易队列。
所述组织模块402,根据每个处理单位对应的交易数量,由大到小对各处理单位进行排序;并且,初始化每个交易队列对应的交易数量为0;根据排序结果,选择第一个处理单位;将当前选择的处理单位添加到最小交易队列的队尾,并更新所述最小交易队列对应的交易数量,所述最小交易队列是当前对应的交易数量最小的交易队列;继续选择下一个处理单位,直至所有处理单位都被添加到交易队列。
基于图1所示的方法,本说明书实施例还对应提供了一种并行化执行区块链交易的系统,如图5所示,包括由多个节点组成的区块链网络;
所述区块链网络中的任一节点,获取待写入区块;从所述待写入区块中读取各交易,并将各交易组织成N个交易队列;N大于1;同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易;将所述待写入区块写入区块链;
其中,针对所述待写入区块中的每个交易,该交易的执行结果为,创设一个存储地址并存入信息,或更新一个存储地址上存储的信息。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图1所示方法的功能。
图6示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口 1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图1所示方法的功能。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方 案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (12)
- 一种并行化执行区块链交易的方法,包括:针对区块链网络中的每个节点,该节点获取待写入区块;针对所述待写入区块中的每个交易,该交易的执行结果为,创设一个存储地址并存入信息,或更新一个存储地址上存储的信息;从所述待写入区块中读取各交易,并将各交易组织成N个交易队列;N大于1;同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易;将所述待写入区块写入区块链。
- 如权利要求1所述的方法,基于每个交易队列对应的交易数量计算得到的方差不大于指定阈值。
- 如权利要求1或2所述的方法,针对区块链网络中的每个节点,该节点上预先部署有N个虚拟机程序;同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易,具体包括:建立预先部署的N个虚拟机程序与N个交易队列之间的一一对应关系;同时针对每个交易队列,通过该交易队列对应的虚拟机程序,由先到后依次执行该交易队列中的每个交易。
- 如权利要求1所述的方法,将各交易组织成N个交易队列,具体包括:从各交易中选择出执行结果为更新一个存储地址上存储的信息的交易,作为第一类交易,以及,将各交易中除第一类交易以外的其他交易作为第二类交易;将各第一类交易中,对应的存储地址相同的第一类交易组织成一个交易子队列;以每个交易子队列为一个处理单位,并且,以每个第二类交易视为一个处理单位;将各处理单位组织成N个交易队列。
- 如权利要求4所述的方法,将各处理单位组织成N个交易队列,具体包括:根据每个处理单位对应的交易数量,由大到小对各处理单位进行排序;并且,初始化每个交易队列对应的交易数量为0;根据排序结果,选择第一个处理单位;将当前选择的处理单位添加到最小交易队列的队尾,并更新所述最小交易队列对应的交易数量;最小交易队列是当前对应的交易数量最小的交易队列;继续选择下一个处理单位,直至所有处理单位都被添加到交易队列。
- 一种并行化执行区块链交易的装置,所述装置为区块链网络中的任一节点,所述装置包括:获取模块,获取待写入区块;针对所述待写入区块中的每个交易,该交易的执行结果为,创设一个存储地址并存入信息,或更新一个存储地址上存储的信息;组织模块,从所述待写入区块中读取各交易,并将各交易组织成N个交易队列;N大于1;执行模块,同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易;写入模块,将所述待写入区块写入区块链。
- 如权利要求6所述的装置,基于每个交易队列对应的交易数量计算得到的方差不大于指定阈值。
- 如权利要求6或7所述的装置,所述装置上预先部署有N个虚拟机程序;所述执行模块,建立预先部署的N个虚拟机程序与N个交易队列之间的一一对应关系;同时针对每个交易队列,通过该交易队列对应的虚拟机程序,由先到后依次执行该交易队列中的每个交易。
- 如权利要求6所述的装置,所述组织模块,从各交易中选择出执行结果为更新一个存储地址上存储的信息的交易,作为第一类交易,以及,将各交易中除第一类交易以外的其他交易作为第二类交易;将各第一类交易中,对应的存储地址相同的第一类交易组织成一个交易子队列;以每个交易子队列为一个处理单位,并且,以每个第二类交易视为一个处理单位;将各处理单位组织成N个交易队列。
- 如权利要求9所述的装置,所述组织模块,根据每个处理单位对应的交易数量,由大到小对各处理单位进行排序;并且,初始化每个交易队列对应的交易数量为0;根据排序结果,选择第一个处理单位;将当前选择的处理单位添加到最小交易队列的队尾,并更新所述最小交易队列对应的交易数量,所述最小交易队列是当前对应的交易数量最小的交易队列;继续选择下一个处理单位,直至所有处理单位都被添加到交易队列。
- 一种并行化执行区块链交易的系统,包括由多个节点组成的区块链网络;所述区块链网络中的任一节点,获取待写入区块;从所述待写入区块中读取各交易,并将各交易组织成N个交易队列;N大于1;同时针对每个交易队列,由先到后依次执行该交易队列中的每个交易;将所述待写入区块写入区块链;其中,针对所述待写入区块中的每个交易,该交易的执行结果为,创设一个存储地址并存入信息,或更新一个存储地址上存储的信息。
- 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1~5任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811261883.6A CN109636384A (zh) | 2018-10-26 | 2018-10-26 | 一种并行化执行区块链交易的方法、装置及系统 |
CN201811261883.6 | 2018-10-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020082871A1 true WO2020082871A1 (zh) | 2020-04-30 |
Family
ID=66066815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/101666 WO2020082871A1 (zh) | 2018-10-26 | 2019-08-21 | 一种并行化执行区块链交易的方法、装置及系统 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN109636384A (zh) |
TW (1) | TWI743458B (zh) |
WO (1) | WO2020082871A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111932257A (zh) * | 2020-08-18 | 2020-11-13 | 工银科技有限公司 | 一种区块链并行化处理方法及装置 |
CN112990895A (zh) * | 2021-03-11 | 2021-06-18 | 杭州复杂美科技有限公司 | 一种加速区块链交易并行执行的方法、设备及储存介质 |
CN113064953A (zh) * | 2021-04-21 | 2021-07-02 | 湖南天河国云科技有限公司 | 基于邻居信息聚合的以太坊地址聚类方法及装置 |
CN113077344A (zh) * | 2021-04-15 | 2021-07-06 | 恒生电子股份有限公司 | 基于区块链的交易方法、装置、电子设备及存储介质 |
CN113656509A (zh) * | 2021-08-26 | 2021-11-16 | 支付宝(杭州)信息技术有限公司 | 区块链系统中执行交易的方法及装置 |
CN113726875A (zh) * | 2020-07-08 | 2021-11-30 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链一体机的交易处理方法及装置 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109636384A (zh) * | 2018-10-26 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 一种并行化执行区块链交易的方法、装置及系统 |
CN110163609B (zh) * | 2019-05-28 | 2024-02-27 | 深圳前海微众银行股份有限公司 | 一种区块链中数据处理方法及装置 |
CN113570460A (zh) * | 2019-08-30 | 2021-10-29 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
CN113435885A (zh) * | 2019-08-30 | 2021-09-24 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
CN113139873A (zh) * | 2019-08-30 | 2021-07-20 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
CN111047306A (zh) * | 2019-12-17 | 2020-04-21 | 北京菲林方德科技有限公司 | 一种交易输入集合的并行交易处理方法及装置 |
CN111199483A (zh) * | 2019-12-31 | 2020-05-26 | 陕西医链区块链集团有限公司 | 一种区块链交易执行方法、装置、电子设备及存储介质 |
CN111292192A (zh) * | 2020-02-18 | 2020-06-16 | 杭州复杂美科技有限公司 | 一种交易并行执行方法、设备及存储介质 |
CN111405037A (zh) * | 2020-03-13 | 2020-07-10 | 杭州复杂美科技有限公司 | 区块同步方法、设备和存储介质 |
CN111447269A (zh) * | 2020-03-25 | 2020-07-24 | 中国银行股份有限公司 | 区块链交易中高并发场景的去序列化方法及装置 |
CN112132583A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 区块链的交易处理方法、装置、电子设备及可读存储介质 |
CN112950185B (zh) * | 2021-03-11 | 2023-10-20 | 杭州复杂美科技有限公司 | 一种基于并行执行的交易费支付方法、设备及储存介质 |
CN113110934A (zh) * | 2021-04-09 | 2021-07-13 | 杭州复杂美科技有限公司 | 平行链区块生成方法、计算机设备和存储介质 |
CN113656510A (zh) * | 2021-08-26 | 2021-11-16 | 支付宝(杭州)信息技术有限公司 | 区块链系统中执行交易的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100017318A1 (en) * | 2006-07-28 | 2010-01-21 | Futurelogic, Inc. | Methods and apparatus for a downloadable financial transaction printer |
CN103677771A (zh) * | 2012-09-06 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种并发事务的处理方法和装置 |
CN106530083A (zh) * | 2016-10-27 | 2017-03-22 | 上海亿账通区块链科技有限公司 | 基于区块链的多链管理方法及系统 |
CN106611061A (zh) * | 2016-12-29 | 2017-05-03 | 北京众享比特科技有限公司 | 基于区块链网络的数据库写入方法及系统 |
CN106843774A (zh) * | 2017-02-24 | 2017-06-13 | 合肥工业大学 | 一种基于区块链的智能合约的众包构建方法 |
CN109636384A (zh) * | 2018-10-26 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 一种并行化执行区块链交易的方法、装置及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI647636B (zh) * | 2016-09-02 | 2019-01-11 | 現代財富控股有限公司 | 區塊鏈負載平衡系統及其方法 |
CN108269072A (zh) * | 2016-12-30 | 2018-07-10 | 深圳瀚德创客金融投资有限公司 | 用于区块链的交易处理方法和网络节点 |
CN107688999B (zh) * | 2017-08-11 | 2020-11-13 | 杭州溪塔科技有限公司 | 一种基于区块链的并行交易执行方法 |
CN108537543B (zh) * | 2018-03-30 | 2023-07-28 | 百度在线网络技术(北京)有限公司 | 区块链数据的并行处理方法、装置、设备和存储介质 |
CN108512775A (zh) * | 2018-04-16 | 2018-09-07 | 杭州秘猿科技有限公司 | 一种排序交易队列的方法及装置 |
CN108564470B (zh) * | 2018-04-17 | 2021-09-28 | 北京天德科技有限公司 | 一种区块链中并行建块的交易分发方法 |
-
2018
- 2018-10-26 CN CN201811261883.6A patent/CN109636384A/zh active Pending
-
2019
- 2019-03-21 TW TW108109776A patent/TWI743458B/zh active
- 2019-08-21 WO PCT/CN2019/101666 patent/WO2020082871A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100017318A1 (en) * | 2006-07-28 | 2010-01-21 | Futurelogic, Inc. | Methods and apparatus for a downloadable financial transaction printer |
CN103677771A (zh) * | 2012-09-06 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种并发事务的处理方法和装置 |
CN106530083A (zh) * | 2016-10-27 | 2017-03-22 | 上海亿账通区块链科技有限公司 | 基于区块链的多链管理方法及系统 |
CN106611061A (zh) * | 2016-12-29 | 2017-05-03 | 北京众享比特科技有限公司 | 基于区块链网络的数据库写入方法及系统 |
CN106843774A (zh) * | 2017-02-24 | 2017-06-13 | 合肥工业大学 | 一种基于区块链的智能合约的众包构建方法 |
CN109636384A (zh) * | 2018-10-26 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 一种并行化执行区块链交易的方法、装置及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726875A (zh) * | 2020-07-08 | 2021-11-30 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链一体机的交易处理方法及装置 |
CN111932257A (zh) * | 2020-08-18 | 2020-11-13 | 工银科技有限公司 | 一种区块链并行化处理方法及装置 |
CN111932257B (zh) * | 2020-08-18 | 2023-10-24 | 中国工商银行股份有限公司 | 一种区块链并行化处理方法及装置 |
CN112990895A (zh) * | 2021-03-11 | 2021-06-18 | 杭州复杂美科技有限公司 | 一种加速区块链交易并行执行的方法、设备及储存介质 |
CN113077344A (zh) * | 2021-04-15 | 2021-07-06 | 恒生电子股份有限公司 | 基于区块链的交易方法、装置、电子设备及存储介质 |
CN113064953A (zh) * | 2021-04-21 | 2021-07-02 | 湖南天河国云科技有限公司 | 基于邻居信息聚合的以太坊地址聚类方法及装置 |
CN113064953B (zh) * | 2021-04-21 | 2023-08-22 | 湖南天河国云科技有限公司 | 基于邻居信息聚合的区块链地址聚类方法及装置 |
CN113656509A (zh) * | 2021-08-26 | 2021-11-16 | 支付宝(杭州)信息技术有限公司 | 区块链系统中执行交易的方法及装置 |
CN113656509B (zh) * | 2021-08-26 | 2024-05-31 | 支付宝(杭州)信息技术有限公司 | 区块链系统中执行交易的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
TW202016815A (zh) | 2020-05-01 |
CN109636384A (zh) | 2019-04-16 |
TWI743458B (zh) | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020082871A1 (zh) | 一种并行化执行区块链交易的方法、装置及系统 | |
CN108389118B (zh) | 资产管理系统、方法及装置、电子设备 | |
US11042876B2 (en) | Transaction method and system based on centralized settlement and blockchain deposit certificates | |
US10255108B2 (en) | Parallel execution of blockchain transactions | |
US10185937B1 (en) | Workflow support for an annotations-based generic load generator | |
CN111898139B (zh) | 数据读写方法及装置、电子设备 | |
US11720515B2 (en) | Article, device, and techniques for serverless stack for streaming message processing | |
WO2020134628A1 (zh) | 一种基于区块链对结构化作品进行存证的方法及装置 | |
CN112286939B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
WO2020125233A1 (zh) | 字段更新方法及装置、电子设备 | |
WO2022077186A1 (zh) | 区块链中智能合约的执行方法及装置和电子设备 | |
WO2020082917A1 (zh) | 编程题目发布、解答代码发布、解答代码检验方法及系统 | |
WO2024001024A1 (zh) | 在区块链系统中执行交易的方法、区块链系统和节点 | |
CN111444192B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN110020846B (zh) | 一种转账业务处理方法及系统 | |
WO2023231345A1 (zh) | 对多个交易进行分组的方法和区块链节点 | |
WO2023231336A1 (zh) | 执行交易的方法和区块链节点 | |
CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
CN109510852B (zh) | 灰度发布的方法及装置 | |
CN110750530B (zh) | 一种业务系统及其数据核对方法 | |
TWI686703B (zh) | 資料儲存與業務處理的方法及裝置 | |
WO2023160085A1 (zh) | 执行交易的方法、区块链、主节点和从节点 | |
CN111459948B (zh) | 一种基于中心化块链式账本的交易完整性验证方法 | |
CN111506580B (zh) | 一种基于中心化块链式账本的交易存储方法 | |
WO2023231337A1 (zh) | 在区块链中执行交易的方法、区块链的主节点和从节点 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19875625 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19875625 Country of ref document: EP Kind code of ref document: A1 |