CN117057912A - 针对区块链网络的数据处理方法及相关产品 - Google Patents
针对区块链网络的数据处理方法及相关产品 Download PDFInfo
- Publication number
- CN117057912A CN117057912A CN202210481903.0A CN202210481903A CN117057912A CN 117057912 A CN117057912 A CN 117057912A CN 202210481903 A CN202210481903 A CN 202210481903A CN 117057912 A CN117057912 A CN 117057912A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- transaction
- block height
- height
- 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 26
- 230000001360 synchronised effect Effects 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 36
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 230000000875 corresponding effect Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了针对区块链网络的数据处理方法及相关产品,其中方法包括:接收客户端发送的交易数据获取请求,交易数据获取请求用于请求获取与第一区块高度相匹配的交易数据;响应于交易数据获取请求,从交易表中查询与第一区块高度相匹配的目标区块高度;从同步区块数据中获取目标区块高度对应的区块所包括的目标交易数据,并将目标交易数据返回给客户端;其中,当交易表中记录有第一区块高度时,目标区块高度包括第一区块高度;当交易表中未记录第一区块高度时,目标区块高度包括交易表中记录的与第一区块高度相匹配的第二区块高度。通过本申请实施例可基于交易表中记录的区块高度快速获取交易数据,有效提升交易数据的获取效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及针对区块链网络的数据处理方法、针对区块链网络的数据处理装置、计算机设备、计算机可读存储介质及计算机程序产品。
背景技术
区块链网络中存在全节点和轻节点两种类型的节点,全节点包括完整的区块链数据,而轻节点会从全节点同步全量的区块头和其具有访问权限的交易数据,即同步的区块数据中存在部分只有区块头没有区块体的区块(即没有交易数据的区块),以及部分完整区块。为减轻全节点的负载,客户端通常是从相应的轻节点去获取交易数据,只需在轻节点同步的区块数据中进行查找,就可获取所需的交易数据。但是,需要遍历所有区块(只有区块头没有区块体的区块,和具有区块头、区块体的区块)才能找到所需的交易数据。这样,需要遍历所有的区块才能获取到所需的交易数据,耗时长,导致交易数据的获取效率低。
发明内容
本申请实施例提供了针对区块链网络的数据处理方法及相关产品,可基于交易表中记录的区块高度快速获取交易数据,有效提升交易数据的获取效率。
一方面,本申请实施例提供了一种针对区块链网络的数据处理方法,该区块链网络包括全节点和轻节点,轻节点存储的同步区块数据是从全节点同步得到,同步区块数据包括第一类区块的区块头以及第二类区块,第一类区块包括的交易数据轻节点不具有访问权限,第二类区块包括的交易数据轻节点具有访问权限;轻节点记录有交易表,交易表包括同步的各个第二类区块的区块高度;该方法包括:
接收客户端发送的交易数据获取请求,交易数据获取请求用于请求获取与第一区块高度相匹配的交易数据;响应于交易数据获取请求,从交易表中查询与第一区块高度相匹配的目标区块高度;从同步区块数据中获取目标区块高度对应的区块所包括的目标交易数据,并将目标交易数据返回给客户端;其中,当交易表中记录有第一区块高度时,目标区块高度包括第一区块高度;当交易表中未记录第一区块高度时,目标区块高度包括交易表中记录的与第一区块高度相匹配的第二区块高度。
一方面,本申请实施例提供了一种针对区块链网络的数据处理装置,所述区块链网络包括全节点和轻节点,所述轻节点存储的同步区块数据是从所述全节点同步得到,所述同步区块数据包括第一类区块的区块头以及第二类区块,所述第一类区块包括的交易数据所述轻节点不具有访问权限,所述第二类区块包括的交易数据所述轻节点具有访问权限;所述轻节点记录有交易表,所述交易表包括同步的各个所述第二类区块的区块高度;该装置包括:
接收单元,用于接收客户端发送的交易数据获取请求,所述交易数据获取请求用于请求获取与第一区块高度相匹配的交易数据;
处理单元,用于响应于所述交易数据获取请求,从所述交易表中查询与所述第一区块高度相匹配的目标区块高度;
所述处理单元,还用于从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据;
发送单元,用于将所述目标交易数据返回给所述客户端;
其中,当所述交易表中记录有所述第一区块高度时,所述目标区块高度包括所述第一区块高度;当所述交易表中未记录所述第一区块高度时,所述目标区块高度包括所述交易表中记录的与所述第一区块高度相匹配的第二区块高度。
一方面,本申请实施例提供了一种计算机设备,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,执行本申请实施例提供的方法。
相应地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行本申请实施例提供的方法。
相应地,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行时实现本申请实施例提供的基于图像识别模型的图像处理方法的步骤。
相应地,本申请实施例还提供了一种计算机程序,所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备实现本申请实施例提供的基于图像识别模型的图像处理方法。
本申请实施例中,轻节点根据客户端发送的交易数据获取请求中的第一区块高度,在交易表中查询与第一区块高度相匹配的目标区块高度,并从同步区块数据中获取该目标区块高度对应的区块所包括的目标交易数据,此方式可基于交易表中记录的区块高度直接确定与交易数据获取请求相匹配的目标区块高度,直接从同步区块数据中获取目标区块高度对应的区块所包括的目标交易数据,不用对同步区块数据中所有的区块进行查询,从而可以提升交易数据的获取效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种区块链的结构示意图;
图1b是本申请实施例提供的一种数据共享系统的架构示意图;
图1c是本申请实施例提供的一种数据处理系统的架构示意图;
图1d是本申请实施例提供的一种单个节点的数据处理系统的架构示意图;
图2是本申请实施例提供的一种针对区块链网络的数据处理方法的流程示意图;
图3是本申请实施例提供的另一种针对区块链网络的数据处理方法的流程示意图;
图4是本申请实施例提供的一种针对区块链网络的数据处理装置的结构示意图;
图5是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中所涉及到的“第一”、“第二”等描述仅用于描述目的,而不能理解为指示或者暗示其相对重要性或者隐含指明所指示的技术特征的数量。因此,限定有“第一”、“第二”的技术特征可以明示或者隐含的包括至少一个该特征。
下面将会对本申请实施例中出现的一些关键术语进行说明。
简单支付验证(Simplified Payment Verification,SPV)也被称为轻节点:区块链不参与共识的节点,从全节点同步全量的区块头和自己有访问权限的有交易数据的区块(即只存储区块链上的部分信息的节点)。区块头可以任意同步,而从全节点同步交易时,全节点会验证SPV节点的访问权限是否有权访问交易数据,无访问权限不允许同步交易数据过去。联盟链中业务一般通过SPV节点接入到区块链中。
全节点:存储区块链上的所有信息的节点。
区块高度:区块在区块链中的位置,随着打包过程的不断进行,高度不断增加。
区块链:区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。它本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本,广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。区块链中一个完整的区块由区块头和区块体组成,区块头存储区块信息,比如高度等等,区块体里面存放交易。
请参见图1a,是本申请实施例提供的一种可选的区块链结构示意图。
如图1a所示,区块链101由多个区块组成,区块链的第一个区块称为创世区块(可简称为创世快),创世块中包括区块头和区块体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块体中存储有输入信息;创世块的下一区块以创世块为父区块,下一区块中同样包括区块头和区块体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
进一步的,区块链网络可以由各个区块链节点进行维护,可以将区块链网络理解为一个用于区块链节点与区块链节点之间进行数据共享的数据共享系统,该数据共享系统的一种示例性结构可参见图1b;图1b所示,该数据共享系统(即区块链网络)中可包括多个区块链节点102,各个区块链节点102可以为接入至该区块链网络中的服务器,也可以为接入至该区块链网络中的终端设备(如客户端),这里对区块链节点102的具体形式不做限定。对于数据共享系统中的每个区块链节点102,均具有与其对应的节点标识,而且数据共享系统中的每个区块链节点102均可以存储有数据共享系统中其它区块链节点102的节点标识,以便后续根据其它区块链节点102的节点标识,将生成的区块广播至数据共享系统中的其它区块链节点102。每个区块链节点102中可维护一个节点标识列表,将节点名称和节点标识对应存储至节点标识列表中;其中,节点标识列表可参见表1:
表1
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点X(X为正整数) | xx.xxx.xxx.xxx |
如表1所示,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其它任一种能够用于标识该节点的信息;例如,节点标识还可以是二进制序列码(如110001110),表1中仅以IP地址为例进行说明。当数据共享系统中产生待验证区块时,数据共享系统中运行共识机制的区块链节点(或称为共识节点)对该待验证区块进行共识,并在共识成功后通过节点标识列表中的节点标识,将该待验证区块同步至区块链网络中的各个区块链节点,实现在区块链网络中对数据的分布式存储。
基于上述描述,本申请实施例提供了一种数据处理系统,请参见图1c,是本申请实施例提供的一种数据处理系统架构示意图。如图1c所示,区块链网络103包括多个全节点1041和多个轻节点1051,部分全节点1041和轻节点1051之间可以通过通信网络实现彼此之间的数据传输,轻节点1051可以从相应的全节点1041中进行区块数据同步。需要说明的是,本申请实施例中轻节点和全节点的数量可以为一个或者多个,本申请对轻节点和全节点的数量不作限定。
进一步的,单个的轻节点和单个的全节点之间也可以进行数据传输,该数据传输系统的一种示例性架构可参见图1d;如图1d所示,该数据传输系统可以包括轻节点106(即图1c中的任一个轻节点1051)以及全节点107(即图1c中的任一个全节点1041);轻节点106拥有部分数据,轻节点106主要进行业务执行,不参与记账共识,通过身份认证的方式从全节点107中获得区块头数据和部分授权可见的区块体数据。全节点107拥有全量数据。
其中,全节点107包括区块链,区块链中包括N个区块,每个区块中存储有区块头和区块体,区块头存储区块信息,如区块高度,区块体存储交易数据。N为整数。
其中,轻节点106包括区块链,区块链中包括M个区块。因轻节点106向全节点107同步区块数据时,区块头可以进行全部同步,区块体需要有相应的权限才可以同步。即轻节点106中的部分区块只有区块头没有区块体。如图1d所示,轻节点106中的区块1、区块M均存储有区块头和区块体,区块2只存储有区块头。M为小于等于N的整数。
每个节点(轻节点106、全节点107)在进行正常工作时可以接收到外界发送的数据,并基于接收到的数据进行区块上链处理,也可以向外界发送数据。为了保证各个节点之间的数据互通,每个节点之间可以存在数据连接,例如轻节点106与全节点107之间存在数据连接。
可以理解的是,上述的数据连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。
其中,图1d中的轻节点106和全节点107可以包括手机、平板电脑、笔记本电脑、掌上电脑、智能音响、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)等。
可以理解的是,本申请实施例所提供的针对区块链网络的数据处理方法可以由计算机设备执行,计算机设备可以是客户端也可以是服务器。
上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述客户端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。本申请实施例提供的针对区块链网络的数据处理方法可以由轻节点106执行,具体的:
数据传输系统(即区块链网络)包括全节点107和轻节点106,轻节点106存储的同步区块数据是从全节点107同步得到,同步区块数据包括第一类区块的区块头以及第二类区块,第一类区块包括的交易数据轻节点106不具有访问权限,第二类区块包括的交易数据轻节点106具有访问权限;轻节点106记录有交易表,交易表包括同步的各个第二类区块的区块高度。
利用生成的交易表,轻节点106接收客户端发送的交易数据获取请求,根据该交易数据获取请求,从交易表中查询与第一区块高度相匹配的目标区块高度,从同步区块数据中获取目标区块高度对应的区块所包括的目标交易数据,并将目标交易数据返回给所述客户端,其中,当交易表中记录有第一区块高度时,目标区块高度包括第一区块高度;当交易表中未记录第一区块高度时,目标区块高度包括交易表中记录的与第一区块高度相匹配的第二区块高度。这样,可基于交易表中记录的区块高度直接确定与交易数据获取请求相匹配的目标区块高度,直接从同步区块数据中获取目标区块高度对应的区块所包括的目标交易数据,不用对同步区块数据中所有的区块进行查询,从而可以提升交易数据的获取效率。
以上对本申请实施例提供的针对区块链网络的数据处理方法进行了简要介绍,下面对该针对区块链网络的数据处理方法的具体实现方式进行详细阐述:
请参阅图2,图2是本申请实施例提供的一种针对区块链网络的数据处理方法的流程示意图。本申请实施例中所描述的针对区块链网络的数据处理方法可以运用于图1c所示的系统的架构中,该针对区块链网络的数据处理方法可包括以下步骤:
S201、轻节点向全节点发送同步区块数据的请求。
本申请实施例中,轻节点是区块链中不参与共识的节点,从全节点同步全量的区块头和自己有权限访问的有交易数据的区块。全节点:存储区块链上的所有信息的节点。
S202、全节点接收轻节点发送的同步区块数据的请求,对轻节点的身份进行验证,确认轻节点的访问权限。
本申请实施例中,轻节点对全节点中区块的交易数据进行同步是需要有访问权限的,因此全节点需要在接收轻节点发送的同步区块数据的请求之后,对轻节点的身份进行验证,确定轻节点可以访问的区块的交易数据,进而确认轻节点的访问权限。例如,假设全节点中有100个区块,区块按照0到99的顺序排列,每个区块包含区块头和区块体,区块体中包含交易数据,轻节点对该全节点中的区块1、区块5、区块8没有访问权限,全节点在接收轻节点发送的同步区块数据的请求之后,对轻节点的身份进行验证,确定轻节点具有全节点中除区块1、区块5、区块8之外的所有区块的交易数据的访问权限。即轻节点同步区块数据中区块1、区块5、区块8的同步数据只有区块头,没有区块体。
S203、全节点基于轻节点的访问权限,响应于同步区块数据的请求,确认返回的同步区块数据。
其中,同步区块数据包括第一类区块的区块头以及第二类区块,第一类区块包括的交易数据轻节点不具有访问权限,第二类区块包括的交易数据轻节点具有访问权限。
例如,假设全节点中有50个区块,区块按照0到49的顺序排列,每个区块包含区块头和区块体,区块体中包含交易数据,轻节点对该全节点中的区块3、区块9、区块15没有访问权限,同步区块数据中的第一类区块指的是区块3、区块9、区块15,第二类区块指的全节点中是除区块3、区块9、区块15之外的全部区块。
S204、全节点向轻节点返回同步区块数据。
S205、轻节点接收全节点返回的同步区块数据,基于包含有交易数据的第二类区块的区块高度生成交易表。
一种实施方式中,当轻节点是第一次接收全节点返回的同步区块数据时,轻节点根据同步区块数据中包含有交易数据的第二类区块的区块高度生成交易表,即交易表中记录的区块高度对应第二类区块的区块高度。
例如,假设全节点中有20个区块,区块按照0到19的顺序排列,每个区块包含区块头和区块体,区块体中包含交易数据,轻节点对该全节点中的区块0、区块3、区块9、区块15有访问权限,同步区块数据中的第一类区块指的是全节点中除区块0、区块3、区块9、区块15之外的所述区块,第二类区块指的是区块0、区块3、区块9、区块15。即交易表中记录的区块高度是“0”、“3”、“9”、“15”。
另一种实施方式中,当轻节点不是第一次接收全节点返回的同步区块数据时,轻节点基于同步区块数据中包含有交易数据的第二类区块的区块高度对交易表进行更新,得到更新后的交易表。
例如,轻节点已经同步了全节点中区块高度为“0”到“20”的区块数据,且交易表中记录的区块高度是“0”、“3”、“9”、“15”。此时,又同步了全节点中区块高度为“21”到“50”的区块数据,且轻节点对全节点中的区块23、区块28、区块32、区块38有访问权限。那么,轻节点基于同步区块数据中包含有交易数据的第二类区块的区块高度“23”、“28”、“32”、“38”对交易表进行更新,得到更新后的交易表中包含的区块高度为“0”、“3”、“9”、“15”、“23”、“28”、“32”、“38”。
本申请实施例中,轻节点可根据同步区块数据中有交易数据的第二类区块的区块高度生成交易表,可以对轻节点中存储的区块数据中有交易数据的区块进行记录,有利于接收获取交易数据的请求后,不用遍历所有的区块数据,直接找到相匹配的有交易数据的区块高度进行交易数据的获取,提升交易数据的获取效率。
请参阅图3,图3是本申请实施例提供的另一种针对区块链网络的数据处理方法的流程示意图。该区块链网络包括全节点和轻节点,轻节点存储的同步区块数据是从全节点同步得到,同步区块数据包括第一类区块的区块头以及第二类区块,第一类区块包括的交易数据轻节点不具有访问权限,第二类区块包括的交易数据轻节点具有访问权限;轻节点记录有交易表,交易表包括同步的各个第二类区块的区块高度。该针对区块链网络的数据处理方法可包括以下步骤:
S301、客户端向轻节点发送交易数据获取请求。
S302、轻节点接收客户端发送的交易数据获取请求,交易数据获取请求用于请求获取与第一区块高度相匹配的交易数据。
本申请实施例中,与第一区块高度相匹配的交易数据说的是,轻节点存储的同步数据中有交易数据的第二类区块的区块高度集合中与第一区块高度相同的区块的交易数据,例如第一区块高度为“10”,轻节点存储的同步数据中有交易数据的第二类区块的区块高度集合中也有区块高度为“10”的区块,这时与第一区块高度相匹配的交易数据说的是区块高度为“10”的区块的交易数据;或轻节点存储的同步数据中有交易数据的第二类区块的区块高度集合中没有与第一区块高度相同的区块,则查找区块高度集合中在第一区块高度后的区块,这时与第一区块高度相匹配的交易数据说的是区块高度集合中在第一区块高度后的区块的交易数据,例如,第一区块高度为“10”,轻节点存储的同步数据中有交易数据的第二类区块的区块高度集合中区块高度为“0”、“5”、“9”、“11”,没有区块高度为“10”的区块,这时与第一区块高度相匹配的交易数据说的是区块高度为“11”的区块的交易数据。
S303、轻节点响应于交易数据获取请求,从交易表中查询与第一区块高度相匹配的目标区块高度。
其中,当交易表中记录有第一区块高度时,目标区块高度包括第一区块高度;当交易表中未记录第一区块高度时,目标区块高度包括交易表中记录的与第一区块高度相匹配的第二区块高度。当交易表包括两个字段时,轻节点对交易表遍历一次,就可以获得与第一区块高度相匹配的目标区块高度和下一个轻节点有交易数据的区块高度。
可选的,交易表中包括一个字段,该字段记录有交易数据的区块高度;或,交易表中包括两个字段,第一字段存储有交易数据的区块高度,第二字段存储除创世区块(区块0)高度以外的有交易数据的区块高度。上述交易表中的区块高度都是按照从小到大的顺序排列的。
一种实施方式中,在满足区块数据同步条件时,确定已同步区块数据对应的最大区块高度;基于已同步区块数据对应的最大区块高度从全节点进行区块数据同步;根据当前同步的区块数据所包括的第二类区块的区块高度,对记录的交易表进行更新。
可理解的,轻节点在向全节点进行区块数据同步时,同步的是轻节点没有的区块数据。
其中,满足区块数据同步条件的情况有:
情况1、轻节点周期性地对全节点的区块数据进行同步。当到达周期性的时间点,即为满足区块数据同步条件。这样,轻节点每隔一段时间都会自动对全节点的区块数据进行同步,有利于轻节点对区块数据进行更新。
情况2、当轻节点响应于交易数据获取请求,从交易表中查询与第一区块高度相匹配的目标区块高度,交易表中没有与第一区块高度相匹配的目标区块高度时,这时,满足区块数据同步条件。
可选的,在情况2下,轻节点会执行以下步骤:
确定同步区块数据对应的最大区块高度;
基于同步区块数据对应的最大区块高度和匹配交易数据对应的区块高度,从全节点进行区块数据同步;
根据当前同步的区块数据所包括的第二类区块的区块高度,对交易表进行更新。
情况3、若交易表中未记录第一区块高度,且交易表中未记录排在第一区块高度后面的区块高度,则从全节点获取与第一区块高度相匹配的匹配交易数据;轻节点对匹配交易数据具有访问权限;将匹配交易数据返回给客户端。这样,轻节点可直接对交易数据从全节点中进行获取,并将获取到的交易数据返回给客户端,减少了从交易表中查询与第一区块高度相匹配的目标区块高度的步骤,从而提升了获取交易数据的效率。
可选的,轻节点从全节点获取与第一区块高度相匹配的匹配交易数据的步骤可包括:
若轻节点对全节点存储的第一目标区块中的交易数据具有访问权限,则获取第一目标区块中的交易数据,并将第一目标区块中的交易数据确定为匹配交易数据;第一目标区块的区块高度为第一区块高度;
若轻节点对第一目标区块中的交易数据不具有访问权限时,则基于第一区块高度确定全节点存储的第二目标区块(即确定全节点存储的相对第一目标区块下一个轻节点具有交易数据访问权限的第二目标区块);第二目标区块为区块高度大于第一区块高度的轻节点具有交易数据访问权限的区块中区块高度最小的区块;
获取第二目标区块中的交易数据,并将第二目标区块中的交易数据确定为匹配交易数据。
可选的,当交易表中记录的各个第二类区块的区块高度按照从小到大的顺序排列,从交易表中查询与第一区块高度相匹配的目标区块高度的步骤可包括:
查询交易表中是否记录有第一区块高度,若交易表中记录有第一区块高度,则将第一区块高度确定为目标区块高度;
若交易表中未记录第一区块高度,则获取交易表中排在第一区块高度后一位的第二区块高度;
将第二区块高度确定为目标区块高度。
这样,根据交易表确定的目标区块高度都是有交易数据的第二类区块的区块高度,即不用对区块数据进行遍历查找有交易数据的区块,避免了不必要的交易数据获取请求,节约了网络带宽,降低了交易数据获取的时间,进而提升了获取交易数据的效率和网络性能。
一种实施方式中,检测客户端是否具备同步区块数据的交易数据获取权限;若客户端具备同步区块数据的交易数据获取权限,则执行响应于交易数据获取请求,从交易表中查询与第一区块高度相匹配的目标区块高度的步骤。这样,可以避免交易数据被有问题的客户端获取,进而提升获取交易数据的安全性。
S304、轻节点从同步区块数据中获取目标区块高度对应的区块所包括的目标交易数据,并将目标交易数据返回给客户端。
一种实施方式中,从同步区块数据中获取目标区块高度对应的区块所包括的目标交易数据,以及获取交易表中排在目标区块高度后一位的第三区块高度;将目标交易数据和第三区块高度返回给客户端;其中,第三区块高度用于提示同步区块数据中下一个存在交易数据的区块的区块高度。
其中,获取交易表中排在目标区块高度后一位的第三区块高度,也可以是获取交易表中排在目标区块高度后的全部区块高度,这样,可以提示客户端同步区块数据中后续存在交易数据的区块的全部区块高度。
获取交易表中排在目标区块高度后一位的第三区块高度,还可以是获取交易表中排在目标区块高度后N-1位的区块高度,N为预设值且大于1的整数。
其中,将目标交易数据和第三区块高度返回给客户端还包括将目标交易数据对应的目标区块高度返回给客户端,这样,可以使得客户端获知获取的交易数据的区块高度。将第三区块高度返回给客户端,这样,可以使得客户端进行下一次交易数据获取时,快速确定获取交易数据的区块高度。
S305、客户端接收轻节点发送的目标交易数据。
一种实施方式中,客户端接收轻节点发送的目标交易数据中还包括目标交易数据的区块高度,以使得客户端获知获取的交易数据的区块高度,有利于后续进行获取交易数据的区块高度的确定。
一种实施方式中,客户端在接收轻节点发送的目标交易数据后,可根据该目标交易数据获取进行交易的对象,交易的内容。
本申请实施例中,轻节点可根据客户端发送的交易数据获取请求,在交易表中记录的区块高度直接确定与交易数据获取请求相匹配的目标区块高度,直接从同步区块数据中获取目标区块高度对应的区块所包括的目标交易数据,不用对同步区块数据中所有的区块进行查询,从而可以提升交易数据的获取效率。
示例性的,参考图2和图3所示的方法,本申请实施例中的方案在可靠性、获取交易数据的效率和易用性上均有提升,以交易表包括两个字段来举例说明。SPV节点从全节点同步区块数据时,将记录有交易数据的区块高度,关联存储起来,即交易表。以关系型数据库管理系统(mysql)存储为例设计交易表,第一字段存储有交易数据的区块高度(当前区块高度),第二字段存储除创世区块高度以外的有交易数据的区块高度(下一区块高度)。交易表中的区块高度都是按照从小到大的顺序排列的。
需要说明的,SPV节点中封装有网络接口,例如利用超文本传输协议(Hyper TextTransfer Protocol,HTTP)进行封装的网络接口,该网络接口的名称为下一个高度(getTxByNextHeight),客户端可以调用该网络接口进行交易数据获取请求的发送和接收轻节点通过该网络接口返回的数据(如目标交易数据、目标区块高度等)。
假设,SPV节点从全节点同步区块数据时,SPV节点有访问权限的全节点的区块是区块0、区块4和区块10。因区块链中的创世块即第0个区块(区块0)都是有默认有交易数据的,且对外公开可访问。即当轻节点向全节点同步区块数据到区块0时,交易表插入一条记录,表示区块高度为“0”的区块有交易数据,如表2所示:
表2
当前区块高度 | 下一区块高度 |
0 |
当后继续同步到有交易数据的区块4时,更新表2,得到更新后的交易表,如表3所示:
表3
当前区块高度 | 下一区块高度 |
0 | 4 |
4 |
当后继续同步到有交易数据的区块10时,更新表3,得到更新后的交易表,如表4所示:
表4
当前区块高度 | 下一区块高度 |
0 | 4 |
4 | 10 |
10 |
当SPV节点同步区块数据的区块高度为“10”时停止同步,即表4为最终的交易表。这时SPV节点基于网络接口接收到客户端获取交易数据的请求。
其中,获取交易数据的请求中包括的第一区块高度(初始区块高度)为“3”,SPV节点基于第一区块高度从交易表(即表4)中确定目标区块高度为“4”,将区块高度为“4”的区块的交易数据和区块高度为“10”的下一区块高度返回给客户端。这时,客户端可根据下一区块高度再次通过网络接口向SPV节点发送获取交易数据的请求,其中初始区块高度为“10”。SPV节点接收该初始高度为“10”的获取交易数据的请求后,基于交易表,SPV节点发现交易表中没有下一区块高度,这时,通过网络接口返回给客户端的信息的情况有以下几种:
情况1、返回区块高度为“10”的区块的交易数据和还没有同步的有交易数据的区块高度。例如下一个还没有同步的有交易数据的区块高度为“11”。该下一个还没有同步的有交易数据的区块高度是提前设置好的,如下一个还没有同步的有交易数据的区块高度等于当前返回的交易数据对应的区块高度加一。
情况2、返回区块高度为“10”的区块的交易数据和没有交易数据的区块高度。
相应地,针对以上两种情况,客户端会定时基于返回的下一区块高度,向轻节点发送获取交易数据请求。当SPV节点又同步了区块数据(即更新区块数据),会返回相应的交易数据和下一区块高度;当SPV节点没有再次同步区块数据(即没有更新区块数据),返回给客户端的信息的情况有以下几种:
情况1、返回的交易数据和下一区块高度都是无效值,用于告知客户端没有新的交易数据。
情况2、返回的交易数据是上一次获取交易数据请求对应的交易数据和下一区块高度是无效值。用于告知客户端没有新的交易数据,但是可以获取该下一区块高度以前的交易数据。
本申请实施例中的方案根据交易表获取交易数据,减少了客户端对SPV节点发送获取交易数据的请求的频率,减小了SPV节点的压力,使得SPV节点能够处理更多的客户端的获取交易数据的请求;根据交易表获取交易数据,减少了无效获取交易数据的请求,使得客户端可以更快地获取交易数据;通过网络接口的方式进行交易数据的获取,该接入方式简单,技术门槛低,降低了实现成本和存储。
可以理解的是,在本申请的具体实施方式中,涉及到区块数据、交易数据、等相关的数据,当本申请实施例运用上述数据到具体产品或技术中时,均需要获得相关对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法规和标准。
请参阅图4,图4为本申请实施例提供的一种针对区块链网络的数据处理装置的结构示意图。该区块链网络包括全节点和轻节点,所述轻节点存储的同步区块数据是从所述全节点同步得到,所述同步区块数据包括第一类区块的区块头以及第二类区块,所述第一类区块包括的交易数据所述轻节点不具有访问权限,所述第二类区块包括的交易数据所述轻节点具有访问权限;所述轻节点记录有交易表,所述交易表包括同步的各个所述第二类区块的区块高度;所述装置包括:
接收单元401,用于接收客户端发送的交易数据获取请求,所述交易数据获取请求用于请求获取与第一区块高度相匹配的交易数据;
处理单元402,用于响应于所述交易数据获取请求,从所述交易表中查询与所述第一区块高度相匹配的目标区块高度;
所述处理单元402,还用于从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据;
发送单元403,用于将所述目标交易数据返回给所述客户端;
其中,当所述交易表中记录有所述第一区块高度时,所述目标区块高度包括所述第一区块高度;当所述交易表中未记录所述第一区块高度时,所述目标区块高度包括所述交易表中记录的与所述第一区块高度相匹配的第二区块高度。
在一实施例中,所述处理单元402,用于在满足区块数据同步条件时,确定已同步区块数据对应的最大区块高度;基于所述已同步区块数据对应的最大区块高度从所述全节点进行区块数据同步;根据当前同步的区块数据所包括的所述第二类区块的区块高度,对所述交易表进行更新。
在一实施例中,所述交易表中记录的各个所述第二类区块的区块高度按照从小到大的顺序排列;所述处理单元402从所述交易表中查询与所述第一区块高度相匹配的目标区块高度,具体用于:
查询所述交易表中是否记录有所述第一区块高度,若所述交易表中记录有所述第一区块高度,则将所述第一区块高度确定为所述目标区块高度;若所述交易表中未记录所述第一区块高度,则获取所述交易表中排在所述第一区块高度后一位的第二区块高度;将所述第二区块高度确定为所述目标区块高度。
在一实施例中,所述处理单元402从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据,所述发送单元403将所述目标交易数据返回给所述客户端,所述处理单元402,具体用于:
从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据,以及获取所述交易表中排在所述目标区块高度后一位的第三区块高度;
所述发送单元403,具体用于:
将所述目标交易数据和所述第三区块高度返回给所述客户端;其中,所述第三区块高度用于提示所述同步区块数据中下一个存在交易数据的区块的区块高度。
在一实施例中,若所述交易表中未记录所述第一区块高度,且所述交易表中未记录排在所述第一区块高度后面的区块高度,所述处理单元402则从所述全节点获取与所述第一区块高度相匹配的匹配交易数据;所述轻节点对所述匹配交易数据具有访问权限;所述发送单元403将所述匹配交易数据返回给所述客户端。
在一实施例中,所述处理单元402从所述全节点获取与所述第一区块高度相匹配的匹配交易数据,具体用于:
若所述轻节点对所述全节点存储的第一目标区块中的交易数据具有访问权限,则获取所述第一目标区块中的交易数据,并将所述第一目标区块中的交易数据确定为所述匹配交易数据;所述第一目标区块的区块高度为所述第一区块高度;若所述轻节点对所述第一目标区块中的交易数据不具有访问权限时,则基于所述第一区块高度确定所述全节点存储的第二目标区块;所述第二目标区块为区块高度大于所述第一区块高度的所述轻节点具有交易数据访问权限的区块中区块高度最小的区块;获取所述第二目标区块中的交易数据,并将所述第二目标区块中的交易数据确定为所述匹配交易数据。
在一实施例中,所述处理单元402,还用于检测所述客户端是否具备所述同步区块数据的交易数据获取权限;若所述客户端具备所述同步区块数据的交易数据获取权限,则执行所述响应于所述交易数据获取请求,从所述交易表中查询与所述第一区块高度相匹配的目标区块高度的步骤。
需要说明的是,本申请实施例的针对区块链网络的数据处理装置的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例中的相关描述,此处不再赘述。
在可行的实施例中,本申请实施例提供的针对区块链网络的数据处理装置可以采用软件方式实现,针对区块链网络的数据处理装置可以存储在存储器中,其可以是程序和插件等形式的软件,并包括一系列的单元,包括处理单元和通信单元;其中,处理单元和通信单元用于实现本申请实施例提供的针对区块链网络的数据处理方法。
在其它可行的实施例中,本申请实施例提供的基于区块链的交易处理装置也可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的基于区块链的交易处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的基于区块链的交易处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(Application Specific Integrated Circuit,ASIC)、DSP、可编程逻辑器件(Programmable Logic Device,PLD)、复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他电子元件。
本申请实施例中,轻节点在向全节点进行同步区块数据时,将有交易数据的区块的区块高度进行记录,形成交易表;根据客户端发送的交易数据获取请求中的第一区块高度,在交易表中查询与第一区块高度相匹配的目标区块高度,并从同步区块数据中获取该目标区块高度对应的区块所包括的目标交易数据,不用对同步区块数据中所有的区块进行查询,从而可以提升交易数据的获取效率。
请参阅图5,图5为本申请实施例提供的一种计算机设备的结构示意图。本申请实施例中所描述的计算机设备包括:处理器501、通信接口503及存储器502。其中,处理器501、通信接口503及存储器502可通过总线或其他方式连接,本申请实施例以通过总线连接为例。
其中,处理器501(或称中央处理器(Central Processing Unit,CPU))是计算机设备的计算核心以及控制核心,其可以解析计算机设备内的各类指令以及处理计算机设备的各类数据,例如:CPU可以用于解析对象向计算机设备所发送的开关机指令,并控制计算机设备进行开关机操作;再如:CPU可以在计算机设备内部结构之间传输各类交互数据,等等。通信接口503可选的可以包括标准的有线接口、无线接口(如Wi-Fi、移动通信接口等),受处理器501的控制用于收发数据。存储器502(Memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器502既可以包括计算机设备的内置存储器,当然也可以包括计算机设备所支持的扩展存储器。存储器502提供存储空间,该存储空间存储了计算机设备的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。
在本申请实施例中,区块链网络包括全节点和轻节点,所述轻节点存储的同步区块数据是从所述全节点同步得到,所述同步区块数据包括第一类区块的区块头以及第二类区块,所述第一类区块包括的交易数据所述轻节点不具有访问权限,所述第二类区块包括的交易数据所述轻节点具有访问权限;所述轻节点记录有交易表,所述交易表包括同步的各个所述第二类区块的区块高度。
其中,处理器501通过运行存储器502中的可执行程序代码,执行如下操作:接收客户端发送的交易数据获取请求,所述交易数据获取请求用于请求获取与第一区块高度相匹配的交易数据;
响应于所述交易数据获取请求,从所述交易表中查询与所述第一区块高度相匹配的目标区块高度;
从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据,并将所述目标交易数据返回给所述客户端;
其中,当所述交易表中记录有所述第一区块高度时,所述目标区块高度包括所述第一区块高度;当所述交易表中未记录所述第一区块高度时,所述目标区块高度包括所述交易表中记录的与所述第一区块高度相匹配的第二区块高度。
在一实施例中,所述处理器501,具体用于在满足区块数据同步条件时,确定已同步区块数据对应的最大区块高度;基于所述已同步区块数据对应的最大区块高度从所述全节点进行区块数据同步;根据当前同步的区块数据所包括的所述第二类区块的区块高度,对所述交易表进行更新。
在一实施例中,所述交易表中记录的各个所述第二类区块的区块高度按照从小到大的顺序排列;所述处理器501从所述交易表中查询与所述第一区块高度相匹配的目标区块高度,具体用于:
查询所述交易表中是否记录有所述第一区块高度,若所述交易表中记录有所述第一区块高度,则将所述第一区块高度确定为所述目标区块高度;若所述交易表中未记录所述第一区块高度,则获取所述交易表中排在所述第一区块高度后一位的第二区块高度;将所述第二区块高度确定为所述目标区块高度。
在一实施例中,所述处理器501从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据,并将所述目标交易数据返回给所述客户端,具体用于:
从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据,以及获取所述交易表中排在所述目标区块高度后一位的第三区块高度;将所述目标交易数据和所述第三区块高度返回给所述客户端;其中,所述第三区块高度用于提示所述同步区块数据中下一个存在交易数据的区块的区块高度。
在一实施例中,若所述交易表中未记录所述第一区块高度,且所述交易表中未记录排在所述第一区块高度后面的区块高度,所述处理器501则从所述全节点获取与所述第一区块高度相匹配的匹配交易数据;所述轻节点对所述匹配交易数据具有访问权限;
将所述匹配交易数据返回给所述客户端。
在一实施例中,所述处理器501从所述全节点获取与所述第一区块高度相匹配的匹配交易数据,具体用于:
若所述轻节点对所述全节点存储的第一目标区块中的交易数据具有访问权限,则获取所述第一目标区块中的交易数据,并将所述第一目标区块中的交易数据确定为所述匹配交易数据;所述第一目标区块的区块高度为所述第一区块高度;若所述轻节点对所述第一目标区块中的交易数据不具有访问权限时,则基于所述第一区块高度确定所述全节点存储的第二目标区块;所述第二目标区块为区块高度大于所述第一区块高度的所述轻节点具有交易数据访问权限的区块中区块高度最小的区块;获取所述第二目标区块中的交易数据,并将所述第二目标区块中的交易数据确定为所述匹配交易数据。
在一实施例中,所述处理器501还用于检测所述客户端是否具备所述同步区块数据的交易数据获取权限;
若所述客户端具备所述同步区块数据的交易数据获取权限,则执行所述响应于所述交易数据获取请求,从所述交易表中查询与所述第一区块高度相匹配的目标区块高度的步骤。
具体实现中,本申请实施例中所描述的处理器501、通信接口503及存储器502可执行本申请实施例提供的一种针对区块链网络的数据处理方法中所描述的计算机设备的实现方式,也可执行本申请实施例提供的一种针对区块链网络的数据处理装置中所描述的实现方式,在此不再赘述。
在本申请实施例中,轻节点在向全节点进行同步区块数据时,将有交易数据的区块的区块高度进行记录,形成交易表;根据客户端发送的交易数据获取请求中的第一区块高度,在交易表中查询与第一区块高度相匹配的目标区块高度,并从同步区块数据中获取该目标区块高度对应的区块所包括的目标交易数据,不用对同步区块数据中所有的区块进行查询,从而可以提升交易数据的获取效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如本申请实施例所述的方法。其具体实现方式可参考前文描述,此处不再赘述。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行时实现本申请实施例提供的针对区块链网络的数据处理方法的步骤。其具体实现方式可参考前文描述,此处不再赘述。
本申请实施例还提供了一种计算机程序,所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备实现本申请实施例提供的针对区块链网络的数据处理方法。其具体实现方式可参考前文描述,此处不再赘述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请部分实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (11)
1.一种针对区块链网络的数据处理方法,其特征在于,所述区块链网络包括全节点和轻节点,所述轻节点存储的同步区块数据是从所述全节点同步得到,所述同步区块数据包括第一类区块的区块头以及第二类区块,所述第一类区块包括的交易数据所述轻节点不具有访问权限,所述第二类区块包括的交易数据所述轻节点具有访问权限;所述轻节点记录有交易表,所述交易表包括同步的各个所述第二类区块的区块高度;所述方法包括:
接收客户端发送的交易数据获取请求,所述交易数据获取请求用于请求获取与第一区块高度相匹配的交易数据;
响应于所述交易数据获取请求,从所述交易表中查询与所述第一区块高度相匹配的目标区块高度;
从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据,并将所述目标交易数据返回给所述客户端;
其中,当所述交易表中记录有所述第一区块高度时,所述目标区块高度包括所述第一区块高度;当所述交易表中未记录所述第一区块高度时,所述目标区块高度包括所述交易表中记录的与所述第一区块高度相匹配的第二区块高度。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
在满足区块数据同步条件时,确定已同步区块数据对应的最大区块高度;
基于所述已同步区块数据对应的最大区块高度从所述全节点进行区块数据同步;
根据当前同步的区块数据所包括的所述第二类区块的区块高度,对记录的交易表进行更新。
3.如权利要求1或2所述的方法,其特征在于,所述交易表中记录的各个所述第二类区块的区块高度按照从小到大的顺序排列;
所述从所述交易表中查询与所述第一区块高度相匹配的目标区块高度,包括:
查询所述交易表中是否记录有所述第一区块高度,若所述交易表中记录有所述第一区块高度,则将所述第一区块高度确定为所述目标区块高度;
若所述交易表中未记录所述第一区块高度,则获取所述交易表中排在所述第一区块高度后一位的第二区块高度;
将所述第二区块高度确定为所述目标区块高度。
4.如权利要求3所述的方法,其特征在于,所述从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据,并将所述目标交易数据返回给所述客户端,包括:
从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据,以及获取所述交易表中排在所述目标区块高度后一位的第三区块高度;
将所述目标交易数据和所述第三区块高度返回给所述客户端;
其中,所述第三区块高度用于提示所述同步区块数据中下一个存在交易数据的区块的区块高度。
5.如权利要求3所述的方法,其特征在于,所述方法还包括:
若所述交易表中未记录所述第一区块高度,且所述交易表中未记录排在所述第一区块高度后面的区块高度,则从所述全节点获取与所述第一区块高度相匹配的匹配交易数据;所述轻节点对所述匹配交易数据具有访问权限;
将所述匹配交易数据返回给所述客户端。
6.如权利要求5所述的方法,其特征在于,所述从所述全节点获取与所述第一区块高度相匹配的匹配交易数据,包括:
若所述轻节点对所述全节点存储的第一目标区块中的交易数据具有访问权限,则获取所述第一目标区块中的交易数据,并将所述第一目标区块中的交易数据确定为所述匹配交易数据;所述第一目标区块的区块高度为所述第一区块高度;
若所述轻节点对所述第一目标区块中的交易数据不具有访问权限时,则基于所述第一区块高度确定所述全节点存储的第二目标区块;所述第二目标区块为区块高度大于所述第一区块高度的所述轻节点具有交易数据访问权限的区块中区块高度最小的区块;
获取所述第二目标区块中的交易数据,并将所述第二目标区块中的交易数据确定为所述匹配交易数据。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述客户端是否具备所述同步区块数据的交易数据获取权限;
若所述客户端具备所述同步区块数据的交易数据获取权限,则执行所述响应于所述交易数据获取请求,从所述交易表中查询与所述第一区块高度相匹配的目标区块高度的步骤。
8.一种针对区块链网络的数据处理装置,其特征在于,所述区块链网络包括全节点和轻节点,所述轻节点存储的同步区块数据是从所述全节点同步得到,所述同步区块数据包括第一类区块的区块头以及第二类区块,所述第一类区块包括的交易数据所述轻节点不具有访问权限,所述第二类区块包括的交易数据所述轻节点具有访问权限;所述轻节点记录有交易表,所述交易表包括同步的各个所述第二类区块的区块高度;所述装置包括:
接收单元,用于接收客户端发送的交易数据获取请求,所述交易数据获取请求用于请求获取与第一区块高度相匹配的交易数据;
处理单元,用于响应于所述交易数据获取请求,从所述交易表中查询与所述第一区块高度相匹配的目标区块高度;
所述处理单元,还用于从所述同步区块数据中获取所述目标区块高度对应的区块所包括的目标交易数据;
发送单元,用于将所述目标交易数据返回给所述客户端;
其中,当所述交易表中记录有所述第一区块高度时,所述目标区块高度包括所述第一区块高度;当所述交易表中未记录所述第一区块高度时,所述目标区块高度包括所述交易表中记录的与所述第一区块高度相匹配的第二区块高度。
9.一种计算机设备,其特征在于,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,实现如权利要求1-7中任一项所述的针对区块链网络的数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机指令,当其在计算机上运行时,使得计算机实现如权利要求1-7中任一项所述的针对区块链网络的数据处理方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行时实现如权利要求1-7中任一项所述的针对区块链网络的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210481903.0A CN117057912A (zh) | 2022-05-05 | 2022-05-05 | 针对区块链网络的数据处理方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210481903.0A CN117057912A (zh) | 2022-05-05 | 2022-05-05 | 针对区块链网络的数据处理方法及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117057912A true CN117057912A (zh) | 2023-11-14 |
Family
ID=88652311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210481903.0A Pending CN117057912A (zh) | 2022-05-05 | 2022-05-05 | 针对区块链网络的数据处理方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117057912A (zh) |
-
2022
- 2022-05-05 CN CN202210481903.0A patent/CN117057912A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107396360B (zh) | 区块验证方法及装置 | |
CN110912707B (zh) | 基于区块链的数字证书处理方法、装置、设备及存储介质 | |
CN108961052B (zh) | 区块链数据的验证方法、存储方法、装置、设备和介质 | |
CN110175840B (zh) | 联盟链中实现轻钱包机制的方法、客户端、联盟链及系统 | |
CN107491519B (zh) | 区块链账本的查询方法及装置 | |
CN111274268B (zh) | 物联网数据传输方法、装置、介质及电子设备 | |
CN112261172B (zh) | 服务寻址访问方法、装置、系统、设备及介质 | |
US20160036796A1 (en) | Method and system for facilitating terminal identifiers | |
CN110263579B (zh) | 一种数据处理方法、系统及相关设备 | |
CN105993156B (zh) | 服务器访问验证方法以及装置 | |
EP3093789B1 (en) | Storing structured information | |
CN112069169A (zh) | 区块数据存储方法、装置、电子设备及可读存储介质 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN111988262B (zh) | 认证方法、装置及服务器、存储介质 | |
CN113486060B (zh) | 数据访问处理方法和装置、存储介质及电子设备 | |
CN111695098B (zh) | 多分布式集群访问方法及装置 | |
US20230325521A1 (en) | Data processing method and apparatus based on blockchain network, device, and storage medium | |
CN110392083B (zh) | 文件秒传的控制方法、装置及终端设备 | |
CN110730063B (zh) | 安全验证方法、系统、物联网平台、终端和可读存储介质 | |
CN111092958A (zh) | 一种节点接入方法、装置、系统及存储介质 | |
CN117057912A (zh) | 针对区块链网络的数据处理方法及相关产品 | |
US8572231B2 (en) | Variable-length nonce generation | |
CN114584326A (zh) | 区块链数据处理方法、装置、电子设备及存储介质 | |
CN113379542B (zh) | 一种区块链交易的查询方法、装置、介质及电子设备 | |
CN110011972B (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 |