CN116069854A - 一种基于区块链网络的数据处理方法及相关设备 - Google Patents
一种基于区块链网络的数据处理方法及相关设备 Download PDFInfo
- Publication number
- CN116069854A CN116069854A CN202111298408.8A CN202111298408A CN116069854A CN 116069854 A CN116069854 A CN 116069854A CN 202111298408 A CN202111298408 A CN 202111298408A CN 116069854 A CN116069854 A CN 116069854A
- Authority
- CN
- China
- Prior art keywords
- transaction
- target
- node
- light node
- visible
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种基于区块链网络的数据处理方法及相关设备,区块链网络包括多个节点,节点包括轻节点或全节点,该方法由区块链网络中的目标全节点执行;该方法包括:接收区块链网络中的目标轻节点发送的数据同步请求;响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希,可见交易是指允许目标轻节点访问的交易;在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易;根据未缓存交易的交易哈希,从区块链中获取未缓存交易的交易数据,并将未缓存交易的交易数据同步至目标轻节点中进行存储。采用本申请实施例,可以减轻区块链网络中全节点的数据同步压力。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及区块链技术领域,具体涉及一种基于区块链网络的数据处理方法及相关设备。
背景技术
区块链网络中的轻节点和全节点之间需要进行数据同步,数据同步是指轻节点向全节点请求同步交易数据,全节点向轻节点同步轻节点请求的交易数据。目前,区块链网络中的轻节点不支持存储交易数据,因此每当轻节点需要交易数据时,都会向全节点发起请求;在此数据同步方案中,若轻节点频繁需要交易数据,或者多个轻节点同时向全节点请求同步交易数据,那么全节点就会不断重复接收请求、查询交易数据、同步交易数据的过程,这样给全节点造成了较大的数据同步压力。
发明内容
本申请实施例提供了一种基于区块链网络的数据处理方法及相关设备,可以减轻区块链网络中全节点的数据同步压力。
一方面,本申请实施例提供了一种基于区块链网络的数据处理方法,区块链网络包括多个节点,节点包括轻节点或全节点,该方法由区块链网络中的目标全节点执行,该方法包括:
接收区块链网络中的目标轻节点发送的数据同步请求;
响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希,可见交易是指允许目标轻节点访问的交易;
在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易;
根据未缓存交易的交易哈希,从区块链中获取未缓存交易的交易数据,并将未缓存交易的交易数据同步至目标轻节点中进行存储。
本申请实施例中,当全节点接收到轻节点发送的数据同步请求时,可以向轻节点同步轻节点可见且未缓存交易的交易数据,轻节点可以对同步的交易数据进行存储;其中,可见且未缓存交易是指允许轻节点访问、且轻节点的缓存空间中未缓存的交易。一方面,本申请实施例中的轻节点支持存储交易数据,轻节点将全节点同步的可见且未缓存交易的交易数据进行存储后,当轻节点需要交易数据时可以直接在轻节点的本地查找获得,无需再次请求全节点,可以减轻全节点的数据同步压力;另一方面,全节点向轻节点同步的是轻节点可见且未缓存交易的交易数据,过滤掉了轻节点的缓存空间中已缓存交易的交易数据,这样可以减少同步的数据量,也可以减轻全节点的数据同步压力。
另一方面,本申请实施例提供了一种基于区块链网络的数据处理方法,区块链网络包括多个节点,节点包括轻节点或全节点,该方法由区块链网络中的目标轻节点执行,该方法包括:
向区块链网络中的目标全节点发送数据同步请求;目标全节点响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希,并从可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,并根据未缓存交易的交易哈希返回未缓存交易的交易数据;可见交易是指允许目标轻节点访问的交易,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易;
接收目标全节点同步的未缓存交易的交易数据,并对未缓存交易的交易数据进行存储。
本申请实施例中,轻节点可以向全节点发送数据同步请求,请求从全节点中同步轻节点可见且未缓存交易的交易数据,然后轻节点可以对全节点同步的交易数据进行存储;其中,可见且未缓存交易是指允许轻节点访问、且轻节点的缓存空间中未缓存的交易。一方面,本申请实施例中的轻节点支持存储交易数据,轻节点将全节点同步的可见且未缓存交易的交易数据进行存储后,当轻节点需要交易数据时可以直接在轻节点的本地查找获得,无需再次请求全节点,可以减轻全节点的数据同步压力;另一方面,全节点向轻节点同步的是轻节点可见且未缓存交易的交易数据,过滤掉了轻节点的缓存空间中已缓存交易的交易数据,这样可以减少同步的数据量,也可以减轻全节点的数据同步压力。
相应地,本申请实施例提供了一种基于区块链网络的数据处理装置,区块链网络包括多个节点,节点包括轻节点或全节点,该装置设置于区块链网络的目标全节点中,该装置包括:
通信单元,用于接收区块链网络中的目标轻节点发送的数据同步请求;
处理单元,用于响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希,可见交易是指允许目标轻节点访问的交易;
处理单元,还用于在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易;
处理单元,还用于根据未缓存交易的交易哈希,从区块链中获取未缓存交易的交易数据;
通信单元,还用于将未缓存交易的交易数据同步至目标轻节点中进行存储。
在一种实现方式中,处理单元,用于在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希时,具体用于执行如下步骤:
将所述可见交易的交易哈希发送至所述目标轻节点;所述目标轻节点基于所述目标轻节点的缓存空间中已缓存交易的交易哈希,对所述可见交易的交易哈希进行过滤,得到所述目标轻节点的未缓存交易的交易哈希,并将所述未缓存交易的交易哈希发送至所述目标全节点;
接收所述目标轻节点发送的所述未缓存交易的交易哈希。
在一种实现方式中,数据同步请求中包括目标轻节点的缓存空间中已缓存交易的交易哈希;处理单元,用于在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希时,具体用于执行如下步骤:
基于已缓存交易的交易哈希,对可见交易的交易哈希进行过滤,得到目标轻节点的未缓存交易的交易哈希。
在一种实现方式中,数据同步请求中包括目标轻节点请求同步的目标区块高度;
处理单元,用于在区块链中查找目标轻节点的可见交易的交易哈希时,具体用于执行如下步骤:在区块链中确定目标区块高度对应的目标区块;在目标区块中查找目标轻节点的可见交易的交易哈希;
处理单元,用于根据未缓存交易的交易哈希,从区块链中获取未缓存交易的交易数据时,具体用于执行如下步骤:根据未缓存交易的交易哈希,从目标区块中获取未缓存交易的交易数据。
在一种实现方式中,数据同步请求中包括目标轻节点的节点标识,目标轻节点的节点标识与可见交易的交易标识具有关联关系;处理单元,用于在区块链中查找目标轻节点的可见交易的交易哈希时,具体用于执行如下步骤:
根据目标轻节点的节点标识,从区块链中获取与目标轻节点的节点标识关联的可见交易的交易标识;
根据可见交易的交易标识,从区块链中获取目标轻节点的可见交易的交易哈希。
在一种实现方式中,通信单元,还用于执行如下步骤:接收目标轻节点发送的可见轻节点的节点标识,可见轻节点是目标轻节点设置的区块链网络中允许访问目标交易的轻节点;
处理单元,还用于执行如下步骤:建立可见轻节点的节点标识与目标交易的交易标识之间的关联关系;将可见轻节点的节点标识与目标交易的交易标识之间的关联关系上传至区块链中。
相应地,本申请实施例提供了一种基于区块链网络的数据处理装置,区块链网络包括多个节点,节点包括轻节点或全节点,该装置设置于区块链网络的目标轻节点中,该装置包括:
通信单元,用于向区块链网络中的目标全节点发送数据同步请求;目标全节点响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希,并从可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,并根据未缓存交易的交易哈希返回未缓存交易的交易数据;可见交易是指允许目标轻节点访问的交易,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易;
通信单元,还用于接收目标全节点同步的未缓存交易的交易数据;
处理单元,用于对未缓存交易的交易数据进行存储。
在一种实现方式中,处理单元,还用于执行如下步骤:获取目标轻节点请求同步的目标区块高度和区块链的最高区块高度;若目标区块高度小于或等于最高区块高度,则根据目标区块高度生成数据同步请求,并触发通信单元执行向区块链网络中的目标节点发送数据同步请求的步骤;
其中,可见交易的交易哈希和未缓存交易的交易数据是目标全节点在目标区块高度对应的目标区块中获取的。
在一种实现方式中,处理单元,还用于执行如下步骤:采用目标数值对目标区块高度进行更新,得到更新后的目标区块高度;
若更新后的目标区块高度小于或等于最高区块高度,则根据更新后的目标区块高度生成更新后的数据同步请求,并根据更新后的数据同步请求继续向目标全节点请求同步数据,直至更新后的目标区块高度大于最高区块高度为止。
在一种实现方式中,通信单元,还用于执行如下步骤:接收客户端发送的目标交易的交易请求,并将目标交易的交易请求转发至目标全节点;目标全节点响应于交易请求,执行目标交易,生成并返回目标交易的交易执行结果,交易执行结果包括目标交易的交易哈希;接收目标交易的交易执行结果;
处理单元,还用于执行如下步骤:根据目标交易的交易执行结果和目标交易的交易请求生成目标交易的交易数据,将目标交易的交易数据缓存至目标轻节点的缓存空间中;
通信单元,还用于执行如下步骤:将目标交易的交易执行结果转发至客户端。
在一种实现方式中,处理单元,还用于执行如下步骤:在满足缓存清理条件时,对目标轻节点的缓存空间中已缓存交易的交易数据进行删除;
其中,缓存清理条件包括:目标轻节点的缓存空间达到缓存上限、到达缓存周期的结束时间点。
相应地,本申请实施例提供一种基于区块链网络的计算机设备,区块链网络包括多个节点,节点包括轻节点或全节点,该设备是区块链网络中的目标全节点或目标轻节点;该设备包括处理器和计算机可读存储介质,其中,处理器适于实现计算机程序,计算机可读存储介质存储有计算机程序,计算机程序适于由处理器加载并执行上述的基于区块链网络的数据处理方法。
相应地,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的基于区块链网络的数据处理方法。
相应地,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的基于区块链网络的数据处理方法。
本申请实施例中,在全节点与轻节点之间进行数据同步时,全节点向轻节点同步轻节点可见且未缓存交易的交易数据,然后轻节点可以将全节点同步的可见且未缓存交易的交易数据进行存储;其中,可见且未缓存交易是指允许轻节点访问、且轻节点的缓存空间中未缓存的交易。一方面,本申请实施例中的轻节点支持存储交易数据,轻节点将全节点同步的可见且未缓存交易的交易数据进行存储后,当轻节点需要交易数据时可以直接在轻节点的本地查找获得,无需再次请求全节点,可以减轻全节点的数据同步压力;另一方面,全节点向轻节点同步的是轻节点可见且未缓存交易的交易数据,过滤掉了轻节点的缓存空间中已缓存交易的交易数据,这样可以减少同步的数据量,也可以减轻全节点的数据同步压力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链的结构示意图;
图2a是本申请实施例提供的一种税务场景下的数据同步方案的流程示意图;
图2b是本申请实施例提供的另一种税务场景下的数据同步方案的流程示意图;
图3是本申请实施例提供的一种区块链网络的架构示意图;
图4是本申请实施例提供的一种基于区块链网络的数据处理方法的流程示意图;
图5是本申请实施例提供的另一种基于区块链网络的数据处理方法的流程示意图;
图6a是本申请实施例提供的一种示例性的数据同步过程的流程示意图;
图6b是本申请实施例提供的另一种示例性的数据同步过程的流程示意图;
图6c是本申请实施例提供的一种区块生成过程的流程示意图;
图7是本申请实施例提供的另一种基于区块链网络的数据处理方法的流程示意图;
图8是本申请实施例提供的另一种基于区块链网络的数据处理方法的流程示意图;
图9是本申请实施例提供的一种基于区块链网络的数据处理装置的结构示意图;
图10是本申请实施例提供的一种基于区块链网络的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了能够更清楚地理解本申请实施例提出的技术方案,下面对本申请实施例涉及一些关键术语进行介绍:
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的区块,每一个区块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。如图1所示,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
区块链网络是节点与节点之间用于进行数据共享的系统,区块链网络中可以包括多个节点,区块链网络中的节点可以分为两类,一类是轻节点,一类是全节点。轻节点也可称为SPV(Simplified Payment Verification,简单支付验证)节点,是指区块链网络中不参与共识,支持存储区块链中全部区块头的节点;通常情况下,轻节点不支持存储交易数据,可以从全节点中同步各个区块的区块头,也就是说,轻节点中存储有区块链中各个区块的区块头。全节点是指区块链网络中拥有完整的区块链账本(即区块链)的节点,全节点需要占用内存同步所有的区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的广播和验证,也就是说,全节点中存储有如图1所示的完整区块链。
基于上述轻节点和全节点的相关描述,在此先对轻节点和全节点之间常见的数据同步过程进行介绍:当轻节点接收到来自客户端的交易请求时,轻节点不执行请求的交易,而是将交易请求转发至全节点,由全节点执行请求的交易;全节点执行交易后,会根据交易请求与生成的交易执行结果一起确定一个交易数据上传至区块链中进行存储,还会将生成的交易执行结果返回轻节点,然后由轻节点将交易执行结果转发至发起交易请求的客户端。
以图2a所示的税务系统20为例,税务系统20是税务应用场景下的一个区块链网络,税务系统20可以包括税务总局201和税务分局202,税务总局201和税务分局202的数量均可以为一个或多个,税务分局202可以接入一个或多个业务客户端,图2a所示的税务系统20包括一个税务总局201(以下均表示为目标税务总局201)和一个税务分局202(以下均表示为目标税务分局202),目标税务分局202接入了第一业务客户端203和第二业务客户端204仅用于举例,这并不构成对本申请实施例的限定;其中,税务总局201所使用的计算机设备为区块链网络中的全节点,税务分局202所使用的计算机设备为区块链网络中的轻节点。
任一个税务总局201和任一个税务分局之间的数据同步过程如下:第一业务客户端203向目标税务分局202发起电子凭证(例如可以是电子发票)的开具请求,由于目标税务分局202不具备开具电子凭证的权限,因此目标税务分局202将开具请求转发至目标税务总局201;目标税务总局201为第一业务客户端203开具电子凭证后,可以根据开具的电子凭证生成第一交易执行结果,以及可以根据第一交易执行结果和开具请求生成一个交易数据上传至区块链中存储,目标税务总局201还可以将第一交易执行结果返回至目标税务分局202,然后目标税务分局202可以将第一交易执行结果转发至第一业务客户端203,从而第一业务客户端230可以从第一交易执行结果中获得电子凭证。
第二业务客户端204向目标税务分局202发起电子凭证(例如可以是电子发票)的查询请求,由于目标税务分局202不支持存储交易数据而无法查询,因此目标税务分局202将查询请求转发至目标税务总局201;目标税务总局201可以根据查询到的电子凭证生成第二交易执行结果,以及可以根据第一交易执行结果和查询请求生成一个交易数据上传至区块链中存储,目标税务总局201还可以将第二交易执行结果返回至目标税务分局202,然后目标税务分局202可以将第二交易执行结果转发至第二业务客户端204,从而第二业务客户端204可以从第二交易执行结果中获得电子凭证。不难看出,每当目标税务分局202(即轻节点)需要交易数据时,都会向目标税务总局201(即全节点)请求数据,给区块链网络中的全节点造成了较大的数据同步压力。
为了减轻区块链网络中全节点的数据同步压力,本申请实施例提出一种新的数据同步方案,在新的数据同步方案中,区块链网络中的任一个轻节点(以下均表示为目标轻节点)均可以支持存储该目标轻节点的可见交易的交易数据,可见交易是指允许该目标轻节点访问的交易;目标轻节点的可见交易可以包括目标轻节点指定自身可见的交易,还可以包括区块链网络中除该目标轻节点之外的其他轻节点指定目标轻节点可见的交易;目标轻节点指定自身可见的交易一般是由目标轻节点向全节点请求的交易(例如上述的电子凭证的开具请求和查询请求),这些交易在由全节点同步至目标轻节点后,目标轻节点会将这些交易的交易数据缓存在自身的缓存空间中;而其他轻节点指定目标轻节点可见的交易的交易数据未缓存于目标轻节点的缓存空间中,需要从全节点中同步;换句话说,在本申请实施例提供的新的数据同步方案中,全节点可以向轻节点同步轻节点可见且未缓存的交易数据,轻节点可以将其可见交易的交易数据(包括可见且未缓存的交易数据和可见且已缓存的交易数据)进行存储。需要说明的是,本申请实施例中提及的缓存是指将数据缓存至缓存空间中临时存放,缓存空间在达到一定条件(例如缓存空间满溢或者到达缓存空间的清理时间点等情况)时会被清空,清空后缓存空间中的数据将丢失;而本申请实施例中提及的存储是指将数据存储至存储空间(例如可以是硬盘)中永久存储,除将数据从存储空间中删除或存储空间损坏等情况外,存储空间中的数据永远存在。
以图2b所示的税务系统21为例,目标税务分局202可以向目标税务总局201发起数据同步请求;目标税务总局201可以响应于数据同步请求,在区块链中查找目标税务分局202可见且未缓存的交易数据,并将目标税务分局202可见且未缓存的交易数据返回至目标税务分局202;目标税务分局202可以对可见且未缓存的交易数据进行存储。
对于第一业务客户端203发起的电子凭证的开具请求,除了目标税务分局202会根据开具请求和包含开具的电子凭证的第一交易执行结果生成交易数据,并将交易数据缓存至目标税务分局202的缓存空间之外,其余流程均与图2a中相同。而对于第二业务客户端204发起的电子凭证的查询请求,由于目标税务分局202中可以支持存储交易数据,且存储有目标税务分局202可见交易的交易数据,因此,目标税务分局202可以直接在目标税务分局202的存储空间存储的可见交易的交易数据中查询第二交易执行结果,并将查询到的第二交易执行结果返回至第二业务客户端204。可见,由于轻节点支持存储可见交易的交易数据,当轻节点需要交易数据时,只需在轻节点的存储空间中查找,而无需向全节点请求,这样大大减轻了全节点的数据同步压力;另外,全节点在向轻节点同步数据时,同步的是其他轻节点指定轻节点可见的交易的交易数据(即可见且未缓存的交易数据),这部分交易的交易数据未缓存至轻节点的缓存空间中,而不同步轻节点指定自身可见的交易的交易数据(即可见且已缓存的交易数据),这部分交易数据已经缓存于轻节点的缓存空间中,减少了同步的数据量,也可减轻全节点的数据同步压力。
本申请实施例提供的新的数据同步方案可由图3所示的区块链网络30实现,区块链网络30可以包括一个或多个轻节点301,以及一个或多个全节点302,任一个轻节点301可以接入一个或多个客户端303,轻节点301、全节点302以及客户端303之间可以进行相互通信。
其中,任一个轻节点可以是指终端或服务器,任一个全节点可以是指终端或服务器,任一个客户端可以是指终端、软件或应用程序。此处所提及的终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。此处所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可以理解的是,本申请实施例描述的区块链网络30是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着区块链网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。另外,本申请实施例中所提及的多个所指示的数量为两个或两个以上,在此说明。
下面结合图4至图8所示实施例对本申请实施例提供的新的数据同步方案进行更为详细地介绍。
本申请实施例提出一种基于区块链网络的数据处理方法,该数据处理方法主要介绍全节点一侧的数据同步流程,该数据处理方法具体可以由前述所提及的任一个全节点(以下均表示为目标全节点)执行。如图4所示,该基于区块链的数据处理方法可以包括以下步骤S401至步骤S405:
S401,接收区块链网络中的目标轻节点发送的数据同步请求。
目标全节点可以接收目标轻节点发送的数据同步请求,目标全节点是区块链网络中的任一个全节点,目标轻节点是区块链网络中的任一个轻节点。
S402,响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希。
在接收到区块链网络中的目标轻节点发送的数据同步请求之后,目标全节点可以响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希;其中,目标轻节点的可见交易是指允许目标轻节点访问的交易,目标轻节点的可见交易的数量可以为一个或多个。
在区块链中查找目标轻节点的可见交易的交易哈希,可以是指在区块链的指定区块中查找可见交易的交易哈希。其中,指定区块可以包括:目标轻节点请求同步的目标区块高度在区块链中对应的目标区块,或者可以包括:位于目标轻节点已同步的最高区块高度与区块链的最高区块高度之间(包含区块链的最高区块高度在内)的所有未同步区块高度在区块链中对应的目标区块。下面分别对这两种情况进行介绍:
(1)指定区块可以包括:目标轻节点请求同步的目标区块高度在区块链中对应的目标区块。任一个区块的区块高度是指该区块在区块链中的位置,目标区块高度是指在区块链中排列于目标轻节点已同步的最高区块高度对应区块的后一个区块的区块高度,即目标区块高度可以等于目标轻节点已同步的最高区块高度加1。在此方式中,数据同步请求中可以包括目标轻节点请求同步的目标区块高度和目标轻节点的节点标识,区块链网络中任一个轻节点的节点标识可以唯一标识一个轻节点,并且每个轻节点的节点标识和各个轻节点的可见交易的交易标识关联存储,也就是说,在区块链中关联存储有目标轻节点的节点标识和目标轻节点的可见交易的交易标识,目标轻节点的节点标识和目标轻节点的可见交易的交易标识具备关联关系,区块链中任一个交易标识可以唯一标识一个交易。
在区块链中查找目标轻节点的可见交易的交易哈希,具体可以包括:在区块链中确定目标区块高度对应的目标区块,然后在目标区块中查找目标轻节点的可见交易的交易哈希。其中,任一交易的交易标识与交易哈希在区块链中关联存储,因此可以通过可见交易的交易标识在区块链中查找其关联的可见交易的交易哈希。在目标区块中查找目标轻节点的可见交易的交易哈希,具体可以包括:根据目标轻节点的节点标识,从目标区块中获取与目标轻节点的节点标识关联的可见交易的交易标识;根据可见交易的交易标识,从目标区块中获取关联的目标轻节点的可见交易的交易哈希。举例来说,目标轻节点已同步的最高区块高度为3,则目标轻节点请求同步的目标区块高度为4,即目标全节点从目标区块高度为4的目标区块中查找目标轻节点可见交易的交易哈希。通过这种方式,目标轻节点可以请求目标全节点按照区块链中各个区块的排列顺序依次对各个区块中可见且未缓存的交易数据进行同步,一方面可以保证一次同步的数据量不会太大,减轻目标全节点的数据同步压力,另一方面也可以避免同步时遗漏一个或多个区块的情况发生。
(2)指定区块可以包括:位于目标轻节点已同步的最高区块高度与区块链的最高区块高度之间(包含区块链的最高区块高度在内)的所有未同步区块高度在区块链中对应的目标区块。在此方式下,目标区块的数量可以为一个或多个,数据同步请求中可以包括所有未同步区块高度和目标轻节点的节点标识;在区块链中查找目标轻节点的可见交易的交易哈希,具体可以包括:在区块链中确定所有未同步区块高度对应的一个或多个目标区块,然后在各个目标区块中查找目标轻节点的可见交易的交易哈希。其中,各个目标区块中查找目标轻节点的可见交易的交易哈希,具体可以包括:根据目标轻节点的节点标识,从各个目标区块中获取与目标轻节点的节点标识关联的可见交易的交易标识;根据可见交易的交易标识,从各个目标区块中获取关联的目标轻节点的可见交易的交易哈希。举例来说,目标轻节点已同步的最高区块高度为3,区块链的最高区块高度为5,则目标轻节点可以请求目标全节点对未同步区块高度为3的目标区块和未同步区块高度为4的目标区块中可见且未缓存的交易数据进行同步。通过这种方式,目标轻节点一次可以请求目标全节点同步多个区块中可见且未缓存的交易数据,在减轻目标全节点的数据同步压力的同时提升数据同步效率。
S403,在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希。
在查找到目标轻节点的可见交易的交易哈希后,可以在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易。确定目标轻节点的未缓存交易的交易哈希是指基于目标轻节点的缓存空间中已缓存交易的交易哈希,对查找到的可见交易的交易哈希进行过滤的过程,过滤操作可以由目标轻节点执行,也可以由目标全节点执行,下面分别对这两种情况进行介绍:
(1)由目标轻节点执行过滤操作。在此方式中,在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,具体可以包括:目标全节点将可见交易的交易哈希发送至目标轻节点;目标轻节点基于目标轻节点的缓存空间中已缓存交易的交易哈希,对可见交易的交易哈希进行过滤,得到目标轻节点的未缓存交易的交易哈希,并将未缓存交易的交易哈希发送至目标全节点;目标全节点接收目标轻节点发送的未缓存交易的交易哈希。其中,目标轻节点基于目标轻节点的缓存空间中已缓存交易的交易哈希,对可见交易的交易哈希进行过滤,得到目标轻节点的未缓存交易的交易哈希的过程,可以理解为是将可见交易的交易哈希中存在的已缓存交易的交易哈希,从可见交易的交易哈希中删除的过程,删除剩下的可见交易的交易哈希就是未缓存交易的交易哈希。举例来说,查找到的目标轻节点的可见交易的交易哈希组成集合H,目标轻节点的缓存空间中存在于集合H中的已缓存交易的交易哈希组成集合H1,集合H与集合H1的差集H2中的交易哈希就是未缓存交易的交易哈希。通过这种方式,在目标轻节点的可见交易的交易哈希中过滤掉已缓存交易的交易哈希的过程由目标轻节点执行,目标轻节点可以分担目标全节点的数据同步压力,从而可以减轻目标全节点的数据同步压力;并且,在确定未缓存交易的过程中,目标轻节点与目标全节点之间传输的是可见交易的交易哈希而不是可见交易的交易数据,通过减少传输的数据量的方式来减轻目标全节点的数据同步压力。
(2)由目标全节点执行过滤操作。在此方式下,数据同步请求中还可以包括目标轻节点的缓存空间中已缓存交易的交易哈希,在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,具体可以包括:目标全节点基于数据同步请求包含的目标轻节点的缓存空间中已缓存交易的交易哈希,对可见交易的交易哈希进行过滤。需要说明的是,目标全节点基于目标轻节点的缓存空间中已缓存交易的交易哈希,对可见交易的交易哈希进行过滤的过程,与目标轻节点基于目标轻节点的缓存空间中已缓存交易的交易哈希,对可见交易的交易哈希进行过滤的过程是相同的,在此不再赘述。相比于由目标轻节点执行过滤操作的方案,由目标全节点执行过滤操作的方案可以减少目标全节点与目标轻节点之间的数据往来次数。
S404,根据未缓存交易的交易哈希,从区块链中获取未缓存交易的交易数据。
由于任一交易的交易哈希与交易数据在区块链中是关联存储的,因此在确定未缓存交易的交易哈希之后,目标全节点可以根据未缓存交易的交易哈希,从区块链的指定区块中获取未缓存交易的交易数据。
S405,将未缓存交易的交易数据同步至目标轻节点中进行存储。
在获取到未缓存交易的交易数据之后,目标全节点可以将交易数据同步至目标轻节点中进行存储。需要说明的是,目标全节点还可以将指定区块的区块头同步至目标轻节点中进行存储。
由前述内容可知,当目标轻节点接收到来自客户端的目标交易的交易请求时,目标轻节点不执行请求的目标交易,而是将目标交易的交易请求转发至目标全节点,目标轻节点还可以将目标交易的交易请求缓存至缓存空间;目标全节点可以响应于交易请求,执行请求的目标交易,将目标交易的交易请求和生成的目标交易的交易执行结果上传至区块链中进行存储,还会将生成的交易执行结果返回目标轻节点,交易执行结果中可以包含目标交易的交易哈希,目标交易的交易哈希可以是对目标交易的交易请求进行哈希计算得到的,哈希算法可以包括但不限于:MD4算法、MD5算法、SHA1算法、SHA256算法、SHA512算法等等;目标轻节点根据目标交易的交易请求和目标交易的交易执行结果生成目标交易的交易数据,并将目标交易的交易数据缓存至目标轻节点的缓存空间中,即目标交易的交易数据是目标轻节点的缓存空间中一个已缓存交易的交易数据,然后可以将目标交易的交易执行结果转发至发起交易请求的客户端。除此之外,目标轻节点还可以设置目标交易的可见轻节点,并将目标交易的可见轻节点的节点标识发送至目标全节点,可见轻节点是指目标轻节点设置的区块链网络中允许访问目标交易的轻节点,可见轻节点可以包括目标轻节点自身和区块链网络中除了目标轻节点之外的允许访问目标交易的轻节点;目标全节点可以接收目标轻节点发送的可见轻节点的节点标识,建立可见轻节点的节点标识与目标交易的交易标识之间的关联关系,然后将可见轻节点的节点标识与目标交易的交易标识之间的关联关系上传至区块链中;也就是说,目标轻节点可以设置其转发交易的可见轻节点,目标全节点通过将可见交易的交易标识与可见轻节点的节点标识进行关联存储,则通过节点标识可以快速查找到与节点标识关联的可见交易的交易标识,进而可以快速查找到可见交易的交易哈希。
本申请实施例中,在目标全节点向目标轻节点同步目标轻节点可见交易的交易数据的过程中,目标全节点先确定目标轻节点未缓存交易的交易哈希,再根据未缓存交易的交易哈希,从目标全节点的存储空间存储的区块链中读取未缓存交易的交易数据,然后将未缓存交易的交易数据同步至目标轻节点中进行存储,而不是直接从目标全节点的存储空间存储的区块链中读取可见交易的交易数据后再进行过滤,这样不仅可以减少目标全节点读取存储的消耗,还可以减少同步时的数据量,使得区块链网络中支持接入更多的轻节点,本申请实施例的优势在未缓存交易的数量远小于已缓存交易的数量时更为明显。
本申请实施例提出一种基于区块链网络的数据处理方法,该数据处理方法主要介绍轻节点一侧的数据同步流程,该数据处理方法具体可以由前述所提及的任一个轻节点(以下均表示为目标轻节点)执行。如图5所示,该基于区块链的数据处理方法可以包括以下步骤S501至步骤S503:
S501,向区块链网络中的目标全节点发送数据同步请求。
S502,接收目标全节点同步的未缓存交易的交易数据。
步骤S501至步骤S502中,每当区块链网络中的区块链被更新后,全节点可以向轻节点发送更新后的区块链的最高区块高度,或者轻节点可以定期向全节点请求区块链的最高区块高度,例如轻节点可以每间隔10分钟向全节点请求一次区块链的最高区块高度,轻节点可以每间隔半小时向全节点请求一次区块链的最高区块高度。在目标轻节点获取到区块链的最高区块高度之后,目标轻节点可以对自身已同步的最高区块高度进行检查,若已同步的最高区块高度小于区块链的最高区块高度,则说明目标轻节点存在未同步的区块,目标轻节点可以向目标全节点发送数据同步请求,请求同步未同步的区块中目标轻节点可见且未缓存的交易数据;若已同步的最高区块高度等于区块链的最高区块高度,则说明目标轻节点已经同步了区块链的所有区块中的可见且未缓存交易的交易数据。当目标全节点接收到数据同步请求后,目标全节点可以响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希,并从可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,并根据未缓存交易的交易哈希返回未缓存交易的交易数据。目标轻节点可以接收目标全节点同步的未缓存交易的交易数据。其中,可见交易是指允许目标轻节点访问的交易,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易。
由前述内容可知,目标轻节点可以请求目标全节点从指定区块中同步可见且未缓存的交易数据,指定区块可以包括:目标轻节点请求同步的目标区块高度在区块链中对应的目标区块,或者可以包括:位于目标轻节点已同步的最高区块高度与区块链的最高区块高度之间(包含区块链的最高区块高度在内)的所有未同步区块高度在区块链中对应的目标区块。下面分别对这两种情况下的数据同步过程进行介绍:
(1)指定区块可以包括:目标轻节点请求同步的目标区块高度在区块链中对应的目标区块。在此方式中,目标轻节点可以获取目标轻节点请求同步的目标区块高度和区块链的最高区块高度,由前述内容可知,目标区块高度可以等于目标轻节点已同步的最高区块高度加1;然后在目标区块高度小于或等于区块链的最高区块高度时,目标轻节点可以根据目标区块高度生成数据同步请求,并将数据同步请求发送至目标全节点;目标全节点可以响应于数据同步请求将目标区块高度对应的目标区块中的目标轻节点的未缓存交易的交易数据同步至目标轻节点中;目标轻节点可以接收目标区块高度对应的目标区块中的未缓存交易的交易数据。
在目标轻节点接收目标区块高度对应的目标区块中的未缓存交易的交易数据之后,目标轻节点可以采用目标数值对目标区块高度进行更新,得到更新后的目标区块高度,更新后的目标区块高度可以等于目标区块高度加上目标数值(例如可以是1);若更新后的的目标区块高度小于或等于最高区块高度,则目标轻节点可以根据更新后的目标区块高度生成更新后的数据同步请求,并根据更新后的数据同步请求继续向目标全节点请求同步数据,直至更新后的目标区块高度大于最高区块高度为止。也就是说,目标轻节点可以从目标区块高度对应的目标区块开始请求目标全节点同步未缓存交易的交易数据,直至区块链的最高区块高度对应的区块为止,并且数据同步过程是按区块进行的,同步完一个区块中的未缓存交易的交易数据之后,继续同步该区块的后一个区块中的未缓存交易的交易数据。
如图6a所示的数据同步过程,目标轻节点已同步的最高区块高度h0为5(图6a中采用虚线填充的区块表示已同步区块),区块链的最高区块高度h2为8,则可以确定出目标轻节点请求同步的目标区块高度h1为6,目标轻节点可以请求目标全节点从h1=6的区块中同步未缓存交易的交易数据;在接收到目标全节点同步的h1=6的区块中的未缓存交易的交易数据之后,目标轻节点可以对目标区块高度h1进行更新,即h1=h1+1,目标轻节点可以请求目标全节点从h1=7的区块中同步未缓存交易的交易数据;以此类推,直至目标轻节点接收到目标全节点同步的h1=8的区块中的未缓存交易的交易数据为止。
(2)指定区块可以包括:位于目标轻节点已同步的最高区块高度与区块链的最高区块高度之间(包含区块链的最高区块高度在内)的所有未同步区块高度在区块链中对应的目标区块。在此方式中,目标轻节点可以获取目标轻节点已同步的最高区块高度和区块链的最高区块高度,然后在已同步的最高区块高度小于区块链的最高区块高度时,目标轻节点可以根据已同步的最高区块高度和区块链的最高区块高度,确定已同步的最高区块高度和区块链的最高区块高度之间的所有未同步区块高度;目标轻节点可以根据所有未同步区块高度生成数据同步请求,并将数据同步请求发送至目标全节点;目标全节点可以响应于数据同步请求将所有未同步区块高度对应的目标区块中的目标轻节点的未缓存交易的交易数据同步至目标轻节点中;目标轻节点可以接收所有未同步区块高度对应的目标区块中的未缓存交易的交易数据。也就是说,目标轻节点可以通过一次请求向目标全节点请求同步所有未同步的区块中的未缓存交易的交易数据。
如图6b所示的数据同步过程,目标轻节点已同步的最高区块高度h0为5(图6b中采用虚线填充的区块表示已同步区块),区块链的最高区块高度h2为8,则可以确定出目标轻节点未同步区块高度h3为6、7和8,目标轻节点可以请求目标全节点从h3=6、7、8的区块中同步未缓存交易的交易数据。
S503,对未缓存交易的交易数据进行存储。
在接收到目标全节点同步的未缓存交易的交易数据之后,目标轻节点可以对未缓存交易的交易数据进行存储,对未缓存交易的交易数据进行存储是指:将未缓存交易的交易数据存储至目标轻节点的存储空间(例如可以是硬盘)中;除了将未缓存交易的交易数据存储至目标轻节点的存储空间中,目标轻节点还可以将目标全节点同步的区块头存储至目标轻节点的存储空间中,将目标轻节点的缓存空间中已缓存交易的交易数据存储至目标轻节点的存储空间中。
之所以需要将目标轻节点的缓存空间中已缓存交易的交易数据存储至目标轻节点的存储空间中,是因为在满足清理条件时,目标轻节点可以对目标轻节点的缓存空间中已缓存交易的交易数据进行删除,如果未对已缓存交易的交易数据进行存储的话,缓存空间被清理后,已缓存交易的交易数据就丢失了;其中,缓存清理条件可以包括目标轻节点的缓存空间达到缓存上限(即前文中描述的目标轻节点的缓存空间满溢),或者到达缓存周期的结束时间点(即前文中描述的到达清理时间点),例如目标轻节点以一天作为缓存周期,每天的24时0分0秒对缓存空间进行一次缓存清理,即将每天的24时0分0秒作为缓存周期的结束时间点,删除目标轻节点的缓存空间中已缓存交易的交易数据。
由前述内容可知,当目标轻节点接收到来自客户端的目标交易的交易请求时,目标轻节点不执行请求的目标交易,而是将目标交易的交易请求转发至目标全节点,目标轻节点还可以将目标交易的交易请求缓存至缓存空间;目标全节点可以响应于交易请求,执行请求的目标交易,将目标交易的交易请求和生成的目标交易的交易执行结果上传至区块链中进行存储,还会将生成的交易执行结果返回目标轻节点,交易执行结果中可以包含目标交易的交易哈希,目标交易的交易哈希可以是对目标交易的交易请求进行哈希计算得到的;目标轻节点可以根据目标交易的交易请求和目标交易的交易执行结果生成目标交易的交易数据,并将目标交易的交易数据缓存至目标轻节点的缓存空间中,即目标交易的交易数据是目标轻节点的缓存空间中一个已缓存交易的交易数据,以便于在缓存空间中可以快速查找到已缓存交易的交易哈希,然后可以将目标交易的交易执行结果转发至发起交易请求的客户端。除此之外,目标轻节点还可以设置目标交易的可见轻节点,并将目标交易的可见轻节点的节点标识发送至目标全节点,可见轻节点是指目标轻节点设置的区块链网络中允许访问目标交易的轻节点,可见轻节点可以包括目标轻节点自身和区块链网络中除了目标轻节点之外的允许访问目标交易的轻节点;目标全节点可以将可见轻节点的节点标识与目标交易的交易标识关联存储至区块链中;也就是说,目标轻节点可以设置其转发交易的可见轻节点,目标全节点通过将可见交易的交易标识与可见轻节点的节点标识进行关联存储,则通过节点标识可以快速查找到与节点标识关联的可见交易的交易标识,进而可以快速查找到可见交易的交易哈希。
需要说明的是,本申请实施例提及的目标全节点将交易数据(例如前文提及根据目标交易的交易请求和目标交易的交易执行结果生成的交易数据等)上传至区块链中进行存储,是指目标全节点根据交易数据生成区块,将生成的区块添加至区块链的过程。生成区块链中的各个区块的过程可参见图6c,区块链所在的目标全节点在接收到输入信息(即交易数据)时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,上述公式中的SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在的目标全节点节点根据区块链网络中其他全节点的节点标识,将新生成的区块分别发送给其他全节点,由其他全节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中,其他全全节点可以从目标全节点中同步新生成的区块,轻节点可以从目标全节点中同步新生成的区块的区块头和新生成的区块中可见且未缓存交易的交易数据。
本申请实施例中,目标轻节点可以请求目标全节点一次同步一个未同步的区块中的未缓存交易的交易数据,这样可以减少同步时的数据量,从而可以减轻目标全节点的数据同步压力。目标轻节点还可以请求目标全节点一次同步所有未同步的区块中的未缓存交易的交易数据,这样可以减少同步次数,提升数据同步效率。
本申请实施例提出一种基于区块链网络的数据处理方法,该数据处理方法主要介绍全节点与轻节点之间交互的数据同步流程,该数据处理方法具体可以由前述所提及的任一个轻节点(以下均表示为目标轻节点)和任一个全节点(以下均表示为目标全节点)交互执行。如图7所示,该基于区块链的数据同步方案可以包括以下步骤S701至步骤S711:
S701,目标轻节点向目标全节点发送数据同步请求。
目标轻节点可以获取目标轻节点中已同步的最高区块高度和区块链的最高区块高度,当已同步的最高区块高度小于区块链的最高区块高度时,目标轻节点可以向目标全节点发送数据同步请求,请求目标全节点同步区块链的指定区块中的未缓存交易的交易数据。
当指定区块包括目标轻节点请求同步的目标区块高度对应的目标区块时,即当目标轻节点向目标全节点请求同步目标区块高度对应的目标区块中的未缓存交易的交易数据时,目标轻节点可以根据目标轻节点的节点标识和请求同步的目标区块高度生成数据同步请求,并将数据同步请求发送至目标全节点,目标区块高度可以等于已同步的最高区块高度加1。当指定区块包括目标轻节点的所有未同步的区块时,即当目标轻节点向目标全节点请求同步所有未同步的区块中的未缓存交易的交易数据时,目标轻节点可以根据目标轻节点的节点标识和所有未同步区块高度生成数据同步请求,并将数据同步请求发送至目标全节点。
S702,目标全节点响应于数据同步请求,根据指定区块高度从区块链中确定指定区块。
当指定区块包括目标轻节点请求同步的目标区块高度对应的目标区块时,即当目标轻节点向目标全节点请求同步目标区块高度对应的目标区块中的未缓存交易的交易数据时,指定区块高度是指目标区块高度,目标全节点可以根据目标区块高度,从区块链中确定目标区块高度对应的目标区块。当指定区块包括目标轻节点的所有未同步的区块时,即当目标轻节点向目标全节点请求同步所有未同步的区块中的未缓存交易的交易数据时,指定区块高度是指所有未同步区块高度,目标全节点可以根据所有未同步区块高区,从区块链中确定所有未同步的区块。
S703,目标全节点根据目标轻节点的节点标识,从指定区块中查找目标轻节点的可见交易的交易标识。
S704,目标全节点根据可见交易的交易标识,从指定区块中获取可见交易的交易哈希。
S705,目标全节点将可见交易的交易哈希发送至目标轻节点。
S706,目标轻节点获取缓存空间中已缓存交易的交易哈希。
S707,目标轻节点基于目标轻节点的缓存空间中已缓存交易的交易哈希,对可见交易的交易哈希进行过滤,得到目标轻节点的未缓存交易的交易哈希。
S708,目标轻节点将未缓存交易的交易哈希发送至目标全节点。
S709,目标全节点根据未缓存交易的交易哈希,从指定区块中获取未缓存交易的交易数据。
S710,目标全节点将未缓存交易的交易数据同步至目标轻节点。
目标全节点将未缓存交易的交易数据同步至目标轻节点的同时,还可以将指定区块的区块头一起同步至目标轻节点。
S711,目标轻节点对未缓存交易的交易数据进行存储。
目标轻节点可以将未缓存交易的交易数据、指定区块的区块头以及缓存空间中已缓存交易的交易数据存储至目标轻节点的存储空间中。
在指定区块包括目标轻节点请求同步的目标区块高度对应的目标区块时,在完成一次数据同步之后,目标轻节点的已同步的最高区块高度将更新,更新后的已同步的最高区块高度可以等于更新前的已同步的最高区块高度加1,若更新后的已同步的最高区块高度仍然小于区块链的最高区块高度,则目标全节点可以继续向目标全节点发送数据同步请求,直至更新后的已同步的最高区块高度等于区块链的最高区块高度为止。
本申请实施例中,在目标轻节点的可见交易的交易哈希中过滤掉已缓存交易的交易哈希的过程由目标轻节点执行,目标轻节点可以分担目标全节点的数据同步压力,从而可以减轻目标全节点的数据同步压力;并且,在确定未缓存交易的过程中,目标轻节点与目标全节点之间传输的是可见交易的交易哈希而不是可见交易的交易数据,通过减少传输的数据量的方式来减轻目标全节点的数据同步压力。
本申请实施例提出一种基于区块链网络的数据处理方法,该数据处理方法主要介绍全节点与轻节点之间交互的数据同步流程,该数据处理方法具体可以由前述所提及的任一个轻节点(以下均表示为目标轻节点)和任一个全节点(以下均表示为目标全节点)交互执行。如图8所示,该基于区块链的数据处理方法可以包括以下步骤S501至步骤S503:
S801,目标轻节点向目标全节点发送数据同步请求。
目标轻节点可以获取目标轻节点中已同步的最高区块高度和区块链的最高区块高度,当已同步的最高区块高度小于区块链的最高区块高度时,目标轻节点可以获取缓存空间中已缓存交易的交易哈希,并根据目标轻节点的节点标识、目标轻节点请求同步的指定区块高度、已缓存交易的交易哈希生成数据同步请求,并将数据同步请求发送至目标全节点。
其中,当指定区块包括目标轻节点请求同步的目标区块高度对应的目标区块时,即当目标轻节点向目标全节点请求同步目标区块高度对应的目标区块中的未缓存交易的交易数据时,指定区块高度是指目标区块高度,即目标轻节点可以根据目标轻节点的节点标识、目标轻节点请求同步的目标区块高度、已缓存交易的交易哈希生成数据同步请求。当指定区块包括目标轻节点的所有未同步区块时,即当目标轻节点向目标全节点请求同步所有未同步区块中的未缓存交易的交易数据时,指定区块高度是指所有未同步区块高度,即目标轻节点可以根据目标轻节点的节点标识、所有未同步区块高度、已缓存交易的交易哈希生成数据同步请求。
S802,目标全节点响应于数据同步请求,根据指定区块高度从区块链中确定指定区块。
S803,目标全节点根据目标轻节点的节点标识,从指定区块中查找目标轻节点的可见交易的交易标识。
S804,目标全节点根据可见交易的交易标识,从指定区块中获取可见交易的交易哈希。
S805,目标全节点基于已缓存交易的交易哈希,对可见交易的交易哈希进行过滤,得到目标轻节点的未缓存交易的交易哈希。
S806,目标全节点根据未缓存交易的交易哈希,从指定区块中获取未缓存交易的交易数据。
S807,目标全节点将未缓存交易的交易数据同步至目标轻节点。
目标全节点将未缓存交易的交易数据同步至目标轻节点的同时,还可以将指定区块的区块头一起同步至目标轻节点。
S808,目标轻节点对未缓存交易的交易数据进行存储。
目标轻节点可以将未缓存交易的交易数据、指定区块的区块头以及缓存空间中已缓存交易的交易数据存储至目标轻节点的存储空间中。
在指定区块包括目标轻节点请求同步的目标区块高度对应的目标区块时,在完成一次数据同步之后,目标轻节点的已同步的最高区块高度将更新,更新后的已同步的最高区块高度可以等于更新前的已同步的最高区块高度加1,若更新后的已同步的最高区块高度仍然小于区块链的最高区块高度,则目标全节点可以继续向目标全节点发送数据同步请求,直至更新后的已同步的最高区块高度等于区块链的最高区块高度为止。
相比于图7所示实施例中由目标轻节点基于已缓存交易的交易哈希,对可见交易的交易哈希进行过滤的方案,本申请实施例由目标全节点执行过滤操作,这样可以减少目标全节点与目标轻节点之间的数据往来次数(即目标全节点不需要将可见交易的交易哈希发送至目标轻节点,目标轻节点不需要将未缓存交易的交易哈希发送至目标全节点),从而也可以减轻目标全节点的数据同步压力。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图9,图9是本申请实施例提供的一种基于区块链网络的数据处理装置的结构示意图,在一个实施例中,该数据处理装置可以设置于本申请实施例提供的目标全节点中,该数据处理装置可以是运行于目标全节点中的一个计算机程序(包括程序代码),该数据处理装置可以用于执行图4所示的方法实施例中的相应步骤,或者可以用于执行图7或图8所示的方法实施例中目标全节点执行的步骤。请参见图9,该数据处理装置可以包括如下单元:
通信单元901,用于接收区块链网络中的目标轻节点发送的数据同步请求;
处理单元902,用于响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希,可见交易是指允许目标轻节点访问的交易;
处理单元902,还用于在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易;
处理单元902,还用于根据未缓存交易的交易哈希,从区块链中获取未缓存交易的交易数据;
通信单元901,还用于将未缓存交易的交易数据同步至目标轻节点中进行存储。
在一种实现方式中,处理单元902,用于在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希时,具体用于执行如下步骤:
将所述可见交易的交易哈希发送至所述目标轻节点;所述目标轻节点基于所述目标轻节点的缓存空间中已缓存交易的交易哈希,对所述可见交易的交易哈希进行过滤,得到所述目标轻节点的未缓存交易的交易哈希,并将所述未缓存交易的交易哈希发送至所述目标全节点;
接收所述目标轻节点发送的所述未缓存交易的交易哈希。
在一种实现方式中,数据同步请求中包括目标轻节点的缓存空间中已缓存交易的交易哈希;处理单元902,用于在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希时,具体用于执行如下步骤:
基于已缓存交易的交易哈希,对可见交易的交易哈希进行过滤,得到目标轻节点的未缓存交易的交易哈希。
在一种实现方式中,数据同步请求中包括目标轻节点请求同步的目标区块高度;
处理单元902,用于在区块链中查找目标轻节点的可见交易的交易哈希时,具体用于执行如下步骤:在区块链中确定目标区块高度对应的目标区块;在目标区块中查找目标轻节点的可见交易的交易哈希;
处理单元902,用于根据未缓存交易的交易哈希,从区块链中获取未缓存交易的交易数据时,具体用于执行如下步骤:根据未缓存交易的交易哈希,从目标区块中获取未缓存交易的交易数据。
在一种实现方式中,数据同步请求中包括目标轻节点的节点标识,目标轻节点的节点标识与可见交易的交易标识具有关联关系;处理单元902,用于在区块链中查找目标轻节点的可见交易的交易哈希时,具体用于执行如下步骤:
根据目标轻节点的节点标识,从区块链中获取与目标轻节点的节点标识关联的可见交易的交易标识;
根据可见交易的交易标识,从区块链中获取目标轻节点的可见交易的交易哈希。
在一种实现方式中,通信单元901,还用于执行如下步骤:接收目标轻节点发送的可见轻节点的节点标识,可见轻节点是目标轻节点设置的区块链网络中允许访问目标交易的轻节点;
处理单元902,还用于执行如下步骤:建立可见轻节点的节点标识与目标交易的交易标识之间的关联关系;将可见轻节点的节点标识与目标交易的交易标识之间的关联关系上传至区块链中。
根据本申请的另一个实施例,图9所示的基于区块链网络的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于区块链网络的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图4所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),或执行如图7或图8所示的相应方法所涉及的目标全节点的各步骤的计算机程序(包括程序代码)来构造如图9中所示的基于区块链网络的数据处理装置,以及来实现本申请实施例的基于区块链网络的数据处理方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本申请实施例中,当全节点接收到轻节点发送的数据同步请求时,可以向轻节点同步轻节点可见且未缓存交易的交易数据,轻节点可以对同步的交易数据进行存储;其中,可见且未缓存交易是指允许轻节点访问、且轻节点的缓存空间中未缓存的交易。一方面,本申请实施例中的轻节点支持存储交易数据,轻节点将全节点同步的可见且未缓存交易的交易数据进行存储后,当轻节点需要交易数据时可以直接在轻节点的本地查找获得,无需再次请求全节点,可以减轻全节点的数据同步压力;另一方面,全节点向轻节点同步的是轻节点可见且未缓存交易的交易数据,过滤掉了轻节点的缓存空间中已缓存交易的交易数据,这样可以减少同步的数据量,也可以减轻全节点的数据同步压力。
在另一个实施例中,该数据处理装置可以设置于本申请实施例提供的目标全节点中,该数据处理装置可以是运行于目标全节点中的一个计算机程序(包括程序代码),该数据处理装置可以用于执行图5所示的方法实施例中的相应步骤,或者可以用于执行图7或图8所示的方法实施例中目标轻节点执行的步骤。请参见图9,该数据处理装置可以包括如下单元:
通信单元901,用于向区块链网络中的目标全节点发送数据同步请求;目标全节点响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希,并从可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,并根据未缓存交易的交易哈希返回未缓存交易的交易数据;可见交易是指允许目标轻节点访问的交易,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易;
通信单元901,还用于接收目标全节点同步的未缓存交易的交易数据;
处理单元902,用于对未缓存交易的交易数据进行存储。
在一种实现方式中,处理单元902,还用于执行如下步骤:获取目标轻节点请求同步的目标区块高度和区块链的最高区块高度;若目标区块高度小于或等于最高区块高度,则根据目标区块高度生成数据同步请求,并触发通信单元901执行向区块链网络中的目标节点发送数据同步请求的步骤;
其中,可见交易的交易哈希和未缓存交易的交易数据是目标全节点在目标区块高度对应的目标区块中获取的。
在一种实现方式中,处理单元902,还用于执行如下步骤:采用目标数值对目标区块高度进行更新,得到更新后的目标区块高度;
若更新后的目标区块高度小于或等于最高区块高度,则根据更新后的目标区块高度生成更新后的数据同步请求,并根据更新后的数据同步请求继续向目标全节点请求同步数据,直至更新后的目标区块高度大于最高区块高度为止。
在一种实现方式中,通信单元901,还用于执行如下步骤:接收客户端发送的目标交易的交易请求,并将目标交易的交易请求转发至目标全节点;目标全节点响应于交易请求,执行目标交易,生成并返回目标交易的交易执行结果,交易执行结果包括目标交易的交易哈希;接收目标交易的交易执行结果;
处理单元902,还用于执行如下步骤:根据目标交易的交易执行结果和目标交易的交易请求生成目标交易的交易数据,将目标交易的交易数据缓存至目标轻节点的缓存空间中;
通信单元901,还用于执行如下步骤:将目标交易的交易执行结果转发至客户端。
在一种实现方式中,处理单元902,还用于执行如下步骤:在满足缓存清理条件时,对目标轻节点的缓存空间中已缓存交易的交易数据进行删除;
其中,缓存清理条件包括:目标轻节点的缓存空间达到缓存上限、到达缓存周期的结束时间点。
根据本申请的另一个实施例,图9所示的基于区块链网络的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于区块链网络的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图5所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),或执行如图7或图8所示的相应方法所涉及的目标轻节点的各步骤的计算机程序(包括程序代码)来构造如图9中所示的基于区块链网络的数据处理装置,以及来实现本申请实施例的基于区块链网络的数据处理方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本申请实施例中,轻节点可以向全节点发送数据同步请求,请求从全节点中同步轻节点可见且未缓存交易的交易数据,然后轻节点可以对全节点同步的交易数据进行存储;其中,可见且未缓存交易是指允许轻节点访问、且轻节点的缓存空间中未缓存的交易。一方面,本申请实施例中的轻节点支持存储交易数据,轻节点将全节点同步的可见且未缓存交易的交易数据进行存储后,当轻节点需要交易数据时可以直接在轻节点的本地查找获得,无需再次请求全节点,可以减轻全节点的数据同步压力;另一方面,全节点向轻节点同步的是轻节点可见且未缓存交易的交易数据,过滤掉了轻节点的缓存空间中已缓存交易的交易数据,这样可以减少同步的数据量,也可以减轻全节点的数据同步压力。
基于上述方法以及装置实施例,本申请实施例提供了一种基于区块链网络的计算机设备,该计算机设备可以是前述所提及的目标全节点或目标轻节点。请参见图10,图10是本申请实施例提供的一种基于区块链网络的计算机设备的结构示意图。图10所示的计算机设备至少包括处理器1001、输入接口1002、输出接口1003以及计算机可读存储介质1004。其中,处理器1001、输入接口1002、输出接口1003以及计算机可读存储介质1004可通过总线或其他方式连接。
当计算机设备是目标全节点时,输入接口1002可以用于接收数据同步请求,接收未缓存交易的交易哈希等等;输出接口1003可以用于发送可见交易的交易哈希,发送未缓存交易的交易数据等等。当计算机设备是目标轻节点时,输入接口1002可以用于接收可见交易的交易哈希,接收未缓存交易的交易数据等等;输出接口1003可以用于发送数据同步请求,发送未缓存交易的交易哈希等等。
计算机可读存储介质1004可以存储在计算机设备的存储器中,计算机可读存储介质1004用于存储计算机程序,计算机程序包括计算机指令,处理器1001用于执行计算机可读存储介质1004存储的程序指令。处理器1001(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(Non-VolatileMemory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一个实施例中,可由处理器1001加载并执行计算机可读存储介质1004中存放的一条或多条计算机指令,以实现上述有关图4所示的基于区块链网络的数据处理方法的相应步骤,或实现上述有关图7或图8所示的基于区块链网络的数据处理方法中目标全节点的相应步骤。具体实现中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行如下步骤:
接收区块链网络中的目标轻节点发送的数据同步请求;
响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希,可见交易是指允许目标轻节点访问的交易;
在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易;
根据未缓存交易的交易哈希,从区块链中获取未缓存交易的交易数据;
将未缓存交易的交易数据同步至目标轻节点中进行存储。
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希时,具体用于执行如下步骤:
将所述可见交易的交易哈希发送至所述目标轻节点;所述目标轻节点基于所述目标轻节点的缓存空间中已缓存交易的交易哈希,对所述可见交易的交易哈希进行过滤,得到所述目标轻节点的未缓存交易的交易哈希,并将所述未缓存交易的交易哈希发送至所述目标全节点;
接收所述目标轻节点发送的所述未缓存交易的交易哈希。
在一种实现方式中,数据同步请求中包括目标轻节点的缓存空间中已缓存交易的交易哈希;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行在可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希时,具体用于执行如下步骤:
基于已缓存交易的交易哈希,对可见交易的交易哈希进行过滤,得到目标轻节点的未缓存交易的交易哈希。
在一种实现方式中,数据同步请求中包括目标轻节点请求同步的目标区块高度;
计算机可读存储介质1004中的计算机指令由处理器1001加载并执行在区块链中查找目标轻节点的可见交易的交易哈希时,具体用于执行如下步骤:在区块链中确定目标区块高度对应的目标区块;在目标区块中查找目标轻节点的可见交易的交易哈希;
计算机可读存储介质1004中的计算机指令由处理器1001加载并执行根据未缓存交易的交易哈希,从区块链中获取未缓存交易的交易数据时,具体用于执行如下步骤:根据未缓存交易的交易哈希,从目标区块中获取未缓存交易的交易数据。
在一种实现方式中,数据同步请求中包括目标轻节点的节点标识,目标轻节点的节点标识与可见交易的交易标识具有关联关系;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行在区块链中查找目标轻节点的可见交易的交易哈希时,具体用于执行如下步骤:
根据目标轻节点的节点标识,从区块链中获取与目标轻节点的节点标识关联的可见交易的交易标识;
根据可见交易的交易标识,从区块链中获取目标轻节点的可见交易的交易哈希。
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并还用于执行如下步骤:
接收目标轻节点发送的可见轻节点的节点标识,可见轻节点是目标轻节点设置的区块链网络中允许访问目标交易的轻节点;
建立可见轻节点的节点标识与目标交易的交易标识之间的关联关系;将可见轻节点的节点标识与目标交易的交易标识之间的关联关系上传至区块链中。
本申请实施例中,当全节点接收到轻节点发送的数据同步请求时,可以向轻节点同步轻节点可见且未缓存交易的交易数据,轻节点可以对同步的交易数据进行存储;其中,可见且未缓存交易是指允许轻节点访问、且轻节点的缓存空间中未缓存的交易。一方面,本申请实施例中的轻节点支持存储交易数据,轻节点将全节点同步的可见且未缓存交易的交易数据进行存储后,当轻节点需要交易数据时可以直接在轻节点的本地查找获得,无需再次请求全节点,可以减轻全节点的数据同步压力;另一方面,全节点向轻节点同步的是轻节点可见且未缓存交易的交易数据,过滤掉了轻节点的缓存空间中已缓存交易的交易数据,这样可以减少同步的数据量,也可以减轻全节点的数据同步压力。
在另一个实施例中,可由处理器1001加载并执行计算机可读存储介质1004中存放的一条或多条计算机指令,以实现上述有关图5所示的基于区块链网络的数据处理方法的相应步骤,或实现上述有关图7或图8所示的基于区块链网络的数据处理方法中目标轻节点的相应步骤。具体实现中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行如下步骤:
向区块链网络中的目标全节点发送数据同步请求;目标全节点响应于数据同步请求,在区块链中查找目标轻节点的可见交易的交易哈希,并从可见交易的交易哈希中确定目标轻节点的未缓存交易的交易哈希,并根据未缓存交易的交易哈希返回未缓存交易的交易数据;可见交易是指允许目标轻节点访问的交易,未缓存交易是指未缓存至目标轻节点的缓存空间的可见交易;
接收目标全节点同步的未缓存交易的交易数据;
对未缓存交易的交易数据进行存储。
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并还用于执行如下步骤:
获取目标轻节点请求同步的目标区块高度和区块链的最高区块高度;
若目标区块高度小于或等于最高区块高度,则根据目标区块高度生成数据同步请求,并触发执行向区块链网络中的目标节点发送数据同步请求的步骤;
其中,可见交易的交易哈希和未缓存交易的交易数据是目标全节点在目标区块高度对应的目标区块中获取的。
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并还用于执行如下步骤:
采用目标数值对目标区块高度进行更新,得到更新后的目标区块高度;
若更新后的目标区块高度小于或等于最高区块高度,则根据更新后的目标区块高度生成更新后的数据同步请求,并根据更新后的数据同步请求继续向目标全节点请求同步数据,直至更新后的目标区块高度大于最高区块高度为止。
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并还用于执行如下步骤:
接收客户端发送的目标交易的交易请求,并将目标交易的交易请求转发至目标全节点;目标全节点响应于交易请求,执行目标交易,生成并返回目标交易的交易执行结果,交易执行结果包括目标交易的交易哈希;接收目标交易的交易执行结果;
根据目标交易的交易执行结果和目标交易的交易请求生成目标交易的交易数据,将目标交易的交易数据缓存至目标轻节点的缓存空间中;
将目标交易的交易执行结果转发至客户端。
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并还用于执行如下步骤:在满足缓存清理条件时,对目标轻节点的缓存空间中已缓存交易的交易数据进行删除;
其中,缓存清理条件包括:目标轻节点的缓存空间达到缓存上限、到达缓存周期的结束时间点。
本申请实施例中,轻节点可以向全节点发送数据同步请求,请求从全节点中同步轻节点可见且未缓存交易的交易数据,然后轻节点可以对全节点同步的交易数据进行存储;其中,可见且未缓存交易是指允许轻节点访问、且轻节点的缓存空间中未缓存的交易。一方面,本申请实施例中的轻节点支持存储交易数据,轻节点将全节点同步的可见且未缓存交易的交易数据进行存储后,当轻节点需要交易数据时可以直接在轻节点的本地查找获得,无需再次请求全节点,可以减轻全节点的数据同步压力;另一方面,全节点向轻节点同步的是轻节点可见且未缓存交易的交易数据,过滤掉了轻节点的缓存空间中已缓存交易的交易数据,这样可以减少同步的数据量,也可以减轻全节点的数据同步压力。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选方式中提供的基于区块链的数据处理方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种基于区块链网络的数据处理方法,其特征在于,所述区块链网络包括多个节点,所述节点包括轻节点或全节点,所述方法由所述区块链网络中的目标全节点执行;所述方法包括:
接收所述区块链网络中的目标轻节点发送的数据同步请求;
响应于所述数据同步请求,在区块链中查找所述目标轻节点的可见交易的交易哈希,所述可见交易是指允许所述目标轻节点访问的交易;
在所述可见交易的交易哈希中确定所述目标轻节点的未缓存交易的交易哈希,所述未缓存交易是指未缓存至所述目标轻节点的缓存空间的可见交易;
根据所述未缓存交易的交易哈希,从所述区块链中获取所述未缓存交易的交易数据,并将所述未缓存交易的交易数据同步至所述目标轻节点中进行存储。
2.如权利要求1所述的方法,其特征在于,所述在所述可见交易的交易哈希中确定所述目标轻节点的未缓存交易的交易哈希,包括:
将所述可见交易的交易哈希发送至所述目标轻节点;所述目标轻节点基于所述目标轻节点的缓存空间中已缓存交易的交易哈希,对所述可见交易的交易哈希进行过滤,得到所述目标轻节点的未缓存交易的交易哈希,并将所述未缓存交易的交易哈希发送至所述目标全节点;
接收所述目标轻节点发送的所述未缓存交易的交易哈希。
3.如权利要求1所述的方法,其特征在于,所述数据同步请求中包括所述目标轻节点的缓存空间中已缓存交易的交易哈希;所述在所述可见交易的交易哈希中确定所述目标轻节点的未缓存交易的交易哈希,包括:
基于所述已缓存交易的交易哈希,对所述可见交易的交易哈希进行过滤,得到所述目标轻节点的未缓存交易的交易哈希。
4.如权利要求1所述的方法,其特征在于,所述数据同步请求中包括所述目标轻节点请求同步的目标区块高度;
所述在区块链中查找所述目标轻节点的可见交易的交易哈希,包括:在所述区块链中确定所述目标区块高度对应的目标区块;在所述目标区块中查找所述目标轻节点的可见交易的交易哈希;
所述根据所述未缓存交易的交易哈希,从所述区块链中获取所述未缓存交易的交易数据,包括:根据所述未缓存交易的交易哈希,从所述目标区块中获取所述未缓存交易的交易数据。
5.如权利要求1所述的方法,其特征在于,所述数据同步请求中包括所述目标轻节点的节点标识,所述目标轻节点的节点标识与所述可见交易的交易标识具有关联关系;所述在区块链中查找所述目标轻节点的可见交易的交易哈希,包括:
根据所述目标轻节点的节点标识,从所述区块链中获取与所述目标轻节点的节点标识关联的所述可见交易的交易标识;
根据所述可见交易的交易标识,从所述区块链中获取所述目标轻节点的可见交易的交易哈希。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述目标轻节点发送的可见轻节点的节点标识,所述可见轻节点是所述目标轻节点设置的所述区块链网络中允许访问目标交易的轻节点;
建立所述可见轻节点的节点标识与所述目标交易的交易标识之间的关联关系;
将所述可见轻节点的节点标识与所述目标交易的交易标识之间的关联关系上传至所述区块链中。
7.一种基于区块链网络的数据处理方法,其特征在于,所述区块链网络包括多个节点,所述节点包括轻节点或全节点,所述方法由所述区块链网络中的目标轻节点执行;所述方法包括:
向所述区块链网络中的目标全节点发送数据同步请求;所述目标全节点响应于所述数据同步请求,在区块链中查找所述目标轻节点的可见交易的交易哈希,并从所述可见交易的交易哈希中确定所述目标轻节点的未缓存交易的交易哈希,并根据所述未缓存交易的交易哈希返回所述未缓存交易的交易数据;所述可见交易是指允许所述目标轻节点访问的交易,所述未缓存交易是指所述未缓存至所述目标轻节点的缓存空间的可见交易;
接收所述目标全节点同步的所述未缓存交易的交易数据,并对所述未缓存交易的交易数据进行存储。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
获取所述目标轻节点请求同步的目标区块高度和所述区块链的最高区块高度;
若所述目标区块高度小于或等于所述最高区块高度,则根据所述目标区块高度生成所述数据同步请求,并触发执行所述向所述区块链网络中的目标全节点发送数据同步请求的步骤;
其中,所述可见交易的交易哈希和所述未缓存交易的交易数据是所述目标全节点在所述目标区块高度对应的目标区块中获取的。
9.如权利要求8所述的方法,其特征在于,所述接收所述目标全节点同步的所述未缓存交易的交易数据之后,所述方法还包括:
采用目标数值对所述目标区块高度进行更新,得到更新后的目标区块高度;
若所述更新后的目标区块高度小于或等于所述最高区块高度,则根据所述更新后的目标区块高度生成更新后的数据同步请求,并根据所述更新后的数据同步请求继续向所述目标全节点请求同步数据,直至所述更新后的目标区块高度大于所述最高区块高度为止。
10.如权利要求7所述的方法,其特征在于,所述方法还包括:
接收客户端发送的目标交易的交易请求,并将所述目标交易的交易请求转发至所述目标全节点;所述目标全节点响应于所述交易请求,执行所述目标交易,生成并返回所述目标交易的交易执行结果,所述交易执行结果包括所述目标交易的交易哈希;
接收所述目标交易的交易执行结果;
根据所述目标交易的交易执行结果和所述目标交易的交易请求生成目标交易的交易数据,将所述目标交易的交易数据缓存至所述目标轻节点的缓存空间中,以及将所述目标交易的交易执行结果转发至所述客户端。
11.如权利要求7所述的方法,其特征在于,所述方法还包括:
在满足缓存清理条件时,对所述目标轻节点的缓存空间中已缓存交易的交易数据进行删除;
其中,所述缓存清理条件包括:所述目标轻节点的缓存空间达到缓存上限、到达缓存周期的结束时间点。
12.一种基于区块链网络的数据处理装置,其特征在于,所述区块链网络包括多个节点,所述节点包括轻节点或全节点,所述数据处理装置设置于所述区块链网络的目标全节点中;所述数据处理装置包括:
通信单元,用于接收所述区块链网络中的目标轻节点发送的数据同步请求;
处理单元,用于响应于所述数据同步请求,在区块链中查找所述目标轻节点的可见交易的交易哈希,所述可见交易是指允许所述目标轻节点访问的交易;
所述处理单元,还用于在所述可见交易的交易哈希中确定所述目标轻节点的未缓存交易的交易哈希,所述未缓存交易是指未缓存至所述目标轻节点的缓存空间的可见交易;
所述处理单元,还用于根据所述未缓存交易的交易哈希,从所述区块链中获取所述未缓存交易的交易数据;
所述通信单元,还用于将所述未缓存交易的交易数据同步至所述目标轻节点中进行存储。
13.一种基于区块链网络的数据处理装置,其特征在于,所述区块链网络包括多个节点,所述节点包括轻节点或全节点,所述数据处理装置设置于所述区块链网络的目标轻节点中;所述数据处理装置包括:
通信单元,用于向所述区块链网络中的目标全节点发送数据同步请求;所述目标全节点响应于所述数据同步请求,在区块链中查找所述目标轻节点的可见交易的交易哈希,并从所述可见交易的交易哈希中确定所述目标轻节点的未缓存交易的交易哈希,并根据所述未缓存交易的交易哈希返回所述未缓存交易的交易数据;所述可见交易是指允许所述目标轻节点访问的交易,所述未缓存交易是指所述未缓存至所述目标轻节点的缓存空间的可见交易;
所述通信单元,还用于接收所述目标全节点同步的所述未缓存交易的交易数据;
处理单元,用于对所述未缓存交易的交易数据进行存储。
14.一种基于区块链网络的计算机设备,其特征在于,所述区块链网络包括多个节点,所述节点包括轻节点或全节点,所述计算机设备是所述区块链网络中的目标全节点或目标轻节点;所述计算机设备包括:
处理器,适于实现计算机程序;
计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1至6任一项所述的基于区块链网络的数据处理方法,或者执行如权利要求7至11任一项所述的基于区块链网络的数据处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1至6任一项所述的基于区块链网络的数据处理方法,或者执行如权利要求7至11任一项所述的基于区块链网络的数据处理方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1至6任一项所述的基于区块链网络的数据处理方法,或者执行如权利要求7至11任一项所述的基于区块链网络的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111298408.8A CN116069854A (zh) | 2021-11-04 | 2021-11-04 | 一种基于区块链网络的数据处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111298408.8A CN116069854A (zh) | 2021-11-04 | 2021-11-04 | 一种基于区块链网络的数据处理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116069854A true CN116069854A (zh) | 2023-05-05 |
Family
ID=86168700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111298408.8A Pending CN116069854A (zh) | 2021-11-04 | 2021-11-04 | 一种基于区块链网络的数据处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069854A (zh) |
-
2021
- 2021-11-04 CN CN202111298408.8A patent/CN116069854A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547512B (zh) | 一种基于NoSQL的分布式Session管理的方法及装置 | |
CN102117309B (zh) | 一种数据缓存系统和数据查询方法 | |
US20230109969A1 (en) | Data processing method and apparatus based on node internal memory, device and medium | |
US11093484B2 (en) | Data management method and data management system | |
CN111506592B (zh) | 一种数据库的升级方法和装置 | |
CN107818111B (zh) | 一种缓存文件数据的方法、服务器及终端 | |
CN103875229A (zh) | 异步复制方法、装置与系统 | |
CN108829720B (zh) | 数据处理方法及装置 | |
CN103207867A (zh) | 处理数据块的方法、发起恢复操作的方法和节点 | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务系统 | |
CN109684273A (zh) | 一种快照管理方法、装置、设备及可读存储介质 | |
CN113010549A (zh) | 基于异地多活系统的数据处理方法、相关设备及存储介质 | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
CN118410076B (zh) | 指标的查询方法、统计方法、装置、设备和存储介质 | |
CN114003562B (zh) | 一种目录遍历方法、装置、设备及可读存储介质 | |
CN113703917B (zh) | 一种多集群资源数据处理系统与方法、非暂态存储介质 | |
JP6586174B2 (ja) | データベースシステム、トランザクション管理ノード、方法およびプログラム | |
CN112148745B (zh) | 一种多HBase集群访问方法、装置及存储介质 | |
EP4394619A1 (en) | Data processing method and apparatus based on blockchain, and device and readable storage medium | |
JP2005063374A (ja) | データ管理方法、データ管理装置、およびそのためのプログラムならびに記録媒体。 | |
CN116069854A (zh) | 一种基于区块链网络的数据处理方法及相关设备 | |
CN113448976B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN116955421A (zh) | 一种数据查询方法和相关装置 | |
CN113377714A (zh) | 基于分布式存储系统的目标器重命名方法及装置 | |
CN117010889A (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: 40086471 Country of ref document: HK |