CN110910249B - 一种数据处理方法、装置、节点设备及存储介质 - Google Patents

一种数据处理方法、装置、节点设备及存储介质 Download PDF

Info

Publication number
CN110910249B
CN110910249B CN201911161606.2A CN201911161606A CN110910249B CN 110910249 B CN110910249 B CN 110910249B CN 201911161606 A CN201911161606 A CN 201911161606A CN 110910249 B CN110910249 B CN 110910249B
Authority
CN
China
Prior art keywords
cache region
data
transaction
target
transaction data
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.)
Active
Application number
CN201911161606.2A
Other languages
English (en)
Other versions
CN110910249A (zh
Inventor
李茂材
朱耿良
杨常青
刘区城
蓝虎
刘攀
周开班
时一防
黄焕坤
王宗友
张劲松
孔利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911161606.2A priority Critical patent/CN110910249B/zh
Publication of CN110910249A publication Critical patent/CN110910249A/zh
Application granted granted Critical
Publication of CN110910249B publication Critical patent/CN110910249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

本发明实施例公开了一种数据处理方法、装置、节点设备及存储介质,其中方法包括:从所述第一缓存区中获取所述目标交易数据;以及,从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据;将读取到的所述目标交易数据和所述目标交易结果数据关联存储到所述交易池的目标缓存区中;从所述目标缓存区将相关联的所述目标交易数据和所述目标交易结果数据上传到区块链网络,可快速获取到交易数据,提升将交易数据提交到区块链网络的效率。

Description

一种数据处理方法、装置、节点设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、节点设备及存储介质。
背景技术
当前,随着区块链技术的发展,基于区块链存储数据的不可篡改的特性,越来越多的数据,如交易数据,将上传到区块链网络中进行存储,而节点在将交易数据在接收到交易数据后,并在将交易数据上传到区块链网络之前,可先将接收到的交易数据先缓存到交易池中,而随着交易池中交易数据量的增多,使得节点数据可能无法及时将交易数据提交到交易池中,而造成交易数据不能及时提交到交易池中。而且,在节点从交易池中对交易数据和对应的交易结果数据进行读取时,所述节点需要从交易池中的大量交易数据和大量交易结果数据中,确定出交易数据和交易结果数据的对应关系,降低了节点对交易数据和交易结果数据的获取效率,从而使得将交易数据和对应的交易结果数据上传到区块链网络的效率较低。
发明内容
本发明实施例提供了一种数据处理方法、装置、节点设备及存储介质,可快速获取到交易数据,提升将交易数据提交到区块链网络的效率。
一方面,本发明实施例提供了一种基于区块链的数据处理方法,所述数据处理方法应用于区块链网络中的任一节点,所述节点包括交易池,所述交易池包括第一缓存区和第二缓存区;所述第一缓存区用于存储交易数据,所述第二缓存区用于存储所述交易数据对应的交易结果数据;所述方法包括:
从所述第一缓存区中获取所述目标交易数据;以及,
从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据;
将读取到的所述目标交易数据和所述目标交易结果数据关联存储到所述交易池的目标缓存区中;
从所述目标缓存区将相关联的所述目标交易数据和所述目标交易结果数据上传到区块链网络。
另一方面,本发明实施例提供了一种基于区块链的数据处理装置,所述数据处理装置应用于区块链网络中的任一节点,所述节点包括交易池,所述交易池包括第一缓存区和第二缓存区;所述第一缓存区用于存储交易数据,所述第二缓存区用于存储所述交易数据对应的交易结果数据;所述装置包括:
获取单元,用于从所述第一缓存区中获取所述目标交易数据;以及,
所述获取单元,还用于从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据;
存储单元,用于将读取到的所述目标交易数据和所述目标交易结果数据关联存储到所述交易池的目标缓存区中;
上传单元,用于从所述目标缓存区将相关联的所述目标交易数据和所述目标交易结果数据上传到区块链网络。
再一方面,本发明实施例提供了一种节点设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储支持终端执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如下步骤:
从所述第一缓存区中获取所述目标交易数据;以及,
从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据;
将读取到的所述目标交易数据和所述目标交易结果数据关联存储到所述交易池的目标缓存区中;
从所述目标缓存区将相关联的所述目标交易数据和所述目标交易结果数据上传到区块链网络。
再一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,用于执行如第一方面所述的基于区块链的数据处理方法。
在本发明实施例中,节点可基于交易池中的第一缓存区和第二缓存区,分别从所述第一缓冲区和所述第二缓存区中获取目标交易数据以及和所述目标交易数据对应的交易结果数据,从而可将所述目标交易数据和所述交易结果数据关联存储到交易池的目标缓存区中,并将相关联的目标交易数据和目标交易结果数据关联存储到区块链网络中,由于节点可从交易池预先划分的第一缓存区和第二缓存区中快速获取到交易数据,实现了节点可基于交易池中的不同缓存区获取交易数据以及该交易数据对应的交易结果数据,提升了节点对交易数据和对应的交易结果数据的读取效率,从而提升了将交易数据和对应的交易结果数据上传到区块链网络中的上传效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理方法的示意流程图;
图2是本发明实施例提供的一种交易池的示意图;
图3是本发明另一实施例提供的一种数据处理方法的示意流程图;
图4是本发明实施例提供的一种数据处理装置的示意性框图;
图5是本发明实施例提供的一种节点设备的示意性框图。
具体实施方式
本发明实施例提出了一种数据处理方法,所述数据处理方法可将交易数据快速上传到交易池中,从而实现将交易数据快速上传到区块链网络中,在一个实施例中,所述数据处理方法可应用于区块链网络中的任一节点,所述节点包交易池,所述交易池包括第一缓存区和第二缓存区,所述第一缓存区用于存储交易数据,所述第二缓存区用于存储所述交易数据对应的交易结果数据。具体地,所述节点在接收到交易数据后,可先将所述交易数据先存储到第一缓存区中,并在接收到所述交易数据对应的交易结果数据后,将该交易结果数据存储到第二缓存区,使得节点在上传交易数据到交易池时,不需要等待交易池的空闲而实现直接对交易数据的上传,实现了将交易数据及时上传到交易池中。其中,所述交易数据包括本地交易数据,本地交易数据是指所述节点对应节点设备通过应用程序接口(Application Programming Interface,API)提交到本节点的交易数据。
在一个实施例中,所述节点可采用预写日志系统(Write-Ahead Logging,WAL)机制将交易数据以及该交易数据对应的交易结果数据存储到交易池中,在采用WAL机制进行交易数据以及交易结果数据的写入时,可将该交易数据先存储到第一缓存区,并将对应的交易结果数据写入到第二缓存区,实现对交易数据和交易结果数据的分区存储,进一步地,在节点将交易数据写入到第一缓存区后,可返回存储该交易数据的第一偏移地址,并在所述节点将交易结果数据写入到第二缓存区后,返回该交易结果数据的第二偏移地址,所述节点则可根据所述第一偏移地址和所述第二偏移地址读取对应的交易数据和对应的交易结果数据。
在一个实施例中,所述节点在将交易数据写入(即存储)到第一缓存区,并获取到所述第一缓存区在交易池中的第一偏移地址,以及,在所述节点将交易数据写入第二缓存区,并获取到所述第二缓存区在所述交易池的第二偏移地址后,基于WAL机制,所述节点可将所述第一偏移地址和所述第二偏移地址存储到日志文件中,并将记录偏移地址的日志文件冲刷到永久存储器中进行存储,使得所述节点在出现节点故障时,可基于日志文件记录的偏移地址,快速确定出所述节点在出现节点故障之前处理到的交易数据以及对应的交易结果数据的位置,可保证对交易数据以及对应的交易结果数据的重复处理,此外,由于交易数据和对应的交易结果数据分别预先存储到第一缓存区和第二缓存区中,使得在节点可不必等待交易池空闲时才进行交易数据以及对应的交易结果数据的写入过程,从而可提升节点对交易数据的写入效率。
在一个实施例中,所述节点可先将交易数据写入到第一缓存区中,得到所述交易数据在第一缓存区的第一存储地址(即offset1),所述节点可进一步从第二缓存区中确定出和该第一存储地址对应的第二存储地址(即offset2),并将该交易数据对应的交易结果数据存储到所述第二存储地址中,以实现交易数据和交易结果数据在不同缓存区的关联存储。举例来说,若交易数据A存储在第一缓存区的第一存储地址为a,所述节点确定在第二缓存区中和所述第一缓存区的第一存储地址a对应的第二存储地址为b,则所述节点在存储交易数据A对应的交易结果数据B时,将该交易结果数据B存储到所述第二缓存区的第二存储地址b中。在一个实施例中,所述第一缓存区中各存储地址和所述第二缓存区中各存储地址之间的对应关系是所述节点预先确定的。
在一个实施例中,节点在接收到交易数据以及对应的结果数据后,均可先将交易数据存储到第一缓存区,并将对应的交易结果数据存储到第二缓存区中,以实现将交易数据和交易结果数据的及时上传,进一步地,使得所述节点可分别从所述第一缓存区中获取到对应的交易数据和交易结果数据,在所述节点分别从所述第一缓存区和所述第二缓存区中获取到对应的交易数据和交易结果数据后,可将该交易数据和交易结果数据上传到区块链网络中进行存储,其中,区块链网络是集分布式的数据存储,点对点传输、共识机制和加密算法等于一体的计算机技术的新型应用模式,其本质为一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
在一个实施例中,区块链网络可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式网络系统,该网络系统中的任一节点可将交易池中的交易数据上传到区块链中进行存储,在区块链网络中存储的交易数据具有不可篡改的特性,在节点将交易数据上传到区块链网络时,请参见图1,是本发明实施例提出的一种数据处理方法的示意流程图,所述方法可应用于上述的节点(或节点设备)中,所述节点是区块链网络中的任一节点,所述节点包括交易池,所述交易池包括第一缓存区和第二缓存区,所述第一缓存区用于存储交易数据,所述第二缓存区用于存储交易数据对应的交易结果数据,如图1所示,该方法可包括:
S101,从所述第一缓存区中获取所述目标交易数据。
S102,从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据。
在一个实施例中,区块链网络中的任一节点在接收到交易数据和对应的交易结果数据后,可先将该交易数据存储到第一缓存区中,并将对应的交易结果数据存储到第二缓存区中,以便于所述节点在进行交易数据和交易结果数据的读取时,可分别从所述第一缓存区中读取交易数据,以及从第二缓存区中读取该交易数据对应的交易结果数据。在本发明实施例中,以所述节点从第一缓存区中读取目标交易数据,以及该目标交易数据对应的目标交易结果数据为例,对所述节点对第一缓存区和第二缓存区中交易数据的读取过程进行详细说明,其中,所述目标交易数据可以为所述第一缓存区中的任一交易数据。
在一个实施例中,节点将交易数据写入到第一缓存区的过程,以及从所述第一缓存区中读取交易数据的过程是异步进行的,也就是说,所述节点在从所述第一缓存区中读取目标交易数据的同时,可将其他交易数据写入所述第一缓存区中,所述其他交易数据为节点接收到的除所述目标交易数据之外的交易数据。同样的,节点在将交易数据对应的交易结果数据写入到第二缓存区的过程,以及节点从所述第二缓存区中读取交易结果数据的过程也是异步进行的,即所述节点在从所述第二缓存区中读取目标交易结果数据的同时,还可将其他交易结果数据写入所述第二缓存区中;此外,所述节点在从所述第一缓存区中获取目标交易数据的过程中,还可同时将其他交易结果数据写入到第二缓存区中,或者,所述节点在从所述第二缓存中获取目标交易结果数据的过程中,还可同时将其他交易数据写入到第一缓存区中。
基于交易数据以及对应的交易结果数据的异步写入的方式,可使得节点在接收到交易数据和/或对应的交易结果数据时,能快速将交易数据和/或对应的交易结果数据提交到缓存区中,以提升将交易数据和/或对应的交易结果数据存储到区块链网络中的效率。在一个实施例中,节点可能同时接收到交易数据和对应的交易结果数据,从而将交易数据和该对应的交易结果数据分别存储到第一缓存区和第二缓存区中,或者所述交易数据和对应的交易结果数据也可能不是同时获取到的。
在一个实施例中,所述节点可按照预设的时间间隔进行交易数据的上链操作,即所述节点可按照预设的时间间隔从第一缓存区中获取目标交易数据,为了将所述交易数据上传到区块链网络中进行存储,所述节点还需进一步从第二缓存区中获取该目标交易数据对应的目标交易结果数据,从而将该目标交易数据和对应的目标交易结果数据上传到区块链网络中。其中,所述节点从所述第一缓存区中获取目标交易数据,以及从第二缓存区中获取目标交易结果数据的过程可以是同时进行的,也可以不是同时执行的,可以先获取目标交易数据,再获取对应的目标交易结果数据,在本发明实施例中不做限定。
S103,将读取到的所述目标交易数据和所述目标交易结果数据关联存储到所述交易池的目标缓存区中。
在一个实施例中,目标缓存区为交易池中区别于所述第一缓存区和第二缓存区的其他缓存区,所述目标缓存区用于将节点分别从第一缓存区中获取的目标交易数据,以及从第二缓存区中获取的目标交易结果数据进行关联存储,以保证将所述目标交易数据和所述目标交易结果数据相关联地上传到区块链网络中,在节点将所述目标交易数据和所述交易结果数据关联存储到所述交易池的目标缓存区中时,所述节点可先获取所述目标交易数据的标识信息,以及所述目标交易结果数据的标识信息,并将所述目标交易数据的标识信息和所述目标交易结果数据的标识信息,以实现对目标交易数据和所述目标交易结果数据的关联,其中,所述节点可通过为所述目标交易数据的标识信息和所述目标交易结果数据的标识信息添加关联标识的方式,将所述目标交易数据的标识信息和所述目标交易结果数据的标识信息相关联。
在一个实施例中,节点在将目标交易数据和对应的目标交易结果数据关联存储到目标缓存区后,以等待将所述目标交易数据和所述目标交易结果数据上传到区块链网络中,即所述节点在将所述目标交易数据和对应的目标交易结果数据关联存储到目标缓存区中后,转而执行步骤S104。
S104,从所述目标缓存区将相关联的所述目标交易数据和所述目标交易结果数据上传到区块链网络。
在一个实施例中,节点在将目标交易数据以及对应的目标交易结果数据关联存储到目标缓存区后,所述节点可按照预设的时间间隔将所述目标缓存区中的交易数据和对应的交易结果数据上传到区块链网络中,以实现对交易数据和交易结果数据的上链存储。在所述节点将所述目标交易数据和所述目标交易结果数据上传到区块链网络之前,所述节点可先将所述目标交易数据和所述目标交易结果数据发送到共识节点,以对所述目标交易数据和所述目标交易结果数据进行共识,并在共识完成后,将所述目标交易数据和所述目标交易结果数据关联存储到区块链网络中。
在一个实施例中,如图2所示,假设所述节点从所述第一缓存区中获取的目标交易数据为交易数据A,从所述第二缓存区中获取的目标交易结果数据为与所述交易数据A对应的交易结果数据B,所述节点进一步地可将获取到的交易数据A和交易结果数据B存储到交易池的目标缓存区中,并在所述目标缓存区中将所述交易数据A和交易结果数据B相关联,所述节点在将所述交易数据A和所述交易结果数据B相关联后,可将所述交易数据A和所述交易结果数据B上传到区块链网络中,以实现对交易数据A和交易结果数据B的关联存储。
在本发明实施例中,节点可基于交易池中的第一缓存区和第二缓存区,分别从所述第一缓冲区和所述第二缓存区中获取目标交易数据以及和所述目标交易数据对应的交易结果数据,从而可将所述目标交易数据和所述交易结果数据关联存储到交易池的目标缓存区中,并将相关联的目标交易数据和目标交易结果数据关联存储到区块链网络中,由于节点可从交易池预先划分的第一缓存区和第二缓存区中快速获取到交易数据,实现了节点可基于交易池中的不同缓存区获取交易数据以及该交易数据对应的交易结果数据,提升了节点对交易数据和对应的交易结果数据的读取效率,从而提升了将交易数据和对应的交易结果数据上传到区块链网络中的上传效率。
请参见图3,是本发明另一实施例提供的一种数据处理方法的示意流程图,所述数据处理方法也可用于区块链网络中的任一节点,所述节点包括交易池,所述交易池包括第一缓存区和第二缓存区,所述第一缓存区用于存储交易数据,所述第二缓存区用于存储交易数据对应的交易结果数据,如图3所示,所述方法包括:
S301,检测是否接收到对所述目标交易数据的上链请求。
S302,若接收到对所述目标交易数据的上链请求,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
在步骤S301和步骤S302中,节点可通过检测对目标交易数据的上链请求,确定是否从第一缓存区中进行目标交易数据的获取,所述上链请求可能是由所述节点自动生成的,也可能是由提交所述交易数据到交易池的终端设备发送到所述节点的,在所述节点检测到所述上链请求后,转而执行步骤S302。
在一个实施例中,所述节点在接收到交易数据时,可先将交易数据存储到交易池的第一缓存区中,以便后续节点可从所述第一缓存区进行交易数据的读取,由于节点在接收到交易数据后,不是直接将交易数据进行存储,而是先缓存到第一缓存区的,使得所述节点在检测到节点异常重启时,可根据第一缓存区中缓存的交易数据进行交易数据的获取。在所述节点接收到所述交易数据后,在将所述交易数据存储到第一缓存区之前,为了使得节点在异常重启时,能确定出所述节点在异常重启之前读取到的交易数据在所述第一缓存区的位置,所述节点可先确定出所述第一缓存区在交易池中的第一偏移地址,从而根据所述第一偏移地址,在所述第一缓存区中遍历得到交易数据在所述第一缓存区的第一存储位置(offset1),并将所述第一存储位置存储永久存储器中。
同样的,在所述节点接收到交易数据对应的交易结果数据时,可先将所述交易结果数据存储到对应的第二缓存区中,在所述节点将交易结果数据存储到第二缓存区中时,可先确定所述交易结果数据对应存储到第二缓存区的第二存储位置(即offset2),其中,所述交易结果数据对应存储到所述第二缓存区中的第二存储位置是根据所述的第一存储位置确定的,具体地,所述节点可先确定所述第一缓存区中各存储位置和所述第二缓存区中各存储位置之间的对应关系,从而基于所述对应关系和所述第一存储位置,可从所述第二缓存区中确定出和所述第一存储位置对应的第二存储位置,并将所述交易结果数据存储到所述第二存储位置中,在一个实施例中,所述第一缓存区中各个交易数据的存储地址与所述第二缓存区中各个交易结果数据的存储地址之间的对应关系为一一对应的关系。
在一个实施例中,所述节点在从第一缓存区中获取目标交易数据之前,还可先确定所述目标交易数据在第一缓存区中的缓存时间,并将所述缓存时间和缓存时间阈值进行对比,在所述节点确定所述目标交易数据在所述第一缓存区中的缓存时间大于或等于所述缓存时间阈值时,说明所述目标交易数据在所述缓存区中长时间等待被提交到交易池中,所有,所述节点可在在所述缓存时间大于或等于所述缓存时间阈值时,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
在一个实施例中,所述节点在从第一缓存区中获取目标交易数据之前,还可先所述交易池中目标缓存区的缓存状态,所述缓存状态包括空闲状态和非空闲状态,空闲状态的目标缓存区可进行交易数据的上链操作,非空闲状态的目标缓存区可能已包括大量等待上链的交易数据,或者,可能由于异常重启导致目标缓存区呈现非空闲的不能进行交易数据的上链操作,在所述节点确定所述目标缓存区的缓存状态为空闲状态时,可触发执行从所述第一缓存区中获取目标交易数据的步骤。
S302,从所述第一缓存区中获取所述目标交易数据。
S303,从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据。
在步骤S302和步骤S303中,所述第一缓存区在所述交易池中的偏移地址为第一偏移地址,所述第二缓存区在所述交易池中的偏移地址为第二偏移地址。在所述节点从所述第一缓存区中获取所述目标交易数据时,可先获取所述第一缓存区在所述交易池的第一偏移地址,在所述节点确定所述第一缓存区在所述交易池的第一偏移地址后,可根据所述目标交易数据的标识信息从所述第一偏移地址开始遍历所述第一缓存区,直至查找到所述目标交易数据。在一个实施例中,在所述第一缓存区中存储的是交易数据的标识信息时,所述节点可遍历所述第一缓存区,确定出目标交易数据的目标标识信息,从而根据所述目标标识信息确定出目标交易数据,或者,也可将交易数据直接存储到第一缓存区中,从而通过遍历所述第一缓存区直接确定出目标交易数据。
在一个实施例中,节点在从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据时,所述节点可先获取所述目标交易数据在所述第一缓存区中的第一存储地址,并获取所述第一缓存区中各存储地址和所述第二缓存区中各存储地址之间的对应关系;进一步地,所述节点可根据所述对应关系,确定在所述第二缓存区中与所述第一存储地址对应的第二存储地址,在所述节点确定出在第二缓存区中与所述第一存储地址对应的第二存储地址后,所述节点可从所述第二缓存区的第二存储地址中获取与所述目标交易数据对应的而目标交易结果数据。
S304,将读取到的所述目标交易数据和所述目标交易结果数据关联存储到所述交易池的目标缓存区中。
S305,从所述目标缓存区将相关联的所述目标交易数据和所述目标交易结果数据上传到区块链网络。
在步骤S304和步骤S305中,所述节点对第一缓存区中交易数据的读取和写入,以及所述节点对第二缓存区中交易数据的读取和写入都是异步进行的,在一个实施例中,所述节点可在从所述第一缓存区中获取目标交易数据时,将其他交易数据存储到第一缓存区中,或者,所述节点可在从所述第二缓存区中获取所述目标交易结果数据时,将所述其他交易数据对应的交易结果数据存储到第二缓存区中,以实现对交易数据和交易结果数据的异步读取和写入操作,其中,所述其他交易数据为所述交易池中除所述目标交易数据之外的交易数据。
在一个实施例中,节点在将交易数据写入到第一缓存区,以及将交易结果数据写入到第二缓存区之前,可先确定出所述第一缓存区在所述交易池的第一偏移地址,以及所述第二缓存区在所述交易池的第二偏移地址,所述节点在确定出所述第一偏移地址以及所述第二偏移地址后,可先将所述第一偏移地址和所述第二偏移地址缓存到永久内存中,以便于所述节点在异常重启后,由于内存清空导致的丢失对交易数据和交易结果数据的读取地址,基于在所述永久内存中存储的第一偏移地址和第二偏移地址,所述节点可在异常重启后,从所述永久内存中获取到所述第一偏移地址和第二偏移地址,并基于所述第一偏移地址和所述第二偏移地址进行交易数据,以及对应的交易结果数据的读取。
在本发明实施例中,节点可在检测到对目标交易数据的上链请求时,触发执行从第一缓存区中获取目标交易数据的步骤,在所述节点从所述第一缓存区中获取目标交易数据时,所述节点还可从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据,所述节点进一步地,可将读取到的所述目标交易数据和所述目标交易结果数据关联存储到交易池的目标缓存区中,以便所述节点将从所述目标缓存区中将所述相关联的目标交易数据和所述目标交易结果数据上传到区块链网络中进行存储,使得节点可在接收到交易数据和/或交易结果数据后,可先将接收到的交易数据和/或交易结果数据先缓存到对应的缓存区中,使得节点可不需要等待交易池空闲才进行将交易数据上传到交易池的操作,可避免节点在接收到交易数据后造成的交易数据堆积的问题,此外,节点在将交易池中的交易数据和对应的交易结果数据上传到区块链网络时,可直接从该第一缓存区和该第二缓存区中获取交易数据以及对应的交易结果数据,可有效提升节点对交易数据的获取效率。
基于上述数据处理方法实施例的描述,本发明实施例还提供了一种数据处理装置,该数据处理装置可以是运行于上述的节点设备中的一个计算机程序(包括程序代码),所述节点包括交易池,所述交易池包括第一缓存区和第二缓存区;所述第一缓存区用于存储交易数据,所述第二缓存区用于存储所述交易数据对应的交易结果数据。该操作控制装置可执行如图1和图3所述的数据处理方法,请参见图4,该数据处理装置包括:获取单元401,存储单元402和上传单元403。
获取单元401,用于从所述第一缓存区中获取所述目标交易数据;以及,
所述获取单元401,还用于从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据;
存储单元402,用于将读取到的所述目标交易数据和所述目标交易结果数据关联存储到所述交易池的目标缓存区中;
上传单元403,用于从所述目标缓存区将相关联的所述目标交易数据和所述目标交易结果数据上传到区块链网络。
在一个实施例中,所述第一缓存区在所述交易池中的偏移地址为第一偏移地址,所述第二缓存区在所述交易池中的偏移地址为第二偏移地址;
所述第一缓存区中各个交易数据的存储地址与所述第二缓存区中各个交易结果数据的存储地址之间一一对应。
在一个实施例中,所述获取单元401,具体用于:
获取所述第一缓存区在所述交易池的第一偏移地址;
根据所述目标交易数据的标识信息从所述第一偏移地址开始在所述第一缓存区中遍历查找所述目标交易数据;
提取查找到的所述目标交易数据。
在一个实施例中,所述获取单元401,具体用于:
获取所述目标交易数据在所述第一缓存区中的第一存储地址;
在所述第二缓存区中确定与所述第一存储地址对应的第二存储地址;
从所述第二缓存区的第二存储地址中获取与所述目标交易数据对应的目标交易结果数据。
在一个实施例中,所述装置还包括:检测单元404。
检测单元404,用于检测是否接收到对所述目标交易数据的上链请求;
获取单元401,用于若接收到对所述目标交易数据的上链请求,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
在一个实施例中,所述获取单元401,还用于获取所述目标交易数据在所述第一缓存区中的缓存时间,并将所述缓存时间和缓存时间阈值进行对比;
所述获取单元401,还用于在所述缓存时间大于或等于所述缓存时间阈值时,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
在一个实施例中,所述检测单元404,还用于检测所述目标缓存区的缓存状态;
所述获取单元401,还用于当检测到所述缓存状态为空闲状态时,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
在一个实施例中,所述存储单元402,还用于在从所述第一缓存区中获取所述目标交易数据时,将其他交易数据存储到所述第一缓存区中;以及,
所述存储单元402,还用于在从所述第二缓存区中获取所述目标交易结果数据时,将所述其他交易数据对应的交易结果数据存储到所述第二缓存区中;
其中,所述其他交易数据为所述交易池中除所述目标交易数据之外的交易数据。
在本发明实施例中,获取单元401可基于交易池中的第一缓存区和第二缓存区,分别从所述第一缓冲区和所述第二缓存区中获取目标交易数据以及和所述目标交易数据对应的交易结果数据,从而存储单元402可将所述目标交易数据和所述交易结果数据关联存储到交易池的目标缓存区中,上传单元403则可将相关联的目标交易数据和目标交易结果数据关联存储到区块链网络中,由于获取单元401可从交易池预先划分的第一缓存区和第二缓存区中快速获取到交易数据,实现了节点可基于交易池中的不同缓存区获取交易数据以及该交易数据对应的交易结果数据,提升了对交易数据和对应的交易结果数据的读取效率,从而可提升了将交易数据和对应的交易结果数据上传到区块链网络中的上传效率。
请参见图5,是本发明实施例提供的一种节点设备的结构示意性框图,所述节点包括交易池,所述交易池包括第一缓存区和第二缓存区;所述第一缓存区用于存储交易数据,所述第二缓存区用于存储所述交易数据对应的交易结果数据,所述节点设备可以是服务器设备,也可以是终端设备,所述节点设备即是上述的节点。如图5所示的本发明实施例中的节点设备可包括:一个或多个处理器501;一个或多个输入设备502,一个或多个输出设备503和存储器504。上述处理器501、输入设备502、输出设备503和存储器504通过总线505连接。存储器502用于存储计算机程序,所述计算机程序包括程序指令,处理器501用于执行存储器502存储的程序指令。
所述存储器504可以包括易失性存储器(volatile memory),如随机存取存储器(random-access memory,RAM);存储器504也可以包括非易失性存储器(non-volatilememory),如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;存储器504还可以包括上述种类的存储器的组合。
所述处理器501可以是中央处理器(central processing unit,CPU)。所述处理器501还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)等。该PLD可以是现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)等。所述处理器501也可以为上述结构的组合。
在一个实施例中,所述处理器501被配置调用所述程序指令,用于执行:
从所述第一缓存区中获取所述目标交易数据;以及,
从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据;
将读取到的所述目标交易数据和所述目标交易结果数据关联存储到所述交易池的目标缓存区中;
从所述目标缓存区将相关联的所述目标交易数据和所述目标交易结果数据上传到区块链网络。
在一个实施例中,,所述第一缓存区在所述交易池中的偏移地址为第一偏移地址,所述第二缓存区在所述交易池中的偏移地址为第二偏移地址;
所述第一缓存区中各个交易数据的存储地址与所述第二缓存区中各个交易结果数据的存储地址之间一一对应。
在一个实施例中,所述处理器501还被配置调用所述程序指令,用于执行:
获取所述第一缓存区在所述交易池的第一偏移地址;
根据所述目标交易数据的标识信息从所述第一偏移地址开始在所述第一缓存区中遍历查找所述目标交易数据;
提取查找到的所述目标交易数据。
在一个实施例中,所述处理器501还被配置调用所述程序指令,用于执行:
获取所述目标交易数据在所述第一缓存区中的第一存储地址;
在所述第二缓存区中确定与所述第一存储地址对应的第二存储地址;
从所述第二缓存区的第二存储地址中获取与所述目标交易数据对应的目标交易结果数据。
在一个实施例中,所述处理器501还被配置调用所述程序指令,用于执行:
检测是否接收到对所述目标交易数据的上链请求;
若接收到对所述目标交易数据的上链请求,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
在一个实施例中,所述处理器501还被配置调用所述程序指令,用于执行:
获取所述目标交易数据在所述第一缓存区中的缓存时间,并将所述缓存时间和缓存时间阈值进行对比;
在所述缓存时间大于或等于所述缓存时间阈值时,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
在一个实施例中,所述处理器501还被配置调用所述程序指令,用于执行:
检测所述目标缓存区的缓存状态;
当检测到所述缓存状态为空闲状态时,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
在一个实施例中,所述处理器501还被配置调用所述程序指令,用于执行:
在从所述第一缓存区中获取所述目标交易数据时,将其他交易数据存储到所述第一缓存区中;以及,
在从所述第二缓存区中获取所述目标交易结果数据时,将所述其他交易数据对应的交易结果数据存储到所述第二缓存区中;
其中,所述其他交易数据为所述交易池中除所述目标交易数据之外的交易数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明的局部实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或局部流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (10)

1.一种数据处理方法,其特征在于,所述数据处理方法应用于区块链网络中的任一节点,所述节点包括交易池,所述交易池包括第一缓存区和第二缓存区;所述第一缓存区用于存储交易数据,所述第二缓存区用于存储所述交易数据对应的交易结果数据;所述方法包括:
从所述第一缓存区中获取目标交易数据;以及,
从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据;所述目标交易结果数据的获取方式包括:获取所述目标交易数据在所述第一缓存区中的第一存储地址;在所述第二缓存区中确定与所述第一存储地址对应的第二存储地址;从所述第二缓存区的第二存储地址中获取与所述目标交易数据对应的目标交易结果数据;
将读取到的所述目标交易数据和所述目标交易结果数据关联存储到所述交易池的目标缓存区中;
从所述目标缓存区将相关联的所述目标交易数据和所述目标交易结果数据上传到区块链网络。
2.根据权利要求1所述的方法,其特征在于,所述第一缓存区在所述交易池中的偏移地址为第一偏移地址,所述第二缓存区在所述交易池中的偏移地址为第二偏移地址;
所述第一缓存区中各个交易数据的存储地址与所述第二缓存区中各个交易结果数据的存储地址之间一一对应。
3.根据权利要求2所述的方法,其特征在于,所述从所述第一缓存区中获取所述目标交易数据,包括:
获取所述第一缓存区在所述交易池的第一偏移地址;
根据所述目标交易数据的标识信息从所述第一偏移地址开始在所述第一缓存区中遍历查找所述目标交易数据;
提取查找到的所述目标交易数据。
4.根据权利要求1所述的方法,其特征在于,所述从所述第一缓存区中获取所述目标交易数据之前,所述方法还包括:
检测是否接收到对所述目标交易数据的上链请求;
若接收到对所述目标交易数据的上链请求,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
5.根据权利要求1所述的方法,其特征在于,所述从所述第一缓存区中获取所述目标交易数据之前,所述方法还包括:
获取所述目标交易数据在所述第一缓存区中的缓存时间,并将所述缓存时间和缓存时间阈值进行对比;
在所述缓存时间大于或等于所述缓存时间阈值时,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
6.根据权利要求1所述的方法,其特征在于,所述从所述第一缓存区中获取所述目标交易数据之前,所述方法还包括:
检测所述目标缓存区的缓存状态;
当检测到所述缓存状态为空闲状态时,触发执行从所述第一缓存区中获取所述目标交易数据的步骤。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在从所述第一缓存区中获取所述目标交易数据时,将其他交易数据存储到所述第一缓存区中;以及,
在从所述第二缓存区中获取所述目标交易结果数据时,将所述其他交易数据对应的交易结果数据存储到所述第二缓存区中;
其中,所述其他交易数据为所述交易池中除所述目标交易数据之外的交易数据。
8.一种数据处理装置,其特征在于,所述数据处理装置应用于区块链网络中的任一节点,所述节点包括交易池,所述交易池包括第一缓存区和第二缓存区;所述第一缓存区用于存储交易数据,所述第二缓存区用于存储所述交易数据对应的交易结果数据;所述装置包括:
获取单元,用于从所述第一缓存区中获取目标交易数据;以及,
所述获取单元,还用于从所述第二缓存区中获取所述目标交易数据对应的目标交易结果数据;所述目标交易结果数据的获取方式包括:获取所述目标交易数据在所述第一缓存区中的第一存储地址;在所述第二缓存区中确定与所述第一存储地址对应的第二存储地址;从所述第二缓存区的第二存储地址中获取与所述目标交易数据对应的目标交易结果数据;
存储单元,用于将读取到的所述目标交易数据和所述目标交易结果数据关联存储到所述交易池的目标缓存区中;
上传单元,用于从所述目标缓存区将相关联的所述目标交易数据和所述目标交易结果数据上传到区块链网络。
9.一种节点设备,其特征在于,包括处理器、存储器和通信接口,所述处理器、所述存储器和所述通信接口相互连接,其中,所述存储器用于存储计算机程序指令,所述处理器被配置用于执行所述程序指令,实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
CN201911161606.2A 2019-11-22 2019-11-22 一种数据处理方法、装置、节点设备及存储介质 Active CN110910249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911161606.2A CN110910249B (zh) 2019-11-22 2019-11-22 一种数据处理方法、装置、节点设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911161606.2A CN110910249B (zh) 2019-11-22 2019-11-22 一种数据处理方法、装置、节点设备及存储介质

Publications (2)

Publication Number Publication Date
CN110910249A CN110910249A (zh) 2020-03-24
CN110910249B true CN110910249B (zh) 2021-08-24

Family

ID=69818967

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911161606.2A Active CN110910249B (zh) 2019-11-22 2019-11-22 一种数据处理方法、装置、节点设备及存储介质

Country Status (1)

Country Link
CN (1) CN110910249B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488626A (zh) * 2020-04-09 2020-08-04 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及介质
CN111507720B (zh) * 2020-04-22 2022-03-11 腾讯科技(深圳)有限公司 基于区块链的数据快照方法、装置及计算机可读存储介质
CN112527896A (zh) * 2020-11-30 2021-03-19 东软集团股份有限公司 区块链账本数据的处理方法、装置、存储介质及电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201709845D0 (en) * 2017-06-20 2017-08-02 Nchain Holdings Ltd Computer-implemented system and method
CN108550079A (zh) * 2018-03-09 2018-09-18 深圳市元征科技股份有限公司 保险理赔信息管理方法、系统及区块链节点设备
CN108764906A (zh) * 2018-05-30 2018-11-06 深圳市元征科技股份有限公司 一种服务器及其区块链交易确认方法、装置、存储介质
CN108776897B (zh) * 2018-06-05 2020-04-21 腾讯科技(深圳)有限公司 数据处理方法、装置、服务器及计算机可读存储介质
CN109447635B (zh) * 2018-10-15 2022-02-01 北京京东尚科信息技术有限公司 用于区块链的信息存储方法和装置
CN109586934A (zh) * 2018-12-27 2019-04-05 链极智能科技(上海)有限公司 一种区块链底层网络交易同步优化方法
CN109902032B (zh) * 2019-01-31 2021-05-25 泰康保险集团股份有限公司 堆外内存管理方法、装置、介质及电子设备
CN110380919B (zh) * 2019-08-30 2021-11-05 望海康信(北京)科技股份公司 区块链请求的处理方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN110910249A (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
CN110910249B (zh) 一种数据处理方法、装置、节点设备及存储介质
CN109873904B (zh) 消息推送的用户消息状态上报处理方法、装置及存储介质
EP3562096B1 (en) Method and device for timeout monitoring
CN112015674B (zh) 基于多层级的缓存资源访问方法、装置和计算机设备
JP7405773B2 (ja) マルチコア相互接続のレベル2キャッシュへのアクセスを検証する方法
CN105468718B (zh) 数据一致性处理方法、装置和系统
CN113419824A (zh) 数据处理方法、装置、系统及计算机存储介质
US20200026427A1 (en) System and method for handling data storage on storage devices
CN110795171B (zh) 业务数据处理方法、装置、计算机设备及存储介质
CN110955390B (zh) 数据处理方法、装置、电子设备和存储介质
CN113794764A (zh) 服务器集群的请求处理方法、介质和电子设备
CN112256599A (zh) 一种数据预取方法、装置及存储设备
CN114817860B (zh) 一种数据统计方法、装置、固态硬盘及介质
WO2017020735A1 (zh) 一种数据处理方法、备份服务器及存储系统
CN109246234B (zh) 一种镜像文件下载方法、装置、电子设备及存储介质
CN112835885A (zh) 一种分布式表格存储的处理方法、装置及系统
CN114527938A (zh) 一种基于固态硬盘的数据读取方法、系统、介质及设备
CN110765125B (zh) 一种存储数据的方法及装置
CN111259299A (zh) 数据处理方法、装置、计算机设备和存储介质
CN108491160B (zh) 一种数据写入方法及装置
CN113626483B (zh) 一种填写表单的前端缓存方法、系统、设备及存储介质
CN115981956A (zh) Spdk服务进程监控方法、装置、设备、存储介质和程序产品
US9864661B2 (en) Cache-accelerated replication of snapshots between storage devices
CN113806389A (zh) 一种数据处理方法、装置、计算设备与存储介质
CN114328080A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40021423

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant