一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理的方法以及装置与流程

2023-01-14 14:02:21 来源:中国专利 TAG:


1.本技术涉及信息技术领域,并且更具体地,涉及一种数据处理的方法以及装置。


背景技术:

2.区块链是一种比较特殊的分布式数据库,没有中心点,信息存储在所有加入到区块链网络的节点当中。跨链技术是一种解决两个或多个不同区块链上的数字资产以及功能状态互相传递、转移和交换的协议。跨链交易技术可以实现区块链系统与区块链系统实现互联互通,提升可拓展性方面的重要手段。
3.在跨链交易的场景下,需要对相关跨链交易的数据进行上锁处理,以确保跨链交易的原子性。在相关的技术方案中,跨链交易的数据上锁依赖于智能合约的实现。由于智能合约是用户自己编写的,因此,加大了智能合约编写的工作量,效率低且适配性差,需要用户自己保证安全性。


技术实现要素:

4.本技术提供一种数据处理的方法以及装置,能够在实现跨链交易的原子性的同时,还可以提升智能合约编写的效率和跨链交易的安全性。
5.第一方面,提供了一种数据处理的方法,包括:在第一区块链系统和第二区块链系统之间执行跨链交易时,所述第一区块链系统的第一节点向所述第一节点的第一状态数据库中的目标表存储第一数据,所述目标表在所述第一状态数据库中不同于所述第一数据的状态表,所述第一数据为在所述第一区块链系统执行所述跨链交易所得的数据,所述第一数据用于在所述第二区块链系统执行所述跨链交易;对所述第一状态数据库的目标表中的所述第一数据进行上锁。
6.上述技术方案中,通过直接在状态数据库中对跨链交易的数据进行上锁,可以避免上锁过程对智能合约的依赖,加强了跨链智能合约的通用性。这样,在实现跨链交易的原子性的同时,还可以提升智能合约编写的效率和跨链交易的安全性。
7.结合第一方面,在第一方面的某些实现方式中,所述方法包括:所述第一节点调用所述状态数据库的上锁接口,对所述第一状态数据库的目标表中的所述第一数据上锁。
8.结合第一方面,在第一方面的某些实现方式中,所述目标表为可持久化存储的状态表。
9.结合第一方面,在第一方面的某些实现方式中,所述目标表中还存储有所述跨链交易的标识id。
10.结合第一方面,在第一方面的某些实现方式中,所述方法包括:在所述第一区块链系统和所述第二区块链系统之间成功执行所述跨链交易时,所述第一节点调用所述第一状态数据库的解锁接口,对所述第一状态数据库的目标表中的所述第一数据解锁。
11.结合第一方面,在第一方面的某些实现方式中,所述第一节点调用所述第一状态数据库的解锁接口,从所述第一状态数据库的目标表中删除所述第一数据。
12.结合第一方面,在第一方面的某些实现方式中,所述方法包括:在所述第一区块链系统和所述第二区块链系统之间执行跨链交易失败时,所述第一节点调用所述第一状态数据库的回滚接口,对所述第一状态数据库的目标表中的所述第一数据执行回滚操作。
13.结合第一方面,在第一方面的某些实现方式中,所述第一节点调用所述第一状态数据库的回滚接口,根据所述第一数据获得第二数据,将所述第二数据存储至所述第一状态数据库,并从所述第一状态数据库的目标表中删除所述第一数据,所述第二数据为在所述第一区块链系统执行所述跨链交易之前的数据。
14.第二方面,提供了一种数据处理的装置,所述装置应用于第一区块链系统的第一节点,所述装置包括:存储模块,上锁模块。其中,存储模块用于在第一区块链系统和第二区块链系统之间执行跨链交易时,向所述第一节点的第一状态数据库中的目标表存储第一数据,所述目标表在所述第一状态数据库中不同于所述第一数据的状态表,所述第一数据为在所述第一区块链系统执行所述跨链交易所得的数据,所述第一数据用于在所述第二区块链系统执行所述跨链交易;上锁模块用于对所述第一状态数据库的目标表中的所述第一数据进行上锁。
15.结合第二方面,在第二方面的某些实现方式中,所述上锁模块具体用于:调用所述状态数据库的上锁接口,对所述第一状态数据库的目标表中的所述第一数据上锁。
16.结合第二方面,在第二方面的某些实现方式中,所述目标表为可持久化存储的状态表。
17.结合第二方面,在第二方面的某些实现方式中,所述目标表中还存储有所述跨链交易的标识id。
18.结合第二方面,在第二方面的某些实现方式中,所述装置还包括:解锁模块,用于在所述第一区块链系统和所述第二区块链系统之间成功执行所述跨链交易时,调用所述第一状态数据库的解锁接口,对所述第一状态数据库的目标表中的所述第一数据解锁。
19.结合第二方面,在第二方面的某些实现方式中,所述解锁模块具体用于:调用所述第一状态数据库的解锁接口,从所述第一状态数据库的目标表中删除所述第一数据。
20.结合第二方面,在第二方面的某些实现方式中,所述装置还包括:回滚模块,用于在所述第一区块链系统和所述第二区块链系统之间执行跨链交易失败时,调用所述第一状态数据库的回滚接口,对所述第一状态数据库的目标表中的所述第一数据执行回滚操作。
21.结合第二方面,在第二方面的某些实现方式中,所述回滚模块具体用于:调用所述第一状态数据库的回滚接口,根据所述第一数据获得第二数据,将所述第二数据存储至所述第一状态数据库,并从所述第一状态数据库的目标表中删除所述第一数据,所述第二数据为在所述第一区块链系统执行所述跨链交易之前的数据。
22.第二方面和第二方面的任意一个可能的实现方式的有益效果和第一方面以及第一方面的任意一个可能的实现方式的有益效果是对应的,对此,不再赘述。
23.第三方面,提供了一种数据处理的装置,所述装置应用于第一区块链系统的第一节点,包括输入输出接口、处理器和存储器,其中所述处理器用于控制所述输入输出接口收发信息,所述存储器用于存储计算机程序,所述处理器用于从存储器中调用并运行该计算机程序,使得所述执行第一方面或第一方面任意一种可能的实现方式中所述的方法。
24.可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实
现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
25.第四方面,提供了一种芯片,该芯片获取指令并执行该指令来实现上述第一方面以及第一方面的任意一种实现方式中的方法。
26.可选地,作为一种实现方式,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行上述第一方面以及第一方面的任意一种实现方式中的方法。
27.可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,该处理器用于执行该存储器上存储的指令,当该指令被执行时,该处理器用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
28.第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面以及第一方面的任意一种实现方式中的方法。
29.第六方面,提供了一种计算机可读存储介质,包括指令;所述指令用于实现上述第一方面以及第一方面的任意一种实现方式中的方法。
30.作为示例,这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,rom)、可编程rom(programmable rom,prom)、可擦除的prom(erasable prom,eprom)、flash存储器、电eprom(electrically eprom,eeprom)以及硬盘驱动器(hard drive)。
31.可选地,作为一种实现方式,上述存储介质具体可以是非易失性存储介质。
附图说明
32.图1是本技术实施例提供的一种跨链交易的场景的示意性框图。
33.图2是本技术实施例提供的一种计算设备200的架构示意图。
34.图3是本技术实施例提供的一种数据处理的方法的示意性流程图。
35.图4是本技术实施例提供的一种第一区块链系统中的第一节点对目标表中的第一数据进行解锁的方法的示意性流程图。
36.图5是本技术实施例提供的一种第一区块链系统中的第一节点对目标表中的第一数据进行回滚的方法的示意性流程图。
37.图6是本技术实施例提供的一种数据处理的装置600的示意性框图。
具体实施方式
38.下面将结合附图,对本技术中的技术方案进行描述。
39.本技术将围绕包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
40.另外,在本技术实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案
更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
41.本技术实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
42.本技术实施例描述的网络架构以及业务场景是为了更加清楚地说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
43.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
44.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:包括单独存在a,同时存在a和b,以及单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
45.为了便于理解,下面先对本技术实施例可能涉及的相关术语和概念进行介绍。
46.1、区块链(block chain)
47.区块链技术是利用块链式数据结构来验证和存储数据,利用分布式节点共识算法来生成和更新数据,利用密码学的方式保证数据传输和访问的安全,利用由自动化脚本代码组成的智能合约来编程和操作数据的一种去中心化架构与计算范式。区块链是一种比较特殊的分布式数据库,没有中心点,信息存储在所有加入到区块链网络的节点当中。且存储在所有加入到区块链网络的节点中的信息是一致且同步的。如果有一两个节点坏了,信息也不会丢失,还可以在其他节点上查看到。节点可以是一台服务器,笔记本电脑,手机等。
48.2、跨链(inter block chain)
49.跨链技术是一种解决两个或多个不同区块链上的数字资产以及功能状态互相传递、转移和交换的协议。
50.自比特币发行以来,其底层结构区块链得到了广泛的关注。在多年的发展中,已经有一些比较成熟的区块链系统应用到各个领域,如司法、医疗、物流和政务等。然而,由于区块链系统多样且独立运行,一个单位的不同部门可能独立运行一套区块链系统。为了打通不同区块链系统之间的信息,跨链进行信息交换,如何执行区块链系统上的跨链交易成为重要的课题。下面结合图1,对应用于本技术实施例的一种跨链交易的场景进行详细描述。
51.图1是本技术实施例提供的一种跨链交易的场景的示意性框图。如图1所示,该场景中可以包括第一区块链系统110和第二区块链系统120,下面分别对上述两个区块链系统进行详细描述。
52.1、第一区块链系统110
53.第一区块链系统110中可以包括多个节点(例如节点111-节点114),该多个节点可以理解为第一区块链系统110中的多个服务器。第一区块链系统110中的每个节点均包括智能合约和状态数据库。其中,状态数据库是一种存储第一区块链系统110中数据最新状态的数据库。智能合约又称智能合同,是一种用计算机语言取代法律语言去记录条款的合约,智能合约是在区块链数据库上运行的计算机程序,可以在满足其源代码中写入的条件时自行执行。智能合约一旦编写好就可以被用户信赖,合约条款不能被改变,因此合约是不可更改的。智能合约的编写过程中,可以使用状态数据库提供的接口进行数据操作。
54.2、第二区块链系统120
55.第二区块链系统120与第一区块链系统110类似,也包括多个节点(例如节点121-节点124),该多个节点可以理解为第二区块链系统120中的多个服务器。具体的请参见第一区块链系统110中每个节点的描述,此处不再赘述。
56.跨链交易技术可以实现区块链系统与区块链系统实现互联互通,提升可拓展性方面的重要手段。其技术突破将有助于推动跨链资产转移/抵押、跨链数据共享、中心化资产交易平台、分布式应用(distributed application,dapp)的跨平台开发/部署/配置、跨链智能合约应用、垂直行业私有链价值交互等应用领域的发展。
57.以图1所示的场景为例,客户端将跨第一区块链系统110和第二区块链系统120之间的交易请求发送到第一区块链系统110中,该跨链交易经过第一区块链系统110的各个节点(例如节点111-节点114)的共识后,被各个节点(例如节点111-节点114)记录到各自的状态数据库中。也就是说,第一区块链系统110中的各个节点(例如节点111-节点114)可以将执行该跨链交易所得的数据存储至各自维护的状态数据库中。第一区块链系统110还可以将该跨链交易发送至第二区块链系统120中,以便于第二区块链系统120的各个节点(例如节点121-节点124)执行该跨链交易并存储该跨链交易所得的数据。
58.在跨链场景下,需要对相关跨链交易的数据进行上锁处理,以确保跨链交易的原子性。在相关的技术方案中,跨链交易的数据上锁依赖于智能合约的实现。也就是说,该相关的技术方案是通过节点中的智能合约实现跨链交易的数据上锁。由于智能合约是用户自己编写的,因此,加大了智能合约编写的工作量,效率低且适配性差,需要用户自己保证安全性。
59.有鉴于此,本技术提出一种数据处理的方法,可以在实现跨链交易的原子性的同时,还可以提升智能合约编写的效率和跨链交易的安全性。
60.本技术实施例提供的数据处理的方法可应用于计算设备,计算设备也可以被称为计算机系统,包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括处理单元、内存和内存控制单元等硬件,随后对该硬件的功能和结构进行详细说明。该操作系统是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,linux操作系统、unix操作系统、android操作系统、ios操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用程序。并且,可选地,该计算机系统是智能手机等手持设备,或个人计算机等终端设备,本技术并未特别限定,只要能够通过本技术实施例提供的方法即可。本技术实施例提供的数据处理的方法的执行主体可以是计算机系统,或者,是计算机系统中能够调用程序并执行程序的功能模
块。
61.下面结合图2,对本技术实施例提供的一种计算设备进行详细描述。
62.图2是本技术实施例提供的一种计算设备200的架构示意图。该计算设备200可以是服务器或者计算机或者其他具有计算能力的设备。图2所示的计算设备200包括:至少一个处理器210和内存220。
63.处理器210执行内存220中的指令,使得计算设备200实现本技术提供的数据处理的方法。或者,处理器210执行内存220中的指令,使得计算设备200实现本技术提供的各功能模块。
64.可选地,计算设备200还包括系统总线,其中,处理器210和内存220分别与系统总线连接。处理器210能够通过系统总线访问内存220,例如,处理器210能够通过系统总线在内存220中进行数据读写或代码执行。该系统总线是快捷外设部件互连标准(peripheral component interconnect express,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。所述系统总线分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
65.一种可能的实现方式,处理器210的功能主要是解释计算机程序的指令(或者说,代码)以及处理计算机软件中的数据。其中,该计算机程序的指令以及计算机软件中的数据能够保存在内存220或者缓存216中。
66.可选地,处理器210可能是集成电路芯片,具有信号的处理能力。作为示例而非限定,处理器210是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其中,通用处理器是微处理器等。例如,该处理器210是中央处理单元(central processing unit,cpu)。
67.可选地,每个处理器210包括至少一个处理单元212和内存控制单元214。
68.可选地,处理单元212也称为核心(core)或内核,是处理器最重要的组成部分。处理单元212是由单晶硅以一定的生产工艺制造出来的,处理器所有的计算、接受命令、存储命令、处理数据都由核心执行。处理单元分别独立地运行程序指令,利用并行计算的能力加快程序的运行速度。各种处理单元都具有固定的逻辑结构,例如,处理单元包括例如,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元。
69.一种实现举例,内存控制单元214用于控制内存220与处理单元212之间的数据交互。具体地说,内存控制单元214从处理单元212接收内存访问请求,并基于该内存访问请求控制针对内存的访问。作为示例而非限定,内存控制单元是内存管理单元(memory management unit,mmu)等器件。
70.一种实现举例,各内存控制单元214通过系统总线进行针对内存220的寻址。并且在系统总线中配置仲裁器(图中未示出),该仲裁器负责处理和协调多个处理单元212的竞争访问。
71.一种实现举例,处理单元212和内存控制单元214通过芯片内部的连接线,例如地址线,通信连接,从而实现处理单元212和内存控制单元214之间的通信。
72.可选地,每个处理器210还包括缓存216,其中,缓存是数据交换的缓冲区(称作
cache)。当处理单元212要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助处理单元212更快地运行。
73.内存(memory)220能够为计算设备200中的进程提供运行空间,例如,内存220中保存用于生成进程的计算机程序(具体地说,是程序的代码)。计算机程序被处理器运行而生成进程后,处理器在内存220中为该进程分配对应的存储空间。进一步的,上述存储空间进一步包括文本段、初始化数据段、位初始化数据段、栈段、堆段等等。内存220在上述进程对应的存储空间中保存进程运行期间产生的数据,例如,中间数据,或过程数据等等。
74.可选地,内存也称为内存储器,其作用是用于暂时存放处理器210中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,处理器210就会把需要运算的数据调到内存中进行运算,当运算完成后处理单元212再将结果传送出来。
75.作为示例而非限定,内存220是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。应注意,本文描述的系统和方法的内存220旨在包括但不限于这些和任意其它适合类型的存储器。
76.以上列举的计算设备200的结构仅为示例性说明,本技术并未限定于此,本技术实施例的计算设备200包括现有技术中计算机系统中的各种硬件,例如,计算设备200还包括除内存220以外的其他存储器,例如,磁盘存储器等。本领域的技术人员应当理解,计算设备200还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,上述计算设备200还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,上述计算设备200也可仅仅包括实现本技术实施例所必须的器件,而不必包括图2中所示的全部器件。
77.下面结合图3,对本技术实施例提供的数据处理的方法进行详细的介绍。该方法可以由图2所示的计算设备200执行,以实现本技术提供的数据处理的方法。
78.图3是本技术实施例提供的一种数据处理的方法的示意性流程图。如图3所示,该方法可以包括步骤310-320,下面分别对步骤310-320进行详细描述。
79.步骤310:在第一区块链系统和第二区块链系统之间执行跨链交易时,第一区块链系统的第一节点向第一节点的第一状态数据库中的目标表存储第一数据。
80.应理解,在第一区块链系统和第二区块链系统之间执行跨链交易时,第一区块链系统中的所有节点均需要在各自的状态数据库中的目标表中存储第一数据。第一节点是第一区块链系统中的一个节点,第一区块链系统中其他节点的操作与第一节点节点的操作相
同,为了便于描述,以第一区块链系统的第一节点为例,对本技术实施例提供的数据处理的方法进行说明。
81.上述第一数据为在第一区块链系统执行跨链交易所得的数据,第一数据用于在第二区块链系统执行跨链交易。上述目标表可以是在第一状态数据库中不同于第一数据的状态表,用于存储所述第一数据。作为示例,为了确保第一区块链系统的可靠性,目标表可使用可持久化存储的数据库实现,在第一区块链系统以外重启后,目标表中存储的数据(例如,第一数据)不会受到影响。
82.举例说明,以上述跨链交易为第一区块链系统中的a账户向第二区块链系统中的b账户转账1元,a账户在执行跨链交易之前的账户余额为10元为例。在第一区块链系统和第二区块链系统之间执行该跨链交易时,第一区块链系统中的第一节点向第一状态数据库中的目标表存储的第一数据为“a账户余额为9元”(a账户执行完该跨链交易的剩余金额为10元-1元=9元)。具体的,一种可能的实现方式中,第一节点可以调用第一状态数据库的写入接口,将“a账户余额为9元”的数据存储至该第一状态数据库中。第一节点还可以将该第一数据“a账户余额为9元”存储至第一状态数据库的目标表中。可选地,第一节点还可以将第二数据“a账户余额为10元”存储至第一状态数据库的目标表中,应理解,第二数据为上述跨链交易执行之前a账户的余额,这样,以便于该跨链交易失败后,可以根据第二数据,对第一状态数据库中存储的第一数据进行回滚操作,以保证交易操作的原子性。下面会结合具体的例子对回滚操作进行详细描述,此处不再赘述。应理解,第一区块链系统中的其他节点与第一节点的操作相同,具体的请参考第一节点的描述,此处不再赘述。
83.步骤320:第一节点对第一状态数据库的目标表中的第一数据进行上锁。
84.一个示例,第一节点可以调用第一状态数据库的上锁接口,对第一状态数据库中的目标表中的第一数据上锁。
85.上述技术方案中,通过直接在状态数据库中对跨链交易的数据进行上锁,可以避免上锁过程对智能合约的依赖,加强了跨链智能合约的通用性。这样,在实现跨链交易的原子性的同时,还可以提升智能合约编写的效率和跨链交易的安全性。
86.可选地,在一些实施例中,如果第一区块链系统和第二区块链系统之间成功执行上述跨链交易,例如,第二区块链系统向第一区块链系统反馈跨链交易成功执行的消息,第一区块链系统可以对在目标表中存储的第一数据进行解锁操作。
87.下面结合图4,第一区块链系统中的第一节点对目标表中的第一数据进行解锁操作的具体实现过程进行详细说明。应理解,图4的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图4的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。
88.图4是本技术实施例提供的一种第一区块链系统中的第一节点对目标表中的第一数据进行解锁的方法的示意性流程图。如图4所示,该方法可以包括步骤410-420,下面分别对步骤410-420进行详细描述。
89.步骤410:第一区块链系统中的第一节点确定第一数据存储在所述第一状态数据库的目标表中。
90.作为示例,第一区块链系统中的第一节点通过调用第一状态数据库的解锁接口,
查询所述第一状态数据库的目标表中是否存储有所述第一数据。
91.步骤420:第一区块链系统中的第一节点将第一数据从第一状态数据库的目标表中删除。
92.作为示例,第一区块链系统中的第一节点通过调用第一状态数据库的解锁接口,将所述第一数据从第一状态数据库的目标表中删除。
93.可选地,在一些实施例中,如果第一区块链系统和第二区块链系统之间执行上述跨链交易失败时,例如,第二区块链系统向第一区块链系统反馈跨链交易执行失败的消息,第一区块链系统可以对第一状态数据库的目标表中的所述第一数据执行回滚操作。这样,可以在交易失败时获取交易执行之前的数据。
94.下面结合图5,第一区块链系统中的第一节点对目标表中的第一数据进行回滚操作的具体实现过程进行详细说明。应理解,图5的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图5的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。
95.图5是本技术实施例提供的一种第一区块链系统中的第一节点对目标表中的第一数据进行回滚的方法的示意性流程图。如图5所示,该方法可以包括步骤510-530,下面分别对步骤510-530进行详细描述。
96.步骤510:第一区块链系统中的第一节点确定第一数据存储在所述第一状态数据库的目标表中。
97.作为示例,第一区块链系统中的第一节点通过调用第一状态数据库的回滚接口,查询所述第一状态数据库的目标表中是否存储有所述第一数据。
98.步骤520:第一区块链系统中的第一节点从第一状态数据库的目标表中读取第二数据,第二数据为跨链交易执行之前的数据。
99.一个示例,为了保证数据回滚的正确性,第一状态数据库的目标表中还可以存储有上述跨链交易执行之前的第二数据。举例说明,以上述跨链交易为第一区块链系统中的a账户向第二区块链系统中的b账户转账1元,a账户在执行跨链交易之前的账户余额为10元为例,该第二数据为“a账户余额为10元”。
100.第一区块链系统中的第一节点通过调用第一状态数据库的回滚接口,从第一状态数据库的目标表中读取第二数据,并写入第一状态数据库中。此时,第一状态数据库中存储的是第二数据,也就是第一区块链系统中的第一节点在执行跨链交易之前的数据,例如,第一状态数据库中存储有“a账户余额为10元”。这样,在跨链交易执行失败后,可以将第一节点的第一状态数据库中a账户的余额恢复至跨链交易之前的状态。
101.步骤530:第一区块链系统中的第一节点将第一数据和第二数据从第一状态数据库的目标表中删除。
102.作为示例,第一区块链系统中的第一节点通过调用第一状态数据库的回滚接口,将所述第一数据从第一状态数据库的目标表中删除。
103.上文结合图1至图5,详细描述了本技术实施例提供的数据处理的方法,下面将结合图6,详细描述本技术装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
104.图6是本技术实施例提供的一种数据处理的装置600的示意性框图。该数据处理的装置应用于第一区块链系统的第一节点中,可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本技术实施例提供的装置可以实现本技术实施例图3-图5所示的方法流程,该数据处理的装置600包括:存储模块610,上锁模块620,其中:
105.存储模块610,用于在第一区块链系统和第二区块链系统之间执行跨链交易时,向所述第一节点的第一状态数据库中的目标表存储第一数据,所述目标表在所述第一状态数据库中不同于所述第一数据的状态表,所述第一数据为在所述第一区块链系统执行所述跨链交易所得的数据,所述第一数据用于在所述第二区块链系统执行所述跨链交易;
106.上锁模块620,用于对所述第一状态数据库的目标表中的所述第一数据进行上锁。
107.可选地,所述上锁模块620具体用于:调用所述状态数据库的上锁接口,对所述第一状态数据库的目标表中的所述第一数据上锁。
108.可选地,所述目标表为可持久化存储的状态表。
109.可选地,所述目标表中还存储有所述跨链交易的标识id。
110.可选地,所述装置600还包括:解锁模块630,用于在所述第一区块链系统和所述第二区块链系统之间成功执行所述跨链交易时,调用所述第一状态数据库的解锁接口,对所述第一状态数据库的目标表中的所述第一数据解锁。
111.可选地,所述解锁模块630具体用于:调用所述第一状态数据库的解锁接口,从所述第一状态数据库的目标表中删除所述第一数据。
112.可选地,所述装置600还包括:回滚模块640,用于在所述第一区块链系统和所述第二区块链系统之间执行跨链交易失败时,调用所述第一状态数据库的回滚接口,对所述第一状态数据库的目标表中的所述第一数据执行回滚操作。
113.可选地,所述回滚模块610具体用于:调用所述第一状态数据库的回滚接口,根据所述第一数据获得第二数据,将所述第二数据存储至所述第一状态数据库,并从所述第一状态数据库的目标表中删除所述第一数据,所述第二数据为在所述第一区块链系统执行所述跨链交易之前的数据。
114.这里的数据处理的装置600可以以功能模块的形式体现。这里的术语“模块”可以通过软件和/或硬件形式实现,对此不作具体限定。
115.例如,“模块”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,asic)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
116.因此,在本技术的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
117.需要说明的是:上述实施例提供的数据处理的装置在执行数据处理的方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理的装置与数据处理的方法实施例属于
同一构思,其具体实现过程详见上文中的方法实施例,这里不再赘述。
118.本实施例中,还提供了一种数据处理的计算设备,该计算设备包括处理器和存储器,该存储器用于存储一个或多个指令,该处理器通过执行该一个或多个指令来实现上述所提供的数据处理的方法。
119.本实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质存储有指令,当计算机可读存储介质中的指令在计算设备上被执行时,使得计算设备执行上述所提供的数据处理的方法。
120.本实施例中,还提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述所提供的数据处理的方法,或者使得该计算设备实现上述提供的数据处理的装置的功能。
121.应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
122.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
123.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
124.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
125.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
126.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
127.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
128.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献