
1.本技术涉及计算机技术领域,具体而言,涉及一种基于区块链的事务交易处理方法、基于区块链的事务交易处理装置、电子设备及计算机可读介质。
背景技术:2.相关技术中当在区块链上执行多笔具有关联关系的事务交易时,可能出现部分事务交易执行成功部分事务交易执行失败的情况,此时则会造成最终事务交易的错误,从而降低了区块链上事务交易数据的准确性。
3.可见,如何提升区块链上事务交易数据的准确性是亟待解决的问题。
技术实现要素:4.为解决上述技术问题,本技术的实施例提供了一种基于区块链的事务交易处理方法及装置、设备、介质,进而至少在一定程度上提升了区块链上事务交易数据的准确性。
5.根据本技术实施例的一个方面,本技术实施例提供了一种基于区块链的事务交易处理方法,所述方法包括:获取待执行的事务交易组;其中,所述事务交易组包括具有依赖关系的至少两笔事务交易,且所述至少两笔事务交易之间存在执行顺序;将所述事务交易组发送至区块链网络,以使所述区块链网络基于所述至少两笔事务交易之间的执行顺序执行所述至少两笔事务交易,并返回所述至少两笔事务交易的执行结果;若根据所述执行结果确定所述事务交易组中存在执行失败的事务交易,则生成执行成功的事务交易对应的回滚事务交易;将所述回滚事务交易发送至所述区块链网络,以使所述区块链网络基于与所述执行顺序相反的顺序执行所述回滚事务交易。
6.根据本技术实施例的一个方面,本技术实施例提供了一种基于区块链的事务交易处理方法,所述方法包括:接收事务交易处理方发送的待执行的事务交易组;其中,所述待执行的事务交易组包括具有依赖关系的至少两笔事务交易,且所述至少两笔事务交易之间存在执行顺序;基于所述至少两笔事务交易之间的执行顺序执行所述至少两笔事务交易,并将所述至少两笔事务交易的执行结果发送至所述事务交易处理方;接收所述事务交易处理方发送的回滚事务交易;其中,所述回滚事务交易是所述事务交易处理方在根据所述执行结果确定所述事务交易组中存在执行失败的事务交易时,基于执行成功的事务交易所生成并发送的;基于与所述执行顺序相反的顺序执行所述回滚事务交易。
7.根据本技术实施例的一个方面,本技术实施例提供了一种基于区块链的事务交易处理装置,所述装置配置于事务交易处理方,所述装置包括:获取模块,配置为获取待执行的事务交易组;其中,所述事务交易组包括具有依赖关系的至少两笔事务交易,且所述至少两笔事务交易之间存在执行顺序;第一发送模块,配置为将所述事务交易组发送至区块链网络,以使所述区块链网络基于所述至少两笔事务交易之间的执行顺序执行所述至少两笔事务交易,并返回所述至少两笔事务交易的执行结果;生成模块,配置为若根据所述执行结果确定所述事务交易组中存在执行失败的事务交易,则生成执行成功的事务交易对应的回
滚事务交易;第二发送模块,配置为将所述回滚事务交易发送至所述区块链网络,以使所述区块链网络基于与所述执行顺序相反的顺序执行所述回滚事务交易。
8.在本技术的一个实施例中,基于前述方案,每笔事务交易包括资源数据从第一交易账户转移至第二交易账户中;所述生成模块包括:第一生成单元,配置为根据执行成功的事务交易中含有的用于指示资源数据从第一交易账户转移至第二交易账户的信息,生成资源数据从所述第二交易账户转移至所述第一交易账户的回滚事务交易。
9.在本技术的一个实施例中,基于前述方案,所述生成模块包括:检测单元,配置为检测执行失败的事务交易是否是所述事务交易组中最先执行的事务交易;所述第一生成单元,配置为若否,则根据执行成功的事务交易中含有的用于指示资源数据从第一交易账户转移至第二交易账户的信息,生成资源数据从所述第二交易账户转移至所述第一交易账户的回滚事务交易。
10.在本技术的一个实施例中,基于前述方案,所述第二发送模块包括:确定单元,配置为根据执行成功的事务交易的执行顺序,将与所述执行顺序相反的顺序作为所述至少两笔回滚事务交易之间的执行顺序;第一发送单元,配置为将所述至少两笔回滚事务交易发送至所述区块链网络,以使所述区块链网络基于所述至少两笔回滚事务交易之间的执行顺序执行所述回滚事务交易。
11.在本技术的一个实施例中,基于前述方案,所述生成模块包括:第一获取单元,配置为获取第一接口的地址信息;其中,所述第一接口用于生成回滚事务交易;第一调用单元,配置为基于所述第一接口的地址信息调用所述第一接口,以通过所述第一接口生成执行成功的事务交易对应的回滚事务交易。
12.在本技术的一个实施例中,基于前述方案,所述第二发送模块包括:签名单元,配置为基于事务交易处理方的私钥对所述回滚事务交易进行签名,生成签名后的回滚事务交易,并将所述签名后的回滚事务交易发送至业务方,以使所述业务方基于自身的私钥对验证成功后的回滚事务交易进行签名;第二发送单元,配置为若接收到所述业务方发送的针对验证成功后的回滚交易事务的第一签名数据,则将所述回滚事务交易发送至所述区块链网络。
13.在本技术的一个实施例中,基于前述方案,所述第二发送模块包括:第二获取单元,配置为获取第二接口的地址信息;其中,所述第二接口用于对签名后的回滚事务交易进行验证;第二调用单元,配置为基于所述第二接口的地址信息调用所述第二接口,以通过所述第二接口基于所述事务交易处理方的公钥对所述签名后的回滚事务交易进行验证;第三发送单元,配置为将验证后的回滚事务交易发送至业务方。
14.在本技术的一个实施例中,基于前述方案,所述获取模块包括:接收单元,配置为接收业务方发送的待执行的事务交易组以及针对所述待执行的事务交易组的第二签名数据;其中,所述第二签名数据是所述业务方基于自身的私钥对所述待执行的事务交易组进行签名得到;第二生成单元,配置为若基于所述业务方自身的公钥对所述第二签名数据验证成功,则封装所述待执行的事务交易组以及所述第二签名数据,生成提交凭证;签名与发送单元,配置为基于事务交易处理方的私钥对所述提交凭证进行签名,并将签名后的提交凭证发送至所述业务方。
15.在本技术的一个实施例中,基于前述方案,所述基于区块链的事务交易处理装置
还包括:确定模块,配置为确定所述待执行的事务交易组的标识信息;存储模块,配置为将所述标识信息与所述待执行的事务交易组进行关联存储;第三发送模块,配置为若将所述待执行的事务交易组发送至所述区块链网络的过程中检测到发送失败,则获取与所述待执行的事务交易组的标识信息相匹配的待执行的事务交易组进行重新发送。
16.根据本技术实施例的一个方面,本技术实施例提供了一种基于区块链的事务交易处理装置,所述装置配置于区块链网络,所述装置包括:第一接收模块,配置为接收事务交易处理方发送的待执行的事务交易组;其中,所述待执行的事务交易组中包括具有依赖关系的至少两笔事务交易,且所述至少两笔事务交易之间存在执行顺序;执行与发送模块,配置为基于所述至少两笔事务交易之间的执行顺序执行所述至少两笔事务交易,并将所述至少两笔事务交易的执行结果发送至所述事务交易处理方;第二接收模块,配置为接收所述事务交易处理方发送的回滚事务交易;其中,所述回滚事务交易是所述事务交易处理方在根据所述执行结果确定所述事务交易组中存在执行失败的事务交易时,基于执行成功的事务交易所生成并发送的;执行模块,配置为基于与所述执行顺序相反的顺序执行所述回滚事务交易。
17.在本技术的一个实施例中,基于前述方案,每笔事务交易包括资源数据从第一交易账户转移至第二交易账户中;所述执行与发送模块包括:锁定单元,配置为在基于所述执行顺序执行一笔事务交易时,将由第一交易账户转移至第二交易账户的资源数据进行锁定,并基于预设资源数据的转移关系确定锁定后的资源数据的转移方向;解锁单元,配置为若所述转移方向与所执行的事务交易的下一笔事务交易的转移方向相匹配,则对所述资源数据进行解锁,以执行所述下一笔事务交易。
18.在本技术的一个实施例中,基于前述方案,所述执行与发送模块包括:第三生成单元,配置为若基于所述执行顺序执行所述至少两笔事务交易的过程中检测到存在事务交易执行失败,则生成执行失败的事务交易对应的执行失败结果,并将所述执行失败结果作为所述事务交易组的执行失败结果,以及将所述执行失败结果发送至所述事务交易处理方;第四生成单元,配置为若基于所述执行顺序执行所述至少两笔事务交易的过程中检测到所述至少两笔事务交易均执行成功,则生成所述事务交易组对应的执行成功结果,将所述执行成功结果发送至所述事务交易处理方。
19.根据本技术实施例的一个方面,本技术实施例提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上所述的基于区块链的事务交易处理方法。
20.根据本技术实施例的一个方面,本技术实施例提供了一种计算机可读介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,使计算机执行如上所述的基于区块链的事务交易处理方法。
21.根据本技术实施例的一个方面,本技术实施例提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如上所述的基于区块链的事务交易处理方法。
22.在本技术的实施例提供的技术方案中:获取待执行的事务交易组,并将事务交易组发送至区块链网络,进而接收区块链网络返回的事务交易组中具有依赖关系的至少两笔事务交易的执行结果,并根据执行结果确定事务交易组中存在执行失败的事务交易时,生
成执行成功的事务交易对应的回滚事务交易,以及将回滚事务交易发送至区块链网络,这样区块链网络就可以基于与至少两笔事务交易之间的执行顺序相反的执行顺序执行回滚事务交易,使得可以回到执行事务交易之前的状态,保证了事务交易所涉及到的资源数据的安全性,避免了相关技术中区块链网络中出现不准确的事务交易数据的现象,提高了区块链网络的安全性和稳定性。
23.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
24.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1是区块链网络的结构示意图。
26.图2是区块链中各区块的连接关系示意图。
27.图3是可以应用本技术实施例的技术方案的示例性实施环境的示意图。
28.图4是本技术的一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
29.图5是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
30.图6是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
31.图7是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
32.图8是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
33.图9是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
34.图10是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
35.图11是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
36.图12是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
37.图13是本技术的一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
38.图14是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
39.图15是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流
程图。
40.图16是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
41.图17是本技术的另一示例性实施例示出的基于区块链的事务交易处理方法的流程图。
42.图18是本技术的另一示例性实施例示出的基于区块链的事务交易处理装置的框图。
43.图19是本技术的另一示例性实施例示出的基于区块链的事务交易处理装置的框图。
44.图20是适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
45.这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相相同的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相同的装置和方法的例子。
46.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
47.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
48.需要说明的是,在本技术中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
49.相关技术中当在区块链上执行多笔具有关联关系的事务交易时,可能出现部分事务交易执行成功部分事务交易执行失败的情况,此时则会造成最终事务交易的错误,从而降低了区块链上事务交易数据的准确性。
50.为了便于理解,以一个具体示例进行说明;例如目的是实现交易账户a中的资源数据转移至交易账户b中,其中涉及到的两笔具有关联关系的事务交易分别为交易账户a中的资源数据转移至交易账户c中(为第一笔事务交易),以及交易账户c中的资源数据转移至交易账户b中(为第二笔事务交易),但是可能出现第一笔事务交易执行成功,但是第二笔事务交易执行失败,此时实现的是交易账户a中的资源数据转移至交易账户c中,可见,造成了最终事务交易的错误,降低了区块链上事务交易数据的准确性。
51.在介绍本技术实施例的技术方案之前,先介绍本技术实施例中用到的区块链技术。
52.区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(即区块),每一个数据块中包含了一批次网络交易的信息,用于验证
其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
53.如上,区块链本质上是一个去中心化的数据库,而区块链是由区块链网络中的节点共同维护的。例如请参阅图1,在图1所示的区块链网络中,可以包括多个节点101,多个节点101可以是形成区块链网络的各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链网络内的共享数据。为了保证区块链网络内的信息互通,区块链网络中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如当区块链网络中的任意节点接收到输入信息时,区块链网络中的其它节点便根据共识算法获取该输入信息,将该输入信息作为共享数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
54.对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有其它节点的节点标识,以便后续根据其它节点的节点标识,将生成的区块广播至区块链网络中的其它节点。每个节点中可维护一个节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为ip(internet protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息。
55.区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,请参阅图2,区块链由多个区块组成,创始块中包括区块头和区块体,区块头中存储有输入信息特征值、版本号、时间戳和难度值等,区块体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值等,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
56.区块链网络中各个节点可以是服务器,也可以是终端设备。其中服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算(cloud computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和智能平台等基础云计算服务的云服务器。其中终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。各个节点之间可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
57.前述的云计算是指it基础设施的交付和使用模式,具体指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算(grid computing)、分布式计算(distributed computing)、并行计算(parallel computing)、效用计算(utility computing)、网络存储(network storage technologies)、虚拟化(virtualization)、负载均衡(load balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
58.基于前述介绍的区块链技术,以及相关技术中区块链上事务交易数据的准确性低
的问题,本技术的实施例提供了一种基于区块链的事务交易处理方案。具体而言,在本技术的一个应用场景中,请参阅图3,主要包含了业务方301、事务交易处理方302以及区块链网络303。
59.可以理解的是,业务方301也称事务交易发布者,其是发起事务交易请求的一方,其可以通过任意具有对象输入接口的电子设备发起事务交易请求。其中,电子设备包括但不限于智能手机、平板、笔记本电脑、计算机、智能语音交互设备、智能家电、车载终端、飞行器等等,其中对象输入接口包括但不限于触摸屏、键盘、物理按键、音频拾取装置等。
60.可以理解的是,事务交易处理方302也称事务交易中心,其是对事务交易请求进行中间处理的一方。其中,对事务交易请求进行的中间处理包括但不限于对来自于业务方的事务交易组进行校验、签名、生成提交凭证以及在事务交易组中存在执行失败的事务交易时,生成执行成功的事务交易对应的回滚事务交易等,后文将详细介绍。其中,事务交易处理方可以是通过任意服务器进行处理;其中,服务器可以是提供各种服务的服务器,其可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和智能平台等基础云计算服务的云服务器,本处对此不进行限制。
61.可以理解的是,区块链网络303即为前述介绍的区块链网络,其是响应事务交易请求的一方,即是执行与事务交易请求对应的事务交易的一方。其中,区块链网络303可以是一个或多个(图3中示例出2个区块链网络),本处对此不进行限制。
62.需要说明的是,在前述所提及的实施环境中,可以是针对事务交易组进行执行。其中,事务交易组包括具有依赖关系的至少两笔事务交易,且至少两笔事务交易之间存在执行顺序。例如事务交易组包括交易账户a中的资源数据转移至交易账户c中(为第一笔事务交易),以及交易账户c中的资源数据转移至交易账户b中(为第二笔事务交易),可见,都涉及到交易账户c,此时第一笔事务交易与第二笔事务交易之间具有依赖关系;同时,第一笔事务交易应该先于第二笔事务交易执行,可见,第一笔事务交易与第二笔事务交易之间存在执行顺序。
63.在本技术的一个实施例中,业务方301发送待执行的事务交易组至事务交易处理中心302;相应地,事务交易处理中心302接收到业务方301发送的事务交易组,之后将事务交易组发送至区块链网络303;相应地,区块链网络303接收到事务交易处理方302发送的事务交易组,并基于至少两笔事务交易之间的执行顺序执行至少两笔事务交易,之后将至少两笔事务交易的执行结果返回至事务交易处理方302;相应地,事务交易处理方302接收到区块链网络303发送的至少两笔事务交易的执行结果,并根据执行结果确定事务交易组中是否存在执行失败的事务交易,如果根据执行结果确定事务交易组中存在执行失败的事务交易,则生成执行成功的事务交易对应的回滚事务交易,并将回滚事务交易发送至区块链网络303;相应地,区块链网络303接收到事务交易处理方302发送的回滚事务交易,并基于与至少两笔事务交易之间的执行顺序相反的顺序执行回滚事务交易。
64.通过实施本技术实施例的技术方案,区块链网络可以基于与至少两笔事务交易之间的执行顺序相反的执行顺序执行回滚事务交易,使得可以回到执行事务交易之前的状态,避免了相关技术中区块链网络中出现不准确的事务交易数据的现象,提高了区块链网
络的安全性和稳定性。
65.需要说明的是,在本技术的具体实施方式中,涉及到对象相关的数据,当本技术实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
66.以下对本技术实施例的技术方案的各种实现细节进行详细阐述:
67.请参阅图4,图4是本技术的一个实施例示出的方法的流程图,该基于区块链的事务交易处理方法可以由图3中所示的事务交易处理方302来执行。如图4所示,基于区块链的事务交易处理方法至少包括步骤s401至步骤s404,详细介绍如下:
68.步骤s401,获取待执行的事务交易组;其中,事务交易组包括具有依赖关系的至少两笔事务交易,且至少两笔事务交易之间存在执行顺序。
69.本技术实施例中事务交易指的是资源数据从第一交易账户转移至第二交易账户中的一笔事务交易。
70.举例说明,例如针对事务交易a—》c,表征交易账户a中的资源数据转移至交易账户c中,其中,在此笔事务交易中,交易账户a即称为第一交易账户,交易账户c即称为第二交易账户。
71.又例如针对事务交易c—》b,表征交易账户c中的资源数据转移至交易账户b中,其中,在此笔事务交易中,交易账户c即称为第一交易账户,交易账户b即称为第二交易账户。
72.本技术实施例中事务交易组指的是包括有具有依赖关系且存在执行顺序的至少两笔事务交易的一个组合。
73.举例说明,例如承接前述示例,事务交易a—》c与事务交易c—》b这两笔事务交易中,都涉及到交易账户c,且两笔事务交易的执行顺序是事务交易a—》c先于事务交易c—》b执行,因此,事务交易组k={(a—》c),(c—》b)}。可以理解的是,事务交易组k中包括的事务交易的数量为至少两个,例如还可以是事务交易组k={(a—》c),(c—》b),(b—》d)},或者事务交易组k={(a—》c),(c—》b),(b—》d)
……
},在实际应用中,可以根据具体应用场景进行灵活调整。
74.在本技术的一个实施例中,步骤s401中获取待执行的事务交易组的过程,可以包括以下步骤:
75.发送待执行事务交易组的获取请求,以使业务方基于获取请求返回待执行的事务交易组;或者,
76.接收业务方发送的待执行的事务交易组。
77.也即,可选实施例中事务交易处理方获取到的待执行的事务交易组,可以是业务方基于事务交易处理方发送的用于获取待执行的事务交易组的请求时被动发送的,也可以是业务方主动发送的。
78.这样,通过实施可选实施例,事务交易处理方可以主动触发业务方发送待执行的事务交易组,也可以是业务方主动发送待执行的事务交易组,灵活性更高,可以适用于更加广泛的应用场景。
79.基于图4所示实施例的技术方案,在本技术的一个实施例中,请参阅图5,步骤s401中获取待执行的事务交易组的过程,可以包括步骤s501至步骤s503,详细介绍如下:
80.步骤s501,接收业务方发送的待执行的事务交易组以及针对待执行的事务交易组
的第二签名数据;其中,第二签名数据是业务方基于自身的私钥对待执行的事务交易组进行签名得到;
81.步骤s502,若基于业务方自身的公钥对第二签名数据验证成功,则封装待执行的事务交易组以及第二签名数据,生成提交凭证;
82.步骤s503,基于事务交易处理方的私钥对提交凭证进行签名,并将签名后的提交凭证发送至业务方。
83.也即,可选实施例中事务交易处理方接收到业务方发送的待执行的事务交易组以及针对待执行的事务交易组的第二签名数据,之后可以基于业务方自身的公钥对第二签名数据进行验证。其中,如果基于业务方自身的公钥对第二签名数据验证成功,则表征对业务方验证通过,此时可以封装待执行的事务交易组以及第二签名数据,生成提交凭证,并再基于事务交易处理方自身的私钥对提交凭证进行签名,以及将签名后的提交凭证发送至业务方;如果基于业务方自身的公钥对第二签名数据未验证成功,则表征对业务方验证未通过,此时可以不做处理。
84.其中,可选实施例中业务方的公钥是与业务方的私钥相匹配,其可以预先发送给事务交易处理方,以便事务交易处理方基于业务方的公钥对业务方进行验证。同样地,事务交易处理方的公钥是与事务交易处理方的私钥相匹配,其可以预先发送给业务方,以便业务方基于事务交易处理方的公钥对事务交易处理方进行验证。
85.其中,可选实施例中事务交易处理方向业务方发送的签名后的提交凭证是用于告知业务方其已经接收到待执行的事务交易组,并对业务方的签名验证成功,以及事务交易处理方自身也进行了签名,这样业务方就可以根据事务交易处理方发送的签名后的提交凭证进行事务交易处理方的验证,即各方都需要对对方进行验证。
86.这样,通过实施可选实施例,事务交易处理方将签名后的提交凭证发送至业务方,一方面业务方可以获知事务交易处理方对交易事务组的获取情况,另一方面,也可以对事务交易处理方进行验证,提升了区块链上事务交易数据的安全性。
87.基于图5所示实施例的技术方案,在本技术的一个实施例中,请参阅图6,在步骤s501中接收业务方发送的待执行的事务交易组以及针对待执行的事务交易组的第二签名数据的过程之后,还可以包括步骤s601至步骤s603,详细介绍如下:
88.步骤s601,确定待执行的事务交易组的标识信息;
89.步骤s602,将标识信息与待执行的事务交易组进行关联存储;
90.步骤s603,若将待执行的事务交易组发送至区块链网络的过程中检测到发送失败,则获取与待执行的事务交易组的标识信息相匹配的待执行的事务交易组进行重新发送。
91.也即,可选实施例中事务交易处理方在接收到业务方发送的待执行的事务交易组时,可以首先确定待执行的事务交易组的标识信息,并将标识信息与待执行的事务交易组进行关联存储,这样后续在将待执行的事务交易组发送至区块链网络的过程中检测到发送失败时,就可以获取与待执行的事务交易组的标识信息相匹配的待执行的事务交易组进行重新发送。
92.其中,可以理解的是,事务交易处理方可以接收多个业务方分别发送的待执行的事务交易组;因而为了便于管理,可选实施例中事务交易处理方可以在接收到业务方发送
的待执行的事务交易组时,就确定待执行的事务交易组的标识信息。其中,待执行的事务交易组的标识信息是用于唯一表征事务交易组的信息,其包括但不限于序列号、名称等。
93.其中,可以理解的是,由于网络等各种问题,可能会导致事务交易处理方将待执行的事务交易组发送至区块链网络的过程中发送失败;因而为了避免发送失败而导致的事务交易组的执行失败,可选实施例中事务交易处理方还将标识信息与待执行的事务交易组进行关联存储,这样一旦检测到将待执行的事务交易组发送至区块链网络失败时,则此时可以基于待执行的事务交易组的标识信息,从预先关联存储中获取到与待执行的事务交易组的标识信息相匹配的待执行的事务交易组进行重新发送。
94.这样,通过实施可选实施例,一方面通过确定待执行的事务交易组的标识信息,便于管理待执行的事务交易组,另一方面通过待执行的事务交易组的标识信息与待执行的事务交易组的关联存储,提升了待执行的事务交易组的发送成功率,从而保证待执行的事务交易组能够正常执行。
95.步骤s402,将事务交易组发送至区块链网络,以使区块链网络基于至少两笔事务交易之间的执行顺序执行至少两笔事务交易,并返回至少两笔事务交易的执行结果。
96.本技术实施例中事务交易处理方获取到待执行的事务交易组,之后可以将事务交易组发送至区块链网络,这样区块链网络就可以基于至少两笔事务交易之间的执行顺序执行至少两笔事务交易,并返回至少两笔事务交易的执行结果至事务交易处理方。
97.步骤s403,若根据执行结果确定事务交易组中存在执行失败的事务交易,则生成执行成功的事务交易对应的回滚事务交易。
98.本技术实施例中事务交易处理方接收到区块链网络返回的至少两笔事务交易的执行结果,之后可以根据执行结果确定事务交易组中是否存在执行失败的事务交易。其中,如果根据执行结果确定事务交易组中存在执行失败的事务交易,则可以生成执行成功的事务交易对应的回滚事务交易,如果根据执行结果确定事务交易组中未存在执行失败的事务交易,则可以不做处理。
99.本技术实施例中回滚事务交易指的是与事务交易中资源数据转移方向相反的事务交易。
100.举例说明,例如事务交易a—》c对应的回滚事务交易为c—》a,其中,事务交易a—》c表征交易账户a中的资源数据转移至交易账户c中,而回滚事务交易c—》a则表征交易账户c中的资源数据转移至交易账户a中。
101.基于图4所示实施例的技术方案,在本技术的一个实施例中,请参阅图7,步骤s403中生成执行成功的事务交易对应的回滚事务交易的过程,可以包括步骤s701,详细介绍如下:
102.步骤s701,根据执行成功的事务交易中含有的用于指示资源数据从第一交易账户转移至第二交易账户的信息,生成资源数据从第二交易账户转移至第一交易账户的回滚事务交易。
103.也即,可选实施例中事务交易处理方是获取执行成功的事务交易中含有的用于指示资源数据从第一交易账户转移至第二交易账户的信息,进而基于该用于指示资源数据从第一交易账户转移至第二交易账户的信息,生成资源数据从第二交易账户转移至第一交易账户的回滚事务交易。
104.这样,通过实施可选实施例,利用执行成功的事务交易中含有的用于指示资源数据从第一交易账户转移至第二交易账户的信息,即可快速准确地生成执行成功的事务交易对应的回滚事务交易。
105.本技术实施例中事务交易处理方根据执行结果确定事务交易组中存在执行失败的事务交易,则生成执行成功的事务交易对应的回滚事务交易;其中,回滚事务交易的数量是与事务交易组中执行成功的事务交易的数量相匹配。
106.举例说明,例如事务交易组k={(a—》c),(c—》b),(b—》d)},设区块链网络在执行事务交易b—》d时执行失败了,即事务交易a—》c以及c—》b都是执行成功的事务交易,那么事务交易处理方可以确定事务交易组中存在执行失败的事务交易b—》d,此时生成事务交易组中执行成功的事务交易a—》c对应的回滚事务交易c—》a以及c—》b对应的回滚事务交易b—》c,其中生成回滚事务交易的过程请参见前述实施例的介绍。
107.基于图7所示实施例的技术方案,在本技术的一个实施例中,请参阅图8,步骤s701中根据执行成功的事务交易中含有的用于指示资源数据从第一交易账户转移至第二交易账户的信息,生成资源数据从第二交易账户转移至第一交易账户的回滚事务交易的过程,可以包括步骤s801至步骤s802,详细介绍如下:
108.步骤s801,检测执行失败的事务交易是否是事务交易组中最先执行的事务交易;
109.步骤s802,若否,则根据执行成功的事务交易中含有的用于指示资源数据从第一交易账户转移至第二交易账户的信息,生成资源数据从第二交易账户转移至第一交易账户的回滚事务交易。
110.也即,可选实施例中事务交易处理方可以首先检测执行失败的事务交易是否是事务交易组中最先执行的事务交易。其中,如果检测到执行失败的事务交易不是事务交易组中最先执行的事务交易,则可以根据执行成功的事务交易中含有的用于指示资源数据从第一交易账户转移至第二交易账户的信息,生成资源数据从第二交易账户转移至第一交易账户的回滚事务交易;如果检测到执行失败的事务交易是事务交易组中最先执行的事务交易,则可以不做处理。
111.举例说明,例如事务交易组k={(a—》c),(c—》b),(b—》d)},那么事务交易处理方在接收到事务交易组的执行结果(包括任一笔事务交易的执行结果)时,则需要检测执行失败的事务交易是否是事务交易组中最先执行的事务交易a—》c。设检测到执行失败的事务交易为b—》d,此时生成的是事务交易组中执行成功的事务交易a—》c对应的回滚事务交易c—》a以及c—》b对应的回滚事务交易b—》c。设检测到执行失败的事务交易为a—》c,此时则可以不做处理。
112.其中,可选实施例中事务交易组中最先执行的事务交易即为事务交易组中的第一笔事务交易。可以理解的是,如果是事务交易组中最先执行的事务交易执行失败,其并不会影响最终事务交易的错误,即资源数据并未发生变化,此时可以不用生成其对应的回滚事务交易;而如果不是最先执行的事务交易执行失败,其就会影响最终事务交易的错误,即资源数据发生了变化,此时就需要生成其对应的回滚事务交易,并发送至区块链网络执行回滚事务交易,以使发生变化的资源数据转移至最初所在交易账户,从而保证了资源数据的安全性。
113.举例说明,例如承接前述示例,如果是第一笔事务交易a—》c执行失败,那么资源
数据仍位于交易账户a中,而如果不是第一笔事务交易如第二笔事务交易c—》b执行失败,那么资源数据则会位于交易账户c中,此时则需要生成事务交易a—》c对应的回滚事务交易c—》a,以将位于交易账户c中的资源数据又转回至交易账户a中,从而回到了交易账户a中最初的状态,保证了资源数据的安全性。
114.这样,通过实施可选实施例,当检测到执行失败的事务交易不是事务交易组中最先执行的事务交易,则生成执行成功的事务交易对应的回滚事务交易,能够在一定程度上节省系统资源,避免了一遇到执行失败的事务交易则生成执行成功的事务交易对应的回滚事务交易的现象,且灵活性更高,更加符合应用场景需求。
115.基于图4所示实施例的技术方案,在本技术的一个实施例中,请参阅图9,步骤s403中生成执行成功的事务交易对应的回滚事务交易的过程,可以包括步骤s901至步骤s902,详细介绍如下:
116.步骤s901,获取第一接口的地址信息;其中,第一接口用于生成回滚事务交易;
117.步骤s902,基于第一接口的地址信息调用第一接口,以通过第一接口生成执行成功的事务交易对应的回滚事务交易。
118.也即,可选实施例中事务交易处理方生成执行成功的事务交易对应的回滚事务交易,具体可以是通过获取第一接口的地址信息,之后就可以基于第一接口的地址信息调用第一接口,以通过第一接口生成执行成功的事务交易对应的回滚事务交易。
119.其中,可选实施例中第一接口是用于生成回滚事务交易,其可以是由业务方或者业务方所信赖的第三方权威机构等提供。第一接口的地址信息是用于表征第一接口唯一地址的信息,通过第一接口的地址信息即可调用第一接口。
120.这样,通过实施可选实施例,利用第一接口的地址信息调用第一接口,即可实现简便快捷地生成执行成功的事务交易对应的回滚事务交易。
121.步骤s404,将回滚事务交易发送至区块链网络,以使区块链网络基于与执行顺序相反的顺序执行回滚事务交易。
122.本技术实施例中事务交易处理方根据执行结果确定事务交易组中存在执行失败的事务交易时,生成执行成功的事务交易对应的回滚事务交易,之后可以将回滚事务交易发送至区块链网络,这样区块链网络就可以基于与至少两笔事务交易之间的执行顺序相反的顺序执行回滚事务交易。
123.基于图4所示实施例的技术方案,在本技术的一个实施例中,请参阅图10,回滚事务交易为至少两笔回滚事务交易时,步骤s404中将回滚事务交易发送至区块链网络的过程,可以包括步骤s1001至步骤s1002,详细介绍如下:
124.步骤s1001,根据执行成功的事务交易的执行顺序,将与执行顺序相反的顺序作为至少两笔回滚事务交易之间的执行顺序;
125.步骤s1002,将至少两笔回滚事务交易发送至区块链网络,以使区块链网络基于至少两笔回滚事务交易之间的执行顺序执行回滚事务交易。
126.也即,可选实施例中如果生成的回滚事务交易有至少两笔,那么至少两笔回滚事务交易之间的执行顺序的确定方式具体可以是,根据执行成功的事务交易的执行顺序,将与执行顺序相反的顺序作为至少两笔回滚事务交易之间的执行顺序,之后将至少两笔回滚事务交易发送至区块链网络,这样区块链网络就可以基于至少两笔回滚事务交易之间的执
行顺序执行回滚事务交易。
127.举例说明,例如事务交易组k={(a—》c),(c—》b),(b—》d)},设检测到执行失败的事务交易为b—》d,则生成的是事务交易组中执行成功的事务交易a—》c对应的回滚事务交易c—》a以及c—》b对应的回滚事务交易b—》c。由于事务交易a—》c与事务交易c—》b之间的执行顺序是先执行事务交易a—》c,后执行事务交易c—》b,那么确定出的回滚事务交易c—》a与回滚事务交易b—》c之间的执行顺序则与之相反,是先执行回滚事务交易b—》c,后执行回滚事务交易c—》a。相应地,区块链网络接收到回滚事务交易c—》a与回滚事务交易b—》c时,则是先执行回滚事务交易b—》c,后执行回滚事务交易c—》a。
128.这样,通过实施可选实施例,当生成至少两笔回滚事务交易时,区块链网络能够基于至少两笔回滚事务交易之间的执行顺序执行回滚事务交易,保证了回滚事务交易的正常执行,避免了由于回滚事务交易有至少两笔时,执行顺序错误所导致的资源数据安全性低的现象。
129.基于图4所示实施例的技术方案,在本技术的一个实施例中,请参阅图11,步骤s404中将回滚事务交易发送至区块链网络的过程,可以包括步骤s1101至步骤s1102,详细介绍如下:
130.步骤s1101,基于事务交易处理方的私钥对回滚事务交易进行签名,生成签名后的回滚事务交易,并将签名后的回滚事务交易发送至业务方,以使业务方基于自身的私钥对验证成功后的回滚事务交易进行签名;
131.步骤s1102,若接收到业务方发送的针对验证成功后的回滚交易事务的第一签名数据,则将回滚事务交易发送至区块链网络。
132.也即,可选实施例中事务交易处理方可以用自身的私钥对回滚事务交易进行签名,生成签名后的回滚事务交易,并将签名后的回滚事务交易发送至业务方,这样业务方可以在对事务交易处理方的签名验证成功之后,再用其自身的私钥对验证成功后的回滚事务交易进行签名。其中,如果接收到业务方发送的针对验证成功后的回滚交易事务的第一签名数据,则表征此时回滚交易事务是经过业务方确认或者验证过没问题的,此时事务交易处理方可以将回滚事务交易发送至区块链网络;如果没有接收到业务方发送的针对验证成功后的回滚交易事务的第一签名数据,则表征此时回滚交易事务还没有经过业务方确认或者验证过存在问题的,此时事务交易处理方可以不做处理。
133.这样,通过实施可选实施例,事务交易处理方以及业务方都利用私钥对回滚事务交易进行签名,之后才将回滚事务交易发送至区块链网络,保留双方的签名数据,以便后续出现相应问题时可以根据签名数据予以追认责任方或者定位责任方等。
134.基于图11所示实施例的技术方案,在本技术的一个实施例中,请参阅图12,步骤s1102中将回滚事务交易发送至区块链网络的过程,可以包括步骤s1201至步骤s1203,详细介绍如下:
135.步骤s1201,获取第二接口的地址信息;其中,第二接口用于对签名后的回滚事务交易进行验证;
136.步骤s1202,基于第二接口的地址信息调用第二接口,以通过第二接口基于事务交易处理方的公钥对签名后的回滚事务交易进行验证;
137.步骤s1203,将验证后的回滚事务交易发送至业务方。
138.也即,可选实施例中事务交易处理方将回滚事务交易发送至区块链网络,具体可以是通过获取第二接口的地址信息,之后就可以基于第二接口的地址信息调用第二接口,以通过第二接口基于事务交易处理方的公钥对签名后的回滚事务交易进行验证,之后再将验证后的回滚事务交易发送至业务方。
139.其中,可选实施例中第二接口是用于对签名后的回滚事务交易进行验证,其同样可以是由业务方或者业务方所信赖的第三方权威机构等提供。第二接口的地址信息是用于表征第二接口唯一地址的信息,通过第二接口的地址信息即可调用第二接口。
140.这样,通过实施可选实施例,利用第二接口的地址信息调用第二接口,即可实现简便快捷地对签名后的回滚事务交易进行验证。
141.本技术实施例中事务交易处理方根据执行结果确定事务交易组中存在执行失败的事务交易时,生成执行成功的事务交易对应的回滚事务交易,以及将回滚事务交易发送至区块链网络,这样区块链网络就可以基于与至少两笔事务交易之间的执行顺序相反的执行顺序执行回滚事务交易,使得可以回到执行事务交易之前的状态,避免了相关技术中区块链网络中出现不准确的事务交易数据的现象,提高了区块链网络的安全性和稳定性。
142.图4至图12所示实施例是从事务交易处理方的角度进行的阐述,以下结合图13至图15从区块链网络的角度对本技术实施例的技术方案的实现细节进行详细阐述:
143.请参阅图13,图13是本技术的一个实施例示出的方法的流程图,该基于区块链的事务交易处理方法可以由图3中所示的区块链网络303来执行。如图13所示,基于区块链的事务交易处理方法至少包括步骤s1301至步骤s1304,详细介绍如下:
144.步骤s1301,接收事务交易处理方发送的待执行的事务交易组;其中,待执行的事务交易组包括具有依赖关系的至少两笔事务交易,且至少两笔事务交易之间存在执行顺序。
145.本技术实施例中区块链网络可以接收事务交易处理方发送的待执行的事务交易组,其中事务交易组的相关内容请参照前述实施例的介绍。
146.步骤s1302,基于至少两笔事务交易之间的执行顺序执行至少两笔事务交易,并将至少两笔事务交易的执行结果发送至事务交易处理方。
147.本技术实施例中区块链网络接收到事务交易处理方发送的待执行的事务交易组,之后可以基于至少两笔事务交易之间的执行顺序执行至少两笔事务交易,并将至少两笔事务交易的执行结果发送至事务交易处理方,这样事务交易处理方就可以基于执行结果确定事务交易组中是否存在执行失败的事务交易,并在确定事务交易组中存在执行失败的事务交易时,生成执行成功的事务交易对应的回滚事务交易。
148.基于图13所示实施例的技术方案,在本技术的一个实施例中,请参阅图14,步骤s1302中基于至少两笔事务交易之间的执行顺序执行至少两笔事务交易的过程,可以包括步骤s1401至步骤s1402,详细介绍如下:
149.步骤s1401,在基于执行顺序执行一笔事务交易时,将由第一交易账户转移至第二交易账户的资源数据进行锁定,并基于预设资源数据的转移关系确定锁定后的资源数据的转移方向;
150.步骤s1402,若转移方向与所执行的事务交易的下一笔事务交易的转移方向相匹配,则对资源数据进行解锁,以执行下一笔事务交易。
151.也即,可选实施例中区块链网络在基于执行顺序执行一笔事务交易时,将由第一交易账户转移至第二交易账户的资源数据进行锁定,并基于预设资源数据的转移关系确定锁定后的资源数据的转移方向。其中,如果转移方向与所执行的事务交易的下一笔事务交易的转移方向相匹配,则表征下一笔事务交易是正确的,此时可以对资源数据进行解锁,以执行下一笔事务交易;如果转移方向与所执行的事务交易的下一笔事务交易的转移方向不匹配,则表征下一笔事务交易是错误的,此时不做处理,即保持资源数据的锁定。
152.其中,可选实施例中预设资源数据的转移关系通常为业务方预先设定,可以是业务方将预设资源数据的转移关系先发送至事务交易处理方,再由事务交易处理方转发至区块链网络,也可以是业务方直接将预设资源数据的转移关系发送至区块链网络等。
153.举例说明,例如事务交易组k={(a—》c),(c—》b),(b—》d)},基于执行顺序首先执行事务交易a—》c,本示例以执行事务交易a—》c为例(其他事务交易的执行过程类推即可),将由交易账户a转移至交易账户c的资源数据进行锁定,此时锁定的资源数据虽然已经转移至交易账户c中,但是无法任意转移/使用,需要基于预设资源数据的转移关系确定锁定后的资源数据的转移方向。
154.设基于预设资源数据的转移关系确定锁定后的资源数据的转移方向为由交易账户c转移至交易账户b,明显地,该确定出的转移方向与所执行的事务交易a—》c的下一笔事务交易c—》b的转移方向相匹配,那么此时可以对资源数据进行解锁,从而将资源数据由交易账户c转移至交易账户b。
155.设基于预设资源数据的转移关系确定锁定后的资源数据的转移方向为由交易账户c转移至交易账户e,明显地,该确定出的转移方向与所执行的事务交易a—》c的下一笔事务交易c—》b的转移方向不匹配,那么此时保持对资源数据的锁定。
156.这样,通过实施可选实施例,执行每一笔事务交易时,采用资源数据锁定的方式保证了资源数据的安全性,从而进一步提升了区块链上事务交易数据的准确性。
157.基于图13所示实施例的技术方案,在本技术的一个实施例中,请参阅图15,步骤s1302中基于至少两笔事务交易之间的执行顺序执行至少两笔事务交易,并将至少两笔事务交易的执行结果发送至事务交易处理方的过程,可以包括步骤s1501至步骤s1502,详细介绍如下:
158.步骤s1501,若基于执行顺序执行至少两笔事务交易的过程中检测到存在事务交易执行失败,则生成执行失败的事务交易对应的执行失败结果,并将执行失败结果作为事务交易组的执行失败结果,以及将执行失败结果发送至事务交易处理方。
159.步骤s1502,若基于执行顺序执行至少两笔事务交易的过程中检测到至少两笔事务交易均执行成功,则生成事务交易组对应的执行成功结果,将执行成功结果发送至事务交易处理方。
160.其中,可选实施例中区块链网络如果基于执行顺序执行至少两笔事务交易的过程中检测到存在事务交易执行失败,则可以生成执行失败的事务交易对应的执行失败结果,并将执行失败结果作为事务交易组的执行失败结果,以及将执行失败结果发送至事务交易处理方。可以理解的是,只要事务交易组中有一笔事务交易执行失败则生成该执行失败的事务交易的执行失败结果,且不再执行该执行失败的事务交易的下一笔的事务交易,此时执行失败的事务交易的执行失败结果即可作为事务交易组的执行失败结果。
161.其中,可选实施例中区块链网络如果基于执行顺序执行至少两笔事务交易的过程中检测到至少两笔事务交易均执行成功,则生成事务交易组对应的执行成功结果,以及将执行成功结果发送至事务交易处理方。可以理解的是,事务交易组中每一笔事务交易均执行成功,此时可以生成每一笔事务交易的执行成功结果,也可以生成事务交易组的执行成功结果。
162.这样,通过实施可选实施例,区块链网络生成事务交易组的执行结果,并返回给事务交易处理方,从而事务交易处理方可以获知事务交易组的具体执行情况,以便在确定事务交易组中存在执行失败的事务交易时,生成执行成功的事务交易对应的回滚事务交易。
163.步骤s1303,接收事务交易处理方发送的回滚事务交易;其中,回滚事务交易是事务交易处理方在根据执行结果确定事务交易组中存在执行失败的事务交易时,基于执行成功的事务交易所生成并发送的。
164.本技术实施例中区块链网络还可以接收事务交易处理方发送的回滚事务交易,其中回滚事务交易的相关内容请参照前述实施例的介绍。
165.步骤s1304,基于与执行顺序相反的顺序执行回滚事务交易。
166.本技术实施例中区块链网络接收到事务交易处理方发送的回滚事务交易,之后可以基于与执行顺序相反的顺序执行回滚事务交易,可以使得发生变化的资源数据转移至最初所在交易账户,从而保证了资源数据的安全性。
167.本技术实施例中区块链网络可以基于与至少两笔事务交易之间的执行顺序相反的执行顺序执行回滚事务交易,使得可以回到执行事务交易之前的状态,避免了相关技术中区块链网络中出现不准确的事务交易数据的现象,提高了区块链网络的安全性和稳定性。
168.以上分别从事务交易处理方和区块链网络的角度对本技术实施例的技术方案进行了阐述,以下基于图3所示的实施环境对本技术实施例的一个具体应用场景进行详细说明:
169.首先,介绍事务交易组的成功执行过程。
170.请参阅图16,图16是本技术的一个实施例示出的方法的流程图。如图16所示,基于区块链的事务交易处理方法至少包括步骤s1601至步骤s1604,详细介绍如下:
171.步骤s1601,业务方发送待执行的事务交易组以及针对待执行的事务交易组的签名数据至事务交易处理方。
172.可选地,事务交易组包括具有依赖关系的至少两笔事务交易,且至少两笔事务交易之间存在执行顺序。
173.可选地,业务方在发送待执行的事务交易组以及针对待执行的事务交易组的签名数据的同时/之后/之前,还可以发送待提交区块链网络的标识信息、第一接口的地址信息以及第二接口的地址信息。其中,待提交区块链网络的标识信息是用于确定对待执行的事务交易组执行的区块链网络,即业务方指定了与该待提交区块链网络的标识信息相匹配的区块链网络执行待执行的事务交易组;第一接口是用于生成回滚事务交易;第二接口是用于对签名后的回滚事务交易进行验证。
174.步骤s1602,事务交易处理方基于业务方自身的公钥对签名数据验证成功,则封装待执行的事务交易组以及业务方的签名数据,生成提交凭证,并基于事务交易处理方的私
钥对提交凭证进行签名,以及将签名后的提交凭证返回至业务方。
175.可选地,事务交易处理方接收到业务方发送的针对待执行的事务交易组的签名数据,则基于业务方自身的公钥对业务方的签名数据进行验证,如果验证成功,可以封装待执行的事务交易组以及业务方的签名数据,生成提交凭证。
176.可选地,事务交易处理方接收到业务方发送的针对待执行的事务交易组的签名数据,则基于业务方自身的公钥对业务方的签名数据进行验证,如果验证成功,则确定待执行的事务交易组的标识信息,并将标识信息与待执行的事务交易组进行关联存储(可以存储在本地或云端),同时封装待执行的事务交易组的标识信息、待执行的事务交易组以及签名数据,生成提交凭证。
177.可选地,事务交易处理方可以将提交凭证以及签名后的提交凭证共同返回至业务方。
178.步骤s1603,事务交易处理方基于至少两笔事务交易之间的执行顺序依次发送事务交易至区块链网络。
179.可选地,事务交易处理方发送一笔事务交易至区块链网络,相应地,区块链网络执行该接收到的事务交易,并返回事务交易的执行结果至事务交易处理方。其中,当接收到的执行结果为执行成功时,才发送下一笔事务交易至区块链网络。
180.步骤s1604,若事务交易处理方根据执行结果确定事务交易组中不存在执行失败的事务交易,则封装提交凭证与执行成功结果,生成执行成功凭证,并基于事务交易处理方的私钥对执行凭证进行签名后存储。
181.可选地,若事务交易处理方根据执行结果确定事务交易组中不存在执行失败的事务交易,则封装执行成功结果,生成执行成功凭证,并基于事务交易处理方的私钥对执行成功凭证进行签名后存储,从而便于后期业务方的查询。
182.其次,介绍事务交易组的失败执行过程。
183.基于图16所示实施例的技术方案,请参阅图17,图17是本技术的一个实施例示出的方法的流程图。如图17所示,基于区块链的事务交易处理方法至少包括步骤s1701至步骤s1706,详细介绍如下:
184.步骤s1701,业务方发送待执行的事务交易组以及针对待执行的事务交易组的签名数据至事务交易处理方。
185.步骤s1702,事务交易处理方基于业务方自身的公钥对签名数据验证成功,则封装待执行的事务交易组以及业务方的签名数据,生成提交凭证,并基于事务交易处理方的私钥对提交凭证进行签名,以及将签名后的提交凭证返回至业务方。
186.步骤s1703,事务交易处理方基于至少两笔事务交易之间的执行顺序依次发送事务交易至区块链网络。
187.可选地,步骤s1701至步骤s1703的具体实施过程请参见前述图16所示实施例的技术方案。
188.步骤s1704,若事务交易处理方根据执行结果确定事务交易组中存在执行失败的事务交易,则生成执行成功的事务交易对应的回滚事务交易。
189.可选地,事务交易组k=(1,2,
……
,n-2,n-1,n),其中当遇到第n笔事务交易执行失败,则会按照事务交易之间的执行顺序的相反顺序(即逆序)生成执行成功的事务交易对
应的回滚事务交易,即生成的回滚事务交易k’=(n-1,n-2,
……
,2,1)。
190.可选地,生成执行成功的事务交易对应的回滚事务交易可以包括:基于第一接口的地址信息调用第一接口,以通过第一接口生成执行成功的事务交易对应的回滚事务交易。
191.其中,如果调用第一接口失败,则可以重复调用预设次数。可以理解的是,如果重复调用预设次数均失败,则可以生成回滚失败凭证,并追加至执行失败凭证中。其中,如果调用第一接口成功,则可以实现回滚事务交易的生成。
192.可选地,可以封装提交凭证与执行失败结果,生成执行失败凭证。
193.可选地,可以记录当前失败的交易索引和失败原因,以便于后期业务方的查询。
194.步骤s1705,基于事务交易处理方的私钥对回滚事务交易进行签名,生成签名后的回滚事务交易,并将签名后的回滚事务交易发送至业务方。
195.可选地,将签名后的回滚事务交易发送至业务方可以包括:基于第二接口的地址信息调用第二接口,以通过第二接口基于事务交易处理方的公钥对签名后的回滚事务交易进行验证,并将验证后的回滚事务交易发送至业务方。可选地,可以将该签名后的回滚事务交易以及执行失败凭证作为参数,基于第二接口的地址信息调用第二接口。
196.其中,如果调用第二接口失败,则可以重复调用预设次数。可以理解的是,如果重复调用预设次数均失败,则可以生成回滚失败凭证,并追加至执行失败凭证中。其中,如果调用第二接口成功,则可以实现对事务交易处理方签名后的回滚事务交易的验证。
197.可选地,业务方基于自身的私钥对验证成功后的回滚事务交易进行签名,并返回签名后的回滚事务交易至事务交易处理方。
198.步骤s1706,将回滚事务交易发送至区块链网络。
199.可选地,事务交易处理方发送一笔回滚事务交易至区块链网络,相应地,区块链网络执行该接收到的回滚事务交易,并返回回滚事务交易的执行结果至事务交易处理方。其中,事务交易处理方发送回滚事务交易至区块链网络是基于与事务交易之间的执行顺序相反的顺序,这样区块链网络是基于与事务交易之间的执行顺序相反的顺序执行回滚事务交易。
200.本技术实施例中事务交易处理方根据执行结果确定事务交易组中存在执行失败的事务交易时,生成执行成功的事务交易对应的回滚事务交易,以及将回滚事务交易发送至区块链网络,这样区块链网络就可以基于与至少两笔事务交易之间的执行顺序相反的执行顺序执行回滚事务交易,使得可以回到执行事务交易之前的状态,保证了资源数据的安全性,以及事务交易的正常执行,避免了相关技术中区块链网络中出现不准确的事务交易数据的现象,提高了区块链网络的安全性和稳定性。
201.图18是本技术的一个实施例示出的基于区块链的事务交易处理装置的框图。如图18所示,该基于区块链的事务交易处理装置配置于事务交易处理方中,该基于区块链的事务交易处理装置包括:
202.获取模块1801,配置为获取待执行的事务交易组;其中,事务交易组包括具有依赖关系的至少两笔事务交易,且至少两笔事务交易之间存在执行顺序;
203.第一发送模块1802,配置为将事务交易组发送至区块链网络,以使区块链网络基于至少两笔事务交易之间的执行顺序执行至少两笔事务交易,并返回至少两笔事务交易的
执行结果;
204.生成模块1803,配置为若根据执行结果确定事务交易组中存在执行失败的事务交易,则生成执行成功的事务交易对应的回滚事务交易;
205.第二发送模块1804,配置为将回滚事务交易发送至区块链网络,以使区块链网络基于与执行顺序相反的顺序执行回滚事务交易。
206.在本技术的一个实施例中,每笔事务交易包括资源数据从第一交易账户转移至第二交易账户中;生成模块1803包括:
207.第一生成单元,配置为根据执行成功的事务交易中含有的用于指示资源数据从第一交易账户转移至第二交易账户的信息,生成资源数据从第二交易账户转移至第一交易账户的回滚事务交易。
208.在本技术的一个实施例中,生成模块1803包括:
209.检测单元,配置为检测执行失败的事务交易是否是事务交易组中最先执行的事务交易;
210.第一生成单元,配置为若否,则根据执行成功的事务交易中含有的用于指示资源数据从第一交易账户转移至第二交易账户的信息,生成资源数据从第二交易账户转移至第一交易账户的回滚事务交易。
211.在本技术的一个实施例中,第二发送模块1804包括:
212.确定单元,配置为根据执行成功的事务交易的执行顺序,将与执行顺序相反的顺序作为至少两笔回滚事务交易之间的执行顺序;
213.第一发送单元,配置为将至少两笔回滚事务交易发送至区块链网络,以使区块链网络基于至少两笔回滚事务交易之间的执行顺序执行回滚事务交易。
214.在本技术的一个实施例中,生成模块1803包括:
215.第一获取单元,配置为获取第一接口的地址信息;其中,第一接口用于生成回滚事务交易;
216.第一调用单元,配置为基于第一接口的地址信息调用第一接口,以通过第一接口生成执行成功的事务交易对应的回滚事务交易。
217.在本技术的一个实施例中,第二发送模块1804包括:
218.签名单元,配置为基于事务交易处理方的私钥对回滚事务交易进行签名,生成签名后的回滚事务交易,并将签名后的回滚事务交易发送至业务方,以使业务方基于自身的私钥对验证成功后的回滚事务交易进行签名;
219.第二发送单元,配置为若接收到业务方发送的针对验证成功后的回滚交易事务的第一签名数据,则将回滚事务交易发送至区块链网络。
220.在本技术的一个实施例中,第二发送模块1804包括:
221.第二获取单元,配置为获取第二接口的地址信息;其中,第二接口用于对签名后的回滚事务交易进行验证;
222.第二调用单元,配置为基于第二接口的地址信息调用第二接口,以通过第二接口基于事务交易处理方的公钥对签名后的回滚事务交易进行验证;
223.第三发送单元,配置为将验证后的回滚事务交易发送至业务方。
224.在本技术的一个实施例中,获取模块1801包括:
225.接收单元,配置为接收业务方发送的待执行的事务交易组以及针对待执行的事务交易组的第二签名数据;其中,第二签名数据是业务方基于自身的私钥对待执行的事务交易组进行签名得到;
226.第二生成单元,配置为若基于业务方自身的公钥对第二签名数据验证成功,则封装待执行的事务交易组以及第二签名数据,生成提交凭证;
227.签名与发送单元,配置为基于事务交易处理方的私钥对提交凭证进行签名,并将签名后的提交凭证发送至业务方。
228.在本技术的一个实施例中,基于区块链的事务交易处理装置还包括:
229.确定模块,配置为确定待执行的事务交易组的标识信息;
230.存储模块,配置为将标识信息与待执行的事务交易组进行关联存储;
231.第三发送模块,配置为若将待执行的事务交易组发送至区块链网络的过程中检测到发送失败,则获取与待执行的事务交易组的标识信息相匹配的待执行的事务交易组进行重新发送。
232.图19是本技术的一个实施例示出的基于区块链的事务交易处理装置的框图。如图19所示,该基于区块链的事务交易处理装置配置于区块链网络中,该基于区块链的事务交易处理装置包括:
233.第一接收模块1901,配置为接收事务交易处理方发送的待执行的事务交易组;其中,待执行的事务交易组中包括具有依赖关系的至少两笔事务交易,且至少两笔事务交易之间存在执行顺序;
234.执行与发送模块1902,配置为基于至少两笔事务交易之间的执行顺序执行至少两笔事务交易,并将至少两笔事务交易的执行结果发送至事务交易处理方;
235.第二接收模块1903,配置为接收事务交易处理方发送的回滚事务交易;其中,回滚事务交易是事务交易处理方在根据执行结果确定事务交易组中存在执行失败的事务交易时,基于执行成功的事务交易所生成并发送的;
236.执行模块1904,配置为基于与执行顺序相反的顺序执行回滚事务交易。
237.在本技术的一个实施例中,每笔事务交易包括资源数据从第一交易账户转移至第二交易账户中;执行与发送模块1902包括:
238.锁定单元,配置为在基于执行顺序执行一笔事务交易时,将由第一交易账户转移至第二交易账户的资源数据进行锁定,并基于预设资源数据的转移关系确定锁定后的资源数据的转移方向;
239.解锁单元,配置为若转移方向与所执行的事务交易的下一笔事务交易的转移方向相匹配,则对资源数据进行解锁,以执行下一笔事务交易。
240.在本技术的一个实施例中,执行与发送模块1902包括:
241.第三生成单元,配置为若基于执行顺序执行至少两笔事务交易的过程中检测到存在事务交易执行失败,则生成执行失败的事务交易对应的执行失败结果,并将执行失败结果作为事务交易组的执行失败结果,以及将执行失败结果发送至事务交易处理方;
242.第四生成单元,配置为若基于执行顺序执行至少两笔事务交易的过程中检测到至少两笔事务交易均执行成功,则生成事务交易组对应的执行成功结果,将执行成功结果发送至事务交易处理方。
243.需要说明的是,前述实施例所提供的装置与前述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述。
244.本技术的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现如前的基于区块链的事务交易处理方法。
245.图20是适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
246.需要说明的是,图20示出的电子设备的计算机系统2000仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
247.如图20所示,计算机系统2000包括中央处理单元(central processing unit,cpu)2001,其可以根据存储在只读存储器(read-only memory,rom)2002中的程序或者从存储部分2008加载到随机访问存储器(random access memory,ram)2003中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在ram 2003中,还存储有系统操作所需的各种程序和数据。cpu 2001、rom 2002以及ram 2003通过总线2004彼此相连。输入/输出(input/output,i/o)接口2005也连接至总线2004。
248.以下部件连接至i/o接口2005:包括键盘、鼠标等的输入部分2006;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分2007;包括硬盘等的存储部分2008;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分2009。通信部分2009经由诸如因特网的网络执行通信处理。驱动器2010也根据需要连接至i/o接口2005。可拆卸介质2011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器2010上,以便于从其上读出的计算机程序根据需要被安装入存储部分2008。
249.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分2009从网络上被下载和安装,和/或从可拆卸介质2011被安装。在该计算机程序被中央处理单元(cpu)2001执行时,执行本技术的系统中限定的各种功能。
250.需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计
算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
251.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不相同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
252.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
253.本技术的另一方面还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的基于区块链的事务交易处理方法。该计算机可读介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
254.本技术的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读介质中。计算机设备的处理器从计算机可读介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的基于区块链的事务交易处理方法。
255.上述内容,仅为本技术的较佳示例性实施例,并非用于限制本技术的实施方案,本领域普通技术人员根据本技术的主要构思和精神,可以十分方便地进行相应的变通或修改,故本技术的保护范围应以权利要求书所要求的保护范围为准。