CN113706146A - 一种基于区块链执行批量交易的处理方法、装置和*** - Google Patents
一种基于区块链执行批量交易的处理方法、装置和*** Download PDFInfo
- Publication number
- CN113706146A CN113706146A CN202110892853.0A CN202110892853A CN113706146A CN 113706146 A CN113706146 A CN 113706146A CN 202110892853 A CN202110892853 A CN 202110892853A CN 113706146 A CN113706146 A CN 113706146A
- Authority
- CN
- China
- Prior art keywords
- transaction
- batch
- contract
- address
- transactions
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 232
- 238000012545 processing Methods 0.000 claims abstract description 105
- 238000012795 verification Methods 0.000 claims abstract description 97
- 230000008569 process Effects 0.000 claims abstract description 65
- 238000003860 storage Methods 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 6
- 239000000126 substance Substances 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000005096 rolling process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/3825—Use of electronic signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书一个或多个实施例公开了一种基于区块链执行批量交易的处理方法、装置和***,该方案包括:目标用户终端使用批量交易智能合约的地址作为合约地址,并对待提交的多个交易的交易参数进行拼接得到批量交易参数,从而将多个交易合并创建为一个批量交易;在对该批量交易签名后发送给区块链节点验证,在验证通过且共识打包后,调用合约地址对应的批量交易智能合约解析批量交易参数并依次对每个交易进行格式验证,如果全部验证正确,则依次调用每个交易的子合约地址对应的交易子合约对相应交易进行处理。这样,在处理交易时仅需一次签名及验签,且批量交易的数据体量要小于多个交易数据的体量,极大缓解区块链紧张的处理能力,提升交易处理效率。
Description
技术领域
本文件涉及区块链技术领域,尤其涉及一种基于区块链执行批量交易的处理方法、装置和***。
背景技术
区块链,是利用分布式账本技术解决多方信任问题的去中心化创新性的解决方案,是当前社会的前沿技术。
用户有交易需要处理时,一般需要将交易签名后发送给区块链上节点进行处理。当面临多个待处理的交易时,需要分别对每个交易进行签名,然后依次发送给区块链节点,这样,致使区块链接收到的交易数据较为饱和,且容易导致区块链一直处于紧张的交易处理进程。
综上,亟需找到一种面对多个交易时的较佳处理方案,以解决上述技术问题。
发明内容
本说明书一个或多个实施例的目的是提供一种基于区块链执行批量交易的处理方法、装置和***,以提升交易处理效率,同时,缓解区块链交易处理压力。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
第一方面,提出了一种基于区块链执行批量交易的处理方法,应用于包含目标用户终端和区块链网络的处理***,所述区块链网络上至少部署有批量交易智能合约;所述方法包括:
目标用户终端基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名,以及,将签名后的批量交易发送给所述区块链网络中至少一个区块链节点进行验证;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
在验证通过且共识打包后,其它区块链节点通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
如果验证成功,则所述其它区块链节点基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;
如果验证失败,则结束处理。
第二方面,提出了一种基于区块链执行批量交易的处理方法,应用于目标用户终端,所述方法包括:
基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名;
将签名后的批量交易发送给区块链网络中至少一个区块链节点进行验证,以便于在验证通过后对所述批量交易进行处理;
其中,所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述区块链网络上部署的批量交易智能合约的地址;所述交易参数包括:交易子合约地址和方法数据。
第三方面,提出了一种基于区块链执行批量交易的处理方法,应用于区块链网络上的区块链节点,所述区块链网络上至少部署有批量交易智能合约;所述方法包括:
接收目标用户终端发送的批量交易,该批量交易是目标用户终端基于待提交的多个交易创建并签名后得到;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
在验证通过且共识打包后,通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
如果验证成功,则基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;
如果验证失败,则结束处理。
第四方面,提出了一种基于区块链执行批量交易的处理***,包括:目标用户终端和区块链网络,所述区块链网络中包含多个区块链节点,所述区块链网络上至少部署有批量交易智能合约;其中,
所述目标用户终端基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名,以及,将签名后的批量交易发送给所述区块链网络中至少一个区块链节点进行验证;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
在验证通过且共识打包后,其它区块链节点通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
如果验证成功,则所述其它区块链节点基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;
如果验证失败,则结束处理。
第五方面,提出了一种基于区块链执行批量交易的目标用户终端,包括:
创建模块,基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名;
发送模块,将签名后的批量交易发送给区块链网络中至少一个区块链节点进行验证,以便于在验证通过后对所述批量交易进行处理;
其中,所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述区块链网络上部署的批量交易智能合约的地址;所述交易参数包括:交易子合约地址和方法数据。
第六方面,提出了一种基于区块链执行批量交易的区块链节点,其中,所述区块链网络上至少部署有批量交易智能合约;所述区块链节点包括:
接收模块,接收目标用户终端发送的批量交易,该批量交易是目标用户终端基于待提交的多个交易创建并签名后得到;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
第一执行模块,在验证模块对接收到的批量交易验证通过且共识打包后,通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
第二执行模块,在验证成功时基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;以及,
在验证失败时结束处理。
第七方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行第二方面或第三方面所述方法的步骤。
第八方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行第二方面或第三方面所述方法的步骤。
由以上本说明书一个或多个实施例提供的技术方案可见,目标用户终端可以使用批量交易智能合约的地址作为合约地址,以及对待提交的多个交易的交易参数进行拼接处理得到批量交易参数,从而将多个交易合并创建为一个批量交易;在对该批量交易签名后发送给区块链节点进行验证,并在验证通过且共识打包后,调用合约地址对应的批量交易智能合约解析批量交易参数以依次对每个交易进行格式验证,如果全部验证正确,则可以依次分别调用每个交易的交易子合约地址对应的交易子合约对相应交易进行处理。这样,在处理交易时仅需进行一次签名及验证,且批量交易的数据体量要小于多个交易数据的体量,极大缓解区块链紧张的处理能力,提升交易处理效率。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对一个或多个实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的基于区块链执行批量交易的处理***架构场景图。
图2是本说明书实施例提供的一种基于区块链执行批量交易的处理方法的步骤示意图之一。
图3是本说明书实施例提供的基于区块链执行批量交易的处理方法的步骤示意图之二。
图4是本说明书实施例提供的基于区块链执行批量交易的处理方法的步骤示意图之三。
图5是本说明书实施例提供的一种基于区块链执行批量交易的处理***的结构示意图。
图6是本说明书实施例提供的一种基于区块链执行批量交易的目标用户终端的结构示意图。
图7是本说明书实施例提供的一种基于区块链执行批量交易的区块链节点的结构示意图。
图8是本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的一个或多个实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
区块链通常是由若干个区块构成,在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳构成一条在时间上有序的数据链条。对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。在二维表里,元组也称为行。
方法签名是方法名称和一个参数列表(方法的参数的顺序和类型)组成。
鉴于背景技术中所提及的问题,现有处理交易的区块链***的处理性能一般会弱于传统***,为了提高交易处理能力,提出了一种批量交易处理方案。在交易处理之初,可以在区块链网络上部署批量交易智能合约。这样,目标用户终端可以使用批量交易智能合约的地址作为合约地址,以及对待提交的多个交易的交易参数进行拼接处理得到批量交易参数,从而将多个交易合并创建为一个批量交易;在对该批量交易签名后发送给区块链节点进行验证,并在验证通过且共识打包后,调用合约地址对应的批量交易智能合约解析批量交易参数以依次对每个交易进行格式验证,如果全部验证正确,则可以依次分别调用每个交易的交易子合约地址对应的交易子合约对相应交易进行处理。这样,在处理交易时仅需进行一次签名及验证,且批量交易的数据体量要小于多个交易数据的体量,极大缓解区块链紧张的处理能力,提升交易处理效率。另外,针对按照交易次数运营的情况,上述批量交易方案还也可以节省用户的交易费用。
参照图1所示,为本说明书实施例提供的基于区块链执行批量交易的处理***架构场景图。在该场景中,目标用户终端102可以是硬件电子设备或软件客户端,可以与区块链网络104中至少一个区块链节点106通讯。同理,区块链节点106也可以是硬件电子设备或软件客户端,区别在于,每个区块链节点106设置有区块链模块,以通过部署的智能合约共同维护所述区块链网络104。在本说明书中,所述区块链节点106中不仅部署有交易执行相关的智能合约(即一个或多个交易子合约),还部署有批量交易智能合约,以实现对多个交易的批量处理。
实施例一
参照图2所示,为本说明书实施例提供的一种基于区块链执行批量交易的处理方法的步骤示意图,应用于包含目标用户终端和区块链网络的处理***,所述区块链网络中包含多个区块链节点,所述区块链网络上至少部署有批量交易智能合约;其中,该批量交易智能合约中提供有批量交易的方法,该方法可以有且只有一个参数,其参数类型为bytes。
所述处理方法可以包括以下步骤:
步骤202:目标用户终端基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名,以及,将签名后的批量交易发送给所述区块链网络中至少一个区块链节点进行验证;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据。
应理解,本说明书实施例并不对待提交的多个交易的数目进行限制,只要不超过交易传输数据大小上限即可。而这里的待提交的多个交易,可以是用户一次性提交的多个交易,也可以是用户分次提交而缓存的多个交易。
可选地,所述目标用户终端在基于待提交的多个交易创建一个批量交易时,可以分别确定每个交易的数据结构,并依次拼接确定的多个数据结构得到批量交易参数;以及,将所述批量交易智能合约的地址作为合约地址,以创建一个批量交易。
换言之,目标用户终端基于待提交的多个交易中每个交易的交易参数,来确定将要创建的一个批量交易的批量交易参数和合约地址。应理解,所述批量交易的交易格式与普通单个交易的交易格式不同。
普通单个交易包含两个参数:目标合约地址和方法数据。其中,目标合约地址也就是单个交易对应的交易子合约地址,方法数据实质上是方法签名和方法参数的组合,而方法签名则是方法名称和参数列表(方法参数的顺序和类型)组合。在本说明书实施例中,目标合约地址和方法数据均可以理解为字符串,其中,目标合约地址是固定长度,方法数据是变长,即长度不固定。
批量交易也包含两个参数:目标合约地址和批量交易参数。其中,目标合约地址是批量交易智能合约的地址,批量交易参数是由多个交易的数据结构拼接到一起的。而每个交易的数据结构可以基于交易的交易参数确定,具体地,所述目标用户终端确定当前交易的方法数据的数据长度;将所述当前交易对应的子合约地址、所述数据长度以及方法数据拼接起来,形成一个元组结构。其实,元组结构只是一种较优的批量交易参数的格式,也可以不是元组结构,而是简单的数据首尾拼接。应理解,每个交易的子合约地址以及确定的数据长度都是固定长度,方法数据是变长。
也就是说,当用户需要发送批量交易时,首先计算单个子交易的方法签名+方法参数的数据长度,再将目标合约地址,数据长度,方法签名+方法参数这三个参数拼接起来,形成一个元组结构:元组(目标合约地址,数据长度,方法签名+方法参数)。接着,依次对待处理的单个交易都进行这种处理,再将编码后的数据首尾拼接起来,作为批量交易参数,目标合约地址为批量交易智能合约的地址,最后,对这个批量交易进行签名,并将签名后的批量交易发送给区块链上的一个或多个区块链节点进行验证。
举例说明,假设批量交易由交易1(id1;参数1)、交易2(id2;参数2)和交易3(id3;参数3)构成,且交易1-交易3中方法签名+方法参数的数据长度分别为d1、d2和d3,则批量交易的格式为:批量交易智能合约地址:ID;批量交易参数:id1;d1;参数1;id2;d2;参数2;id3;d3;参数3。应理解,在形成批量交易时,批量交易参数中的字符串之间可以直接首尾拼接,不需要分隔符等。而且考虑到交易中的方法签名+方法参数并不是固定长度,因此,需要事先计算每个交易的方法签名+方法参数的数据长度,并将该固定长度的数据长度添加到批量交易参数中以便于后续准确提取每个交易的合约地址和方法签名+方法参数。
可见,本说明书实施例可以通过对多个交易进行数据结构拼接的方式,创建一个批量交易,从而,不需要对多个交易分别签名,仅对该批量交易进行签名即可,减少了签名处理的繁琐程度。
步骤204:在验证通过且共识打包后,其它区块链节点通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;如果验证成功,则执行步骤206,否则,结束处理。
当区块链节点收到批量合约交易时,在交易池验证交易时与普通交易无差异,验证其签名、交易格式正确即可。在共识打包交易后,其它区块链节点的交易执行模块处理时也与普通交易无差异,都是将交易交给执行器进行处理。而本申请方案中,仅需要对批量交易的签名进行验签,不需要对每个交易都进行验签,可见,减少了验签的工作量,极大提升了验证处理效率。
之后,其它区块链节点解析该批量交易,从中获取合约地址;然后基于该合约地址调用批量交易智能合约中的方法,以实现对批量交易的处理。具体地,基于所述合约地址调用所述批量交易智能合约以从批量交易参数中获取首个交易的子合约地址和数据长度,并根据获取的数据长度获取首个交易的方法数据;按照该方式依次获取后续每个交易的子合约地址和方法数据;如果成功获取所有交易的子合约地址和方法数据,则确定对每个交易的格式验证正确;否则,处理报错,终止本次批量交易。
仍以上述批量交易为例,在接收到批量交易后,根据批量交易的格式:批量交易智能合约地址:ID;批量交易参数:id1;d1;参数1;id2;d2;参数2;id3;d3;参数3,从中提取ID,并基于ID调用该ID对应的批量交易智能合约中的方法,并依次从批量交易参数中验证每个交易的格式,实质上就是准确提取出每个交易。由于目标合约地址是固定长度的,因此,可根据设置的固定长度从批量交易参数中提取出第一个交易的子合约地址,同时,数据长度这一个参数也是固定长度的,因此,可以根据数据长度的设置长度值从批量交易参数中提取出第一个交易的数据长度(参数);接着,根据提取出的该数据长度从批量交易参数中提取匹配长度的方法签名+方法参数;这样,得到第一个交易的数据结构。再按照上述方式从剩下的参数中分别提取每个交易的数据结构。如果成功获取所有交易的数据结构,就可以确定对批量交易的数据结构验证正确,否则,需要报错处理,终止本次批量交易。
步骤206:所述其它区块链节点基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理。
在处理每个交易时,使用交易子合约的地址,方法签名+方法参数进行子交易的处理,同时将交易需要的Gas费用等传入。其中,Gas可以理解为支撑交易执行所需的计算和/或存储资源。通过依次处理的方式来处理各个交易,最终处理完所有交易时,批量交易处理完成,并通过事件的方式记录所有交易处理完成。
一种可实现的方案,在所述至少一个区块链节点通过解析所述批量交易获取合约地址之后,以及基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证之前,所述方法还包括:
判断所述批量交易中是否携带有表征交易之间具有依赖关系的方法标记;如果携带,则所述至少一个区块链节点从所述批量交易智能合约中调用与所述方法标记相匹配的第一交易方法,基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理,并在任一交易处理失败时,终止本次批量交易,并回滚交易数据,即将之前各交易的处理状态进行回滚;否则,所述至少一个区块链节点从所述批量交易智能合约中调用第二交易方法,基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理,并在任一交易处理失败时,跳过本次交易继续执行下一个交易。
也就是说,批量交易智能合约中预先部署有两套方法,一套是针对具有依赖关系的多个交易构成的批量交易执行,另一套针对无依赖关系的多个交易构成的批量交易执行。其中,具有依赖关系的多个交易可以是指多个交易之间具有时序、因果或是状态依赖关系,可以体现在具体事务关联上,在本说明书实施例中主要是指具有时序依赖关系。
在区块链节点基于接收到的批量交易获取到合约地址后,即确定了要调用的批量交易智能合约。之后,判断批量交易中是否携带有表征交易之间具有依赖关系的方法标记,如果携带有,则可以调用该方法标记对应的第一交易方法处理该批量交易,并在有交易处理失败时,即刻终止本次批量交易并回滚。否则,可以调用第二交易方法处理该批量交易,并在有交易处理失败时,跳过本次交易继续执行下一个交易。具体地,批量交易中可以携带表征交易之间具有依赖关系的方法标记1,或者,批量交易中携带表征交易之间无依赖关系的方法标记0。再如,批量交易中可以携带表征交易之间具有依赖关系的方法标记1,或者,批量交易中不携带任何方法标记。其中,第一交易方法即可对应方法标记1,第二交易方法即可对应方法标记0或者无标记的情况。
进一步,针对无依赖关系的批量交易时,当调用第二交易方法对每个交易进行处理且发生交易处理失败的情况下,可以通过合约事件的方式对处理失败的交易进行记录;或者,在交易处理过程中,支撑交易执行所需的计算和/或存储资源不足时,终止本次批量交易,并通过合约事件的方式在批量交易智能合约中对处理成功的交易进行记录。这样,可以方便查询,以便于下次可以仅针对未完成的交易进行重新处理,避免对所有交易进行重复处理,由此节省处理资源和开销。
针对有依赖关系的批量交易时,当调用第一交易方法对每个交易进行处理且发生交易处理失败/支撑交易执行所需的计算和/或存储资源不足的情况,终止本次批量交易,且当前批量交易中所有子交易的处理状态都不会提交到区块链状态,仅仅扣除交易处理的手续费。
可选地,在批量交易结束之后,所述目标用户终端还可以通过监听批量交易智能合约上合约事件以获取批量交易的处理结果;和/或;所述目标用户终端还可以通过监听每个交易对应的子合约上合约事件以获取相应交易的处理结果。也就是说,在每个交易处理完成之后,都会在该交易对应的子合约上以合约时间的方式对该处理结果进行记录,以便于后续目标用户终端可以远程监听以获知处理结果。同理,也可以在批量交易智能合约上通过合约事件的方式记录所有交易完成情况:全部成功处理,部分失败处理等类似结果,以便于后续目标用户终端可以远程监听获知处理结果。
通过本说明书实施例,目标用户终端可以使用批量交易智能合约的地址作为合约地址,以及对待提交的多个交易的交易参数进行拼接处理得到批量交易参数,从而将多个交易合并创建为一个批量交易;在对该批量交易签名后发送给区块链节点进行验证,并在验证通过且共识打包后,调用合约地址对应的批量交易智能合约解析批量交易参数以依次对每个交易进行格式验证,如果全部验证正确,则可以依次分别调用每个交易的交易子合约地址对应的交易子合约对相应交易进行处理。这样,在处理交易时仅需进行一次签名及验证,且批量交易的数据体量要小于多个交易数据的体量,极大缓解区块链紧张的处理能力,提升交易处理效率。另外,针对按照交易次数运营的情况,上述批量交易方案还也可以节省用户的交易费用。同时批量交易的方式也可以让用户方便处理有顺序依赖或者事务要求的多个交易。批量交易与原有普通交易并没有差别,区块链也无需进行额外改造,仅仅通过增加批量交易智能合约的方式就可以实现批量交易。
实施例二
参照图3所示,为本说明书实施例提供的基于区块链执行批量交易的处理方法的步骤示意图,该方法应用于目标用户终端,可以包括以下步骤:
步骤302:基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名;
步骤304:将签名后的批量交易发送给区块链网络中至少一个区块链节点进行验证,以便于在验证通过后对所述批量交易进行处理;
其中,所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述区块链网络上部署的批量交易智能合约的地址;所述交易参数包括:交易子合约地址和方法数据。
可选地,作为一个实施例,基于待提交的多个交易创建一个批量交易,具体包括:
分别确定每个交易的数据结构,并依次拼接确定的多个数据结构得到批量交易参数;以及,将所述批量交易智能合约的地址作为合约地址,以创建一个批量交易。
在本说明书实施例的一种具体实现方式中,分别确定每个交易的数据结构,具体包括:
所述目标用户终端针对每个交易分别执行:确定当前交易的方法数据的数据长度;将所述当前交易对应的子合约地址、所述数据长度以及方法数据拼接起来,形成一个元组结构。
在本说明书实施例的再一种具体实现方式中,在批量交易结束之后,所述方法还包括:
通过监听批量交易智能合约上合约事件以获取批量交易的处理结果;和/或,通过监听每个交易对应的子合约上合约事件以获取相应交易的处理结果。
应理解,区块链上区块链节点与目标用户终端之间协同操作构成本申请所述基于区块链执行批量交易的处理方案,因此,在该实施例二中,仅对目标用户终端进行保护以及内容大部分只涉及目标用户终端的操作,与之对应的区块链节点作为执行主体所执行的方法操作以及技术效果均可以参照实施例一所示,在此不作赘述。
实施例三
参照图4所示,为本说明书实施例提供的基于区块链执行批量交易的处理方法的步骤示意图,该方法应用于区块链网络上的区块链节点,所述区块链上至少部署有批量交易智能合约;所述方法可以包括以下步骤:
步骤402:至少一个区块链节点接收目标用户终端发送的批量交易,该批量交易是目标用户终端基于待提交的多个交易创建并签名后得到;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
步骤404:在验证通过且共识打包后,其它区块链节点通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;如果验证成功,则执行步骤406,否则,结束处理;
步骤406:其它区块链节点基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理。
可选地,作为一个实施例,基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证,具体包括:
基于所述合约地址调用所述批量交易智能合约以从批量交易参数中获取首个交易的子合约地址和数据长度,并根据获取的数据长度获取首个交易的方法数据;按照该方式依次获取后续每个交易的子合约地址和方法数据;如果成功获取所有交易的子合约地址和方法数据,则确定对每个交易的格式验证正确;否则,处理报错,终止本次批量交易。
在本说明书实施例的一种具体实现方式中,在通过解析所述批量交易获取合约地址之后,以及基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证之前,所述方法还包括:
判断所述批量交易中是否携带有表征交易之间具有依赖关系的方法标记;如果携带,则从所述批量交易智能合约中调用与所述方法标记相匹配的第一交易方法,基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理,并在任一交易处理失败时,终止本次批量交易,并回滚交易数据;否则,所述至少一个区块链节点从所述批量交易智能合约中调用第二交易方法,基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理,并在任一交易处理失败时,跳过本次交易继续执行下一个交易。
在本说明书实施例的再一种具体实现方式中,当调用第二交易方法对每个交易进行处理且发生交易处理失败的情况时,通过合约事件的方式对处理失败的交易进行记录;或者,在交易处理过程中,支撑交易执行所需的计算和/或存储资源不足时,终止本次批量交易,并通过合约事件的方式在批量交易智能合约中对处理成功的交易进行记录。
应理解,区块链上区块链节点与目标用户终端之间协同操作构成本申请所述基于区块链执行批量交易的处理方案,因此,在该实施例三中,仅对区块链节点进行保护以及内容大部分只涉及区块链节点的操作,与之对应的目标用户终端作为执行主体所执行的方法操作以及技术效果均可以参照实施例一所示,在此不作赘述。
实施例四
参照图5所示,为本说明书实施例提供的基于区块链执行批量交易的处理***的结构示意图,该处理***可以包括:目标用户终端502和区块链网络504,所述区块链网络504中包含多个区块链节点506,区块链网络504上至少部署有批量交易智能合约;其中,
所述目标用户终端502基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名,以及,将签名后的批量交易发送给所述区块链网络504中至少一个区块链节点506进行验证;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
在验证通过且共识打包后,其它区块链节点506通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
如果验证成功,则所述其它区块链节点506基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;
如果验证失败,则结束处理。
其实,所述区块链网络上还部署有与每个交易相关的一个或多个交易子合约,以便于在区块链的执行模块执行某个交易时,调用相应交易子合约的方法。
可选地,作为一个实施例,所述目标用户终端基于待提交的多个交易创建一个批量交易时,具体用于分别确定每个交易的数据结构,并依次拼接确定的多个数据结构得到批量交易参数;以及,将所述批量交易智能合约的地址作为合约地址,以创建一个批量交易。
在本说明书实施例的一种具体实现方式中,所述目标用户终端分别确定每个交易的数据结构时,具体用于针对每个交易分别执行:确定当前交易的方法数据的数据长度;将所述当前交易对应的子合约地址、所述数据长度以及方法数据拼接起来,形成一个元组结构。
在本说明书实施例的再一种具体实现方式中,所述至少一个区块链节点基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证时,具体用于:基于所述合约地址调用所述批量交易智能合约以从批量交易参数中获取首个交易的子合约地址和数据长度,并根据获取的数据长度获取首个交易的方法数据;按照该方式依次获取后续每个交易的子合约地址和方法数据;如果成功获取所有交易的子合约地址和方法数据,则确定对每个交易的格式验证正确;否则,处理报错,终止本次批量交易。
在本说明书实施例的再一种具体实现方式中,在所述至少一个区块链节点通过解析所述批量交易获取合约地址之后,以及基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证之前,还用于:判断所述批量交易中是否携带有表征交易之间具有依赖关系的方法标记;如果携带,则所述至少一个区块链节点从所述批量交易智能合约中调用与所述方法标记相匹配的第一交易方法,基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理,并在任一交易处理失败时,终止本次批量交易,并回滚交易数据;否则,所述至少一个区块链节点从所述批量交易智能合约中调用第二交易方法,基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理,并在任一交易处理失败时,跳过本次交易继续执行下一个交易。
在本说明书实施例的再一种具体实现方式中,当调用第二交易方法对每个交易进行处理且发生交易处理失败的情况时,通过合约事件的方式对处理失败的交易进行记录;或者,在交易处理过程中,支撑交易执行所需的计算和/或存储资源不足时,终止本次批量交易,并通过合约事件的方式在批量交易智能合约中对处理成功的交易进行记录。
在本说明书实施例的再一种具体实现方式中,在批量交易结束之后,所述目标用户终端还用于通过监听批量交易智能合约上合约事件以获取批量交易的处理结果;和/或,通过监听每个交易对应的子合约上合约事件以获取相应交易的处理结果。
通过本说明书实施例,目标用户终端可以使用批量交易智能合约的地址作为合约地址,以及对待提交的多个交易的交易参数进行拼接处理得到批量交易参数,从而将多个交易合并创建为一个批量交易;在对该批量交易签名后发送给区块链节点进行验证,并在验证通过且共识打包后,调用合约地址对应的批量交易智能合约解析批量交易参数以依次对每个交易进行格式验证,如果全部验证正确,则可以依次分别调用每个交易的交易子合约地址对应的交易子合约对相应交易进行处理。这样,在处理交易时仅需进行一次签名及验证,且批量交易的数据体量要小于多个交易数据的体量,极大缓解区块链紧张的处理能力,提升交易处理效率。另外,针对按照交易次数运营的情况,上述批量交易方案还也可以节省用户的交易费用。
实施例五
参照图6所示,为本说明书实施例提供的基于区块链执行批量交易的目标用户终端,该目标用户终端600可以包括:
创建模块602,基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名;
发送模块604,将签名后的批量交易发送给区块链网络中至少一个区块链节点进行验证,以便于在验证通过后对所述批量交易进行处理;
其中,所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述区块链网络上部署的批量交易智能合约的地址;所述交易参数包括:交易子合约地址和方法数据。
可选地,作为一个实施例,所述创建模块602基于待提交的多个交易创建一个批量交易时,具体用于:分别确定每个交易的数据结构,并依次拼接确定的多个数据结构得到批量交易参数;以及,将所述批量交易智能合约的地址作为合约地址,以创建一个批量交易。
在本说明书实施例的一种具体实现方式中,所述创建模块602分别确定每个交易的数据结构时,具体用于:针对每个交易分别执行:确定当前交易的方法数据的数据长度;将所述当前交易对应的子合约地址、所述数据长度以及方法数据拼接起来,形成一个元组结构。
在本说明书实施例的再一种具体实现方式中,所述目标用户终端还包括:监听模块,用于在批量交易结束之后,通过监听批量交易智能合约上合约事件以获取批量交易的处理结果;和/或,通过监听每个交易对应的子合约上合约事件以获取相应交易的处理结果。
实施例六
参照图7所示,为本说明书实施例提供的基于区块链执行批量交易的区块链节点,其中,所述区块链网络上至少部署有批量交易智能合约;每个区块链节点700可以包括:处理区块链业务所需的基本模块,例如,打包模块、共识模块、验证模块、执行模块等,此外,还包括用于接收交易(包含批量交易或普通单个交易)的接收模块702,以及执行模块,其中,该执行模块又进一步可以根据调用合约的不同而划分为调用批量交易智能合约时的第一执行模块704,以及调用交易子合约时的第二执行模块706;
接收模块702,接收目标用户终端发送的批量交易,该批量交易是目标用户终端基于待提交的多个交易创建并签名后得到;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
第一执行模块704,在验证模块对接收到的批量交易验证通过且共识打包后,通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
第二执行模块706,在验证成功时基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;以及,在验证失败时结束处理。
可选地,作为一个实施例,所述第一执行模块704基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证时,具体用于:基于所述合约地址调用所述批量交易智能合约以从批量交易参数中获取首个交易的子合约地址和数据长度,并根据获取的数据长度获取首个交易的方法数据;按照该方式依次获取后续每个交易的子合约地址和方法数据;如果成功获取所有交易的子合约地址和方法数据,则确定对每个交易的格式验证正确;否则,处理报错,终止本次批量交易。
在本说明书实施例的一种具体实现方式中,在所述第一执行模块704通过解析所述批量交易获取合约地址之后,以及基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证之前,还用于:判断所述批量交易中是否携带有表征交易之间具有依赖关系的方法标记;如果携带,则从所述批量交易智能合约中调用与所述方法标记相匹配的第一交易方法,基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理,并在任一交易处理失败时,终止本次批量交易并回滚交易数据;否则,所述至少一个区块链节点从所述批量交易智能合约中调用第二交易方法,基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理,并在任一交易处理失败时,跳过本次交易继续执行下一个交易。
在本说明书实施例的再一种具体实现方式中,所述区块链节点还包括:事件记录模块,用于当调用第二交易方法对每个交易进行处理且发生交易处理失败的情况时,通过合约事件的方式对处理失败的交易进行记录;或者,在交易处理过程中,支撑交易执行所需的计算和/或存储资源不足时,终止本次批量交易,并通过合约事件的方式在批量交易智能合约中对处理成功的交易进行记录。
应理解,实施例五和实施例六分别属于实施例四的一部分,因此,具体装置模块细节以及功能效果可参照实施例一以及实施例四的内容理解,再此不做赘述。
实施例七
图8是本说明书的一个实施例电子设备的结构示意图。请参考图8,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成基于区块链执行批量交易的处理装置(即目标用户终端或区块链节点)。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名;
将签名后的批量交易发送给区块链网络中至少一个区块链节点进行验证,以便于在验证通过后对所述批量交易进行处理;
其中,所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述区块链网络上部署的批量交易智能合约的地址;所述交易参数包括:交易子合约地址和方法数据。或者;
接收目标用户终端发送的批量交易,该批量交易是目标用户终端基于待提交的多个交易创建并签名后得到;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
在验证通过且共识打包后,通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
如果验证成功,则基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;
如果验证失败,则结束处理。
上述如本说明书图2-图7所示实施例揭示的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图2-图4的方法,并实现相应装置在图2-图4所示实施例的功能,本说明书实施例在此不再赘述。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
通过本说明书实施例,目标用户终端可以使用批量交易智能合约的地址作为合约地址,以及对待提交的多个交易的交易参数进行拼接处理得到批量交易参数,从而将多个交易合并创建为一个批量交易;在对该批量交易签名后发送给区块链节点进行验证,并在验证通过且共识打包后,调用合约地址对应的批量交易智能合约解析批量交易参数以依次对每个交易进行格式验证,如果全部验证正确,则可以依次分别调用每个交易的交易子合约地址对应的交易子合约对相应交易进行处理。这样,在处理交易时仅需进行一次签名及验证,且批量交易的数据体量要小于多个交易数据的体量,极大缓解区块链紧张的处理能力,提升交易处理效率。另外,针对按照交易次数运营的情况,上述批量交易方案还也可以节省用户的交易费用。
实施例八
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图2-图4所示实施例的方法,并具体用于执行以下方法:
基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名;
将签名后的批量交易发送给区块链网络中至少一个区块链节点进行验证,以便于在验证通过后对所述批量交易进行处理;
其中,所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述区块链网络上部署的批量交易智能合约的地址;所述交易参数包括:交易子合约地址和方法数据。或者;
接收目标用户终端发送的批量交易,该批量交易是目标用户终端基于待提交的多个交易创建并签名后得到;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
在验证通过且共识打包后,通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
如果验证成功,则基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;
如果验证失败,则结束处理。
通过本说明书实施例,目标用户终端可以使用批量交易智能合约的地址作为合约地址,以及对待提交的多个交易的交易参数进行拼接处理得到批量交易参数,从而将多个交易合并创建为一个批量交易;在对该批量交易签名后发送给区块链节点进行验证,并在验证通过且共识打包后,调用合约地址对应的批量交易智能合约解析批量交易参数以依次对每个交易进行格式验证,如果全部验证正确,则可以依次分别调用每个交易的交易子合约地址对应的交易子合约对相应交易进行处理。这样,在处理交易时仅需进行一次签名及验证,且批量交易的数据体量要小于多个交易数据的体量,极大缓解区块链紧张的处理能力,提升交易处理效率。另外,针对按照交易次数运营的情况,上述批量交易方案还也可以节省用户的交易费用。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述一个或多个实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
Claims (14)
1.一种基于区块链执行批量交易的处理方法,应用于包含目标用户终端和区块链网络的处理***,所述区块链网络上至少部署有批量交易智能合约;所述方法包括:
目标用户终端基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名,以及,将签名后的批量交易发送给所述区块链网络中至少一个区块链节点进行验证;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
在验证通过且共识打包后,其它区块链节点通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
如果验证成功,则其它区块链节点基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;
如果验证失败,则结束处理。
2.如权利要求1所述的基于区块链执行批量交易的处理方法,所述目标用户终端基于待提交的多个交易创建一个批量交易,具体包括:
所述目标用户终端分别确定每个交易的数据结构,并依次拼接确定的多个数据结构得到批量交易参数;以及,
将所述批量交易智能合约的地址作为合约地址,以创建一个批量交易。
3.如权利要求2所述的基于区块链执行批量交易的处理方法,所述目标用户终端分别确定每个交易的数据结构,具体包括:
所述目标用户终端针对每个交易分别执行:
确定当前交易的方法数据的数据长度;
将所述当前交易对应的子合约地址、所述数据长度以及方法数据拼接起来,形成一个元组结构。
4.如权利要求3所述的基于区块链执行批量交易的处理方法,所述至少一个区块链节点基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证,具体包括:
所述至少一个区块链节点基于所述合约地址调用所述批量交易智能合约以从批量交易参数中获取首个交易的子合约地址和数据长度,并根据获取的数据长度获取首个交易的方法数据;按照该方式依次获取后续每个交易的子合约地址和方法数据;
如果成功获取所有交易的子合约地址和方法数据,则确定对每个交易的格式验证正确;
否则,处理报错,终止本次批量交易。
5.如权利要求1所述的基于区块链执行批量交易的处理方法,在所述至少一个区块链节点通过解析所述批量交易获取合约地址之后,以及基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证之前,所述方法还包括:
判断所述批量交易中是否携带有表征交易之间具有依赖关系的方法标记;
如果携带,则所述其它区块链节点从所述批量交易智能合约中调用与所述方法标记相匹配的第一交易方法,基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理,并在任一交易处理失败时,终止本次批量交易,并回滚交易数据;
否则,所述至少一个区块链节点从所述批量交易智能合约中调用第二交易方法,基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理,并在任一交易处理失败时,跳过本次交易继续执行下一个交易。
6.如权利要求5所述的基于区块链执行批量交易的处理方法,当调用第二交易方法对每个交易进行处理且发生交易处理失败的情况时,通过合约事件的方式对处理失败的交易进行记录;或者,
在交易处理过程中,支撑交易执行所需的计算和/或存储资源不足时,终止本次批量交易,并通过合约事件的方式在批量交易智能合约中对处理成功的交易进行记录。
7.如权利要求6所述的基于区块链执行批量交易的处理方法,在批量交易结束之后,所述方法还包括:
所述目标用户终端通过监听批量交易智能合约上合约事件以获取批量交易的处理结果;和/或
所述目标用户终端通过监听每个交易对应的子合约上合约事件以获取相应交易的处理结果。
8.一种基于区块链执行批量交易的处理方法,应用于目标用户终端,所述方法包括:
基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名;
将签名后的批量交易发送给区块链网络中至少一个区块链节点进行验证,以便于在验证通过后对所述批量交易进行处理;
其中,所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述区块链网络上部署的批量交易智能合约的地址;所述交易参数包括:交易子合约地址和方法数据。
9.一种基于区块链执行批量交易的处理方法,应用于区块链网络上的区块链节点,所述区块链网络上至少部署有批量交易智能合约;所述方法包括:
接收目标用户终端发送的批量交易,该批量交易是目标用户终端基于待提交的多个交易创建并签名后得到;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
在验证通过且共识打包后,通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
如果验证成功,则基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;
如果验证失败,则结束处理。
10.一种基于区块链执行批量交易的处理***,包括:目标用户终端和区块链网络,所述区块链网络中包含多个区块链节点,所述区块链网络上至少部署有批量交易智能合约;其中,
所述目标用户终端基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名,以及,将签名后的批量交易发送给所述区块链网络中至少一个区块链节点进行验证;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
在验证通过且共识打包后,其它区块链节点通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
如果验证成功,则所述其它区块链节点基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;
如果验证失败,则结束处理。
11.一种基于区块链执行批量交易的目标用户终端,包括:
创建模块,基于待提交的多个交易创建一个批量交易,并对所述批量交易进行签名;
发送模块,将签名后的批量交易发送给区块链网络中至少一个区块链节点进行验证,以便于在验证通过后对所述批量交易进行处理;
其中,所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述区块链网络上部署的批量交易智能合约的地址;所述交易参数包括:交易子合约地址和方法数据。
12.一种基于区块链执行批量交易的区块链节点,其中,所述区块链网络上至少部署有批量交易智能合约;所述区块链节点包括:
接收模块,接收目标用户终端发送的批量交易,该批量交易是目标用户终端基于待提交的多个交易创建并签名后得到;所述批量交易的批量交易参数基于所述多个交易中每个交易的交易参数确定,所述批量交易的合约地址为所述批量交易智能合约的地址;其中,所述交易参数包括:交易子合约地址和方法数据;
第一执行模块,在验证模块对接收到的批量交易验证通过且共识打包后,通过解析所述批量交易获取合约地址,并基于所述合约地址调用所述批量交易智能合约对所述批量交易参数对应的每个交易进行验证;
第二执行模块,在验证成功时基于每个交易的交易子合约地址调用相应的交易子合约对该交易进行处理;以及,
在验证失败时结束处理。
13.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行权利要求8或9所述方法的步骤。
14.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行权利要求8或9所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110892853.0A CN113706146A (zh) | 2021-08-04 | 2021-08-04 | 一种基于区块链执行批量交易的处理方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110892853.0A CN113706146A (zh) | 2021-08-04 | 2021-08-04 | 一种基于区块链执行批量交易的处理方法、装置和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113706146A true CN113706146A (zh) | 2021-11-26 |
Family
ID=78651559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110892853.0A Pending CN113706146A (zh) | 2021-08-04 | 2021-08-04 | 一种基于区块链执行批量交易的处理方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113706146A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037813A (zh) * | 2022-06-08 | 2022-09-09 | 北京知帆科技有限公司 | 一种区块链数据解析方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110033363A (zh) * | 2018-12-14 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 基于区块链的事件处理方法及装置、电子设备 |
CN110264348A (zh) * | 2019-05-07 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 一种交易上链的处理方法、装置及存储介质 |
CN111177258A (zh) * | 2019-12-13 | 2020-05-19 | 浙商银行股份有限公司 | 一种基于区块链平台的自适应配置交易打包方法 |
US20200379980A1 (en) * | 2019-06-03 | 2020-12-03 | Samsung Sds Co., Ltd. | Blockchain-based computing system and method for managing transaction thereof |
CN112232823A (zh) * | 2020-12-10 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 区块链***的交易处理方法、装置、介质及电子设备 |
-
2021
- 2021-08-04 CN CN202110892853.0A patent/CN113706146A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110033363A (zh) * | 2018-12-14 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 基于区块链的事件处理方法及装置、电子设备 |
CN110264348A (zh) * | 2019-05-07 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 一种交易上链的处理方法、装置及存储介质 |
US20200379980A1 (en) * | 2019-06-03 | 2020-12-03 | Samsung Sds Co., Ltd. | Blockchain-based computing system and method for managing transaction thereof |
CN111177258A (zh) * | 2019-12-13 | 2020-05-19 | 浙商银行股份有限公司 | 一种基于区块链平台的自适应配置交易打包方法 |
CN112232823A (zh) * | 2020-12-10 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 区块链***的交易处理方法、装置、介质及电子设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037813A (zh) * | 2022-06-08 | 2022-09-09 | 北京知帆科技有限公司 | 一种区块链数据解析方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110659988B (zh) | 区块链共识与执行的并行处理方法、装置和电子设备 | |
CN108765159B (zh) | 一种基于区块链的上链与状态处理方法、装置及互联*** | |
CN108846749B (zh) | 一种基于区块链技术的分片化的交易执行***及方法 | |
CN111461887B (zh) | 一种区块链的共识处理方法、装置和电子设备 | |
CN109299015B (zh) | 一种软件测试方法、装置及*** | |
CN110020859B (zh) | 一种并行执行的区块链共识方法、装置及电子设备 | |
CN111143087A (zh) | 一种接口调用方法、装置、存储介质和服务器 | |
CN111698244B (zh) | 一种新增节点快速参与共识的方法、装置及电子设备 | |
CN110780870A (zh) | 一种业务执行方法、装置、设备及存储介质 | |
CN111369358A (zh) | 一种区块链共识方法、装置和电子设备 | |
CN110648125B (zh) | 一种打包交易方法、装置、电子设备及存储介质 | |
CN112037061A (zh) | 区块链中交易的处理方法、装置、电子设备及存储介质 | |
WO2021082661A1 (zh) | 网页截图方法、装置及设备 | |
CN111461886B (zh) | 区块链上不依赖智能合约的***配置的管理方法和装置 | |
CN111553652A (zh) | 业务处理方法及装置 | |
CN113706146A (zh) | 一种基于区块链执行批量交易的处理方法、装置和*** | |
CN109345081B (zh) | 一种数据采集方法、装置及电子设备 | |
CN110851207B (zh) | 状态转换管理方法、装置、电子设备和存储介质 | |
CN111709748A (zh) | 一种具有业务属性的交易执行方法、装置及电子设备 | |
CN111597020A (zh) | 一种应用程序编程接口api调试方法以及调试终端 | |
CN108710658B (zh) | 一种数据记录的存储方法及装置 | |
CN110750271B (zh) | 服务聚合、聚合服务的执行方法、装置和电子设备 | |
CN115203050A (zh) | 一种服务的依赖关系的确定方法及装置 | |
CN115118625A (zh) | 一种数据校验方法和装置 | |
CN110599139B (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 |