CN115730936A - 区块链网络的数据处理方法、装置、计算机设备和介质 - Google Patents

区块链网络的数据处理方法、装置、计算机设备和介质 Download PDF

Info

Publication number
CN115730936A
CN115730936A CN202111014850.3A CN202111014850A CN115730936A CN 115730936 A CN115730936 A CN 115730936A CN 202111014850 A CN202111014850 A CN 202111014850A CN 115730936 A CN115730936 A CN 115730936A
Authority
CN
China
Prior art keywords
data
fragment
service
node
block chain
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
Application number
CN202111014850.3A
Other languages
English (en)
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 CN202111014850.3A priority Critical patent/CN115730936A/zh
Publication of CN115730936A publication Critical patent/CN115730936A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种区块链网络的数据处理方法、装置、计算机设备和介质,该方法包括:获取业务数据的M个分片数据及每个分片数据的传输区块链节点;业务数据的数据量大于数据量阈值;分片数据的传输区块链节点是从N个区块链节点除第一区块链节点外的N‑1个区块链节点选取的;将每个分片数据发送给对应的传输区块链节点;根据分片数据的传输区块链节点打包数据拉取信息;将数据拉取信息广播给N‑1个区块链节点;数据拉取信息用于指示N‑1个区块链节点相互拉取获取到的分片数据以还原出业务数据;在N个区块链节点之间对业务数据进行业务处理。采用本申请,可提高对业务数据进行业务处理的效率,该业务数据可以是终端所同步的消息等数据。

Description

区块链网络的数据处理方法、装置、计算机设备和介质
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链网络的数据处理方法、装置、计算机设备和介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
现有应用中,当需要对某个区块进行上链时,首先需要由主共识节点对该区块进行打包,继而由主共识节点将打包得到的区块同时发送给共识网络中的其他每一个共识节点,而当区块的数据量极其大时,主共识节点会以非常慢的速度向其他共识节点发送区块,更甚的,若区块链网络的网络带宽较小,很大可能还会导致区块发送失败,从而影响对区块进行业务处理的效率。
发明内容
本申请提供了一种区块链网络的数据处理方法、装置、计算机设备和介质,可以提高对业务数据进行传输的速度,进而提高对业务数据进行业务处理的效率。
本申请一方面提供了一种区块链网络的数据处理方法,该区块链网络包括N个区块链节点,N为正整数,该方法应用于第一区块链节点,第一区块链节点是N个区块链节点中的任一个区块链节点,该方法包括:
获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;业务数据的数据量大于数据量阈值;每个分片数据对应的传输区块链节点,是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取的;
将每个分片数据分别发送给对应的传输区块链节点;
根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息;
将数据拉取信息广播给N-1个区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;
在N个区块链节点之间对业务数据进行业务处理。
本申请一方面提供了一种区块链网络的数据处理方法,该区块链网络包括N个区块链节点,N为正整数,该方法应用于第二区块链节点,第二区块链节点是N个区块链节点中的任一个区块链节点,该方法包括:
获取第一区块链节点发送的数据拉取信息;第一区块链节点属于N个区块链节点,第一区块链节点和第二区块链节点是不同的区块链节点,数据拉取信息是由第一区块链节点根据业务数据的M个分片数据分别对应的传输区块链节点打包得到,业务数据的数据量大于数据量阈值,每个分片数据分别对应的传输区块链节点是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取得到,每个分片数据由第一区块链节点分别发送给对应的传输区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;
根据数据拉取信息获取M个分片数据,并还原得到业务数据;
在N个区块链节点之间对业务数据进行业务处理。
本申请一方面提供了一种区块链网络的数据处理装置,该区块链网络包括N个区块链节点,N为正整数,该装置应用于第一区块链节点,第一区块链节点是N个区块链节点中的任一个区块链节点,该装置包括:
获取模块,用于获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;业务数据的数据量大于数据量阈值;每个分片数据对应的传输区块链节点,是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取的;
发送模块,用于将每个分片数据分别发送给对应的传输区块链节点;
打包模块,用于根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息;
广播模块,用于将数据拉取信息广播给N-1个区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;
业务处理模块,用于在N个区块链节点之间对业务数据进行业务处理。
可选的,M个分片数据中的任一个分片数据表示为第i个分片数据,i为小于或等于M的正整数,第i个分片数据携带分片编号;第i个分片数据所携带的分片编号用于指示第i个分片数据在业务数据中的分片位置;
发送模块将每个分片数据分别发送给对应的传输区块链节点的方式,包括:
将携带分片编号的第i个分片数据发送给第i个分片数据对应的传输区块链节点。
可选的,打包模块根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息的方式,包括:
根据每个分片数据对应的传输区块链节点,分别生成每个分片数据的数据拉取子信息;
对每个分片数据的数据拉取子信息进行打包,得到数据拉取信息。
可选的,打包模块根据每个分片数据对应的传输区块链节点,分别生成每个分片数据的数据拉取子信息的方式,包括:
获取第i个分片数据对应的传输区块链节点的节点标识;
获取第i个分片数据的数据哈希值;
根据节点标识、第i个分片数据的数据哈希值和第i个分片数据携带的分片编号,生成第i个分片数据的数据拉取子信息。
可选的,上述装置还用于:
获取分片数据量阈值;
根据分片数据量阈值对业务数据进行分片,得到M个分片数据;一个分片数据的数据量小于或等于分片数据量阈值。
可选的,区块链网络为共识网络,N个区块链节点均为共识节点,第一区块链节点是N个区块链节点中的主共识节点,业务数据是由主共识节点打包的业务区块;
业务处理模块在N个区块链节点之间对业务数据进行业务处理的方式,包括:
在N个区块链节点之间对业务区块进行区块共识处理;
当业务区块共识通过时,对业务区块进行上链处理。
可选的,上述装置还用于:
获取业务客户端提交的数据存证请求;数据存证请求包含业务数据;
业务处理模块在N个区块链节点之间对业务数据进行业务处理的方式,包括:
在N个区块链节点之间对业务数据进行数据存证处理。
本申请一方面提供了一种区块链网络的数据处理装置,该区块链网络包括N个区块链节点,N为正整数,该装置应用于第二区块链节点,第二区块链节点是N个区块链节点中的任一个区块链节点,该装置包括:
信息获取模块,用于获取第一区块链节点发送的数据拉取信息;第一区块链节点属于N个区块链节点,第一区块链节点和第二区块链节点是不同的区块链节点,数据拉取信息是由第一区块链节点根据业务数据的M个分片数据分别对应的传输区块链节点打包得到,业务数据的数据量大于数据量阈值,每个分片数据分别对应的传输区块链节点是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取得到,每个分片数据由第一区块链节点分别发送给对应的传输区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;
还原模块,用于根据数据拉取信息获取M个分片数据,并还原得到业务数据;
数据处理模块,用于在N个区块链节点之间对业务数据进行业务处理。
可选的,M个分片数据中的任一个分片数据表示为第i个分片数据,i为小于或等于M的正整数;第i个分片数据携带分片编号;第i个分片数据所携带的分片编号用于指示第i个分片数据在业务数据中的分片位置;
上述装置还用于:
若第i个分片数据对应的传输区块链节点是第二区块链节点,则获取第三区块链节点根据数据拉取信息发送的第一数据拉取请求;第一数据拉取请求携带第i个分片数据的数据哈希值以及第i个分片数据的分片编号;第三区块链节点属于N-1个区块链节点中除第二区块链节点之外的区块链节点;
检索携带有第一数据拉取请求中的数据编号的第i个分片数据,并计算检索到的第i个分片数据的数据哈希值;
若所计算的数据哈希值与第一数据拉取请求中的数据哈希值相同,则将检索到的第i个分片数据发送至第三区块链节点。
可选的,M个分片数据中的任一个分片数据表示为第i个分片数据,i为小于或等于M的正整数;数据拉取信息包含第i个分片数据的数据哈希值、第i个分片数据对应的传输区块链节点的节点标识以及第i个分片数据的分片编号;第i个分片数据的分片编号用于指示第i个分片数据在业务数据中的分片位置;
上述还原模块根据数据拉取信息获取第i个分片数据的流程,包括:
若第i个分片数据对应的传输区块链节点不是第二区块链节点,则向节点标识所属区块链节点发送第二数据拉取请求;第二数据拉取请求包含第i个分片数据的数据哈希值和分片编号;
获取节点标识所属区块链节点根据第i个分片数据的数据哈希值和分片编号所返回的第i个分片数据。
可选的,上述装置还用于:
若未获取到节点标识所属区块链节点返回的第i个分片数据,则向第一区块链节点发送第三数据拉取请求;第三数据拉取请求包含第i个分片数据的数据哈希值和分片编号;
获取第一区块链节点根据第i个分片数据的数据哈希值和分片编号返回的第i个分片数据。
可选的,数据拉取信息包括业务数据的真实数据哈希值;
还原模块还原得到业务数据的方式,包括:
对根据数据拉取信息获取到的M个分片数据进行组装,得到初始业务数据;
计算初始业务数据的数据哈希值,作为验证数据哈希值;
若验证数据哈希值和真实数据哈希值相同,则将初始业务数据确定为还原得到的业务数据。
本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述一方面中的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
本申请可以获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;业务数据的数据量大于数据量阈值;每个分片数据对应的传输区块链节点,是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取的;将每个分片数据分别发送给对应的传输区块链节点;根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息;将数据拉取信息广播给N-1个区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;在N个区块链节点之间对业务数据进行业务处理。由此可见,本申请提出的方法若业务数据的数据量大于数据量阈值,则可以对业务数据进行分片后再传输,这提高了对业务数据进行传输的效率,并且由于无需向N-1个区块链节点同时传输业务数据,也减少了区块链网络中区块链节点之间的单点传输压力。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请提供的一种业务数据处理的场景示意图;
图3是本申请提供的一种区块链网络的数据处理方法的流程示意图;
图4是本申请提供的一种数据拉取信息的结构示意图;
图5是本申请提供的一种数据发送的场景示意图;
图6是本申请提供的一种数据拉取的场景示意图;
图7是本申请提供的一种区块链网络的数据处理方法的流程示意图;
图8是本申请提供的一种数据处理的场景示意图;
图9是本申请提供的一种区块链网络的数据处理装置的结构示意图;
图10是本申请提供的一种区块链网络的数据处理装置的结构示意图;
图11是本申请提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请涉及到区块链的相关技术。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链中包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链***中节点提交的记录数据。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括区块链网络,该区块链网络可以包括多个区块链节点,此处该多个区块链节点具体可以包括区块链节点100a、区块链节点101a、区块链节点102a、区块链节点103a、区块链节点104a以及区块链节点105a,该多个区块链之间具有网络连接,可以相互进行网络通信。其中,一个区块链节点可以由计算机设备构成,该计算机设备可以是终端设备也可以是服务器,具体不作限制。可以理解的是,此处以上述区块链网络包含6个区块链节点为例进行说明,区块链网络中的区块链节点的具体数量根据实际应用场景决定,对此不作限制。其中,区块链节点100a可以是用于获取业务数据,并用于将业务数据进行分片以传输给区块链网络中其他区块链节点的区块链节点,区块链节点100a所获取到的业务数据可以是终端设备所发送的,该终端设备可以包含业务客户端,该业务数据可以是由终端设备中的业务客户端所生成的。
图1中提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。
请一并参见图2,图2是本申请提供的一种业务数据处理的场景示意图。如图2所示,当业务数据的数据量大于数据量阈值时,区块链节点100a可以对该业务数据进行分片,得到业务数据的多个分片数据(如框100b所示),可以理解的是,业务数据由该多个分片数据组成。
进而,区块链节点100a可以从其他区块链节点(包括区块链节点101a、区块链节点102a、区块链节点103a、区块链节点104a以及区块链节点105a)中,选取业务数据的各个分片数据对应的传输区块链节点(如框101b所示),一个分片数据对应的传输区块链节点就为该分片数据需要发送至的区块链节点。
因此,如框102b所示,区块链节点100a可以将各个分片数据分别发送给对应的传输区块链节点,并可以将各个分片数据对应的数据拉取信息广播给其他各个区块链节点(包括区块链节点101a、区块链节点102a、区块链节点103a、区块链节点104a以及区块链节点105a),该数据拉取信息指示了各个分片数据的分片位置,该分片位置也就是分片数据被发送的位置,即该数据拉取信息指示了各个分片数据都被区块链节点100a发送给了哪个或者哪些区块链节点了。因此,区块链节点101a、区块链节点102a、区块链节点103a、区块链节点104a以及区块链节点105a之间可以根据数据拉取信息相互拉取各自获取到的分片数据(如框103b所示)。
进而,如框104b所示,区块链节点101a、区块链节点102a、区块链节点103a、区块链节点104a以及区块链节点105a就可以根据拉取到的分片数据和/或区块链节点100a发送的分片数据还原出业务数据,至此区块链网络中的全部区块链节点都获取到了业务数据,区块链网络中的各个区块链节点就可以一起对业务数据进行业务处理。例如若业务数据是待上链的业务区块,则对业务数据进行业务处理就可以指对业务区块进行共识处理。
采用本申请所提供的方法,若业务数据的数据量大于数据量阈值,则可以对业务数据进行分片后再传输,这提高了对业务数据进行传输的效率,并且由于区块链节点100a无需向其他各个区块链节点同时传输业务数据,也减少了区块链网络中区块链节点之间的单点传输压力。
请参见图3,图3是本申请提供的一种区块链网络的数据处理方法的流程示意图。如图3所示,该方法可以包括:
步骤S101,获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;业务数据的数据量大于数据量阈值;每个分片数据对应的传输区块链节点,是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取的。
可选的,区块链网络中可以包括N个区块链节点,本申请实施例中的执行主体可以是该N个区块链节点中的任意一个区块链节点,一个区块链节点可以由一个或者多个计算机设备构成,计算机设备可以是服务器也可以是终端设备。此处,将本申请实施例中作为执行主体的区块链节点称之为第一区块链节点。
第一区块链节点可以获取到业务数据的M个分片数据。其中,该M个分片数据可以是第一区块链节点在获取到业务数据,并检测到业务数据的数据量大于数据量阈值时,对业务数据进行分片得到的,该数据量阈值可以根据实际应用场景进行设定,例如该数据量阈值可以根据区块链网络的网络带宽决定,网络带宽越高,则数据量阈值就可以更大,反之,网络带宽越低,则数据量阈值就可以更小。例如,可以将业务数据分成M个部分的数据,即可得到业务数据的M个分片数据,一个部分的数据就对应一个分片数据,即业务数据包含该M个分片数据,只是将业务数据拆分为了M份。通过将业务数据分片后再传输可以减少单次数据传输量,进而减少区块链网络中的单点传输压力(如一对一的传输压力),具体可以参见下述内容描述。
可选的,若上述区块链网络是共识网络,上述N个区块链节点是N个共识节点,第一区块链节点就可以是该N个共识节点中的主共识节点,该主共识节点用于对区块进行打包和上链,因此,此时,业务数据就可以是由该主共识节点对若干交易数据打包得到的业务区块,即该业务区块可以包含若干(一个或者多个)交易数据。
可选的,上述区块链网络还可以是任意的区块链网络(可以是共识网络,也可以不是共识网络),第一区块链节点可以是任意一个区块链节点(可以是共识节点,也可以不是共识节点),此时业务数据可以是需要进行存证的任意数据。
可选的,第一区块链节点对业务数据进行分片的过程可以是:第一区块链节点可以获取分片数据量阈值,该分片数据量阈值即为一个分片数据能具有的最大数据量。进而,第一区块链节点可以根据该分片数据量阈值对业务数据进行分片,即可得到业务数据的M个分片数据,一个分片数据的数据量小于或者等于分片数据量阈值。例如,对业务数据进行分片的前M-1个分片数据的数据量都可以等于分片数据量阈值,对业务数据进行分片的最后一个分片数据的数据量可以小于或者等于分片数据量阈值。
更多的,第一区块链节点还可以获取到各个分片数据对应的传输区块链节点,一个分片数据对应的传输区块链节点即为第一区块链节点针对该分片数据的发送对象。其中,一个分片数据对应的传输区块链节点的数量可以是多个(如两个或者两个以上,但是也不能太多,如不能大于4个),即第一区块链节点通过将一个分片数据发送给多个区块链节点,可以使得该多个区块链节点之间对该分片数据起到一个备份的作用,若某个区块链节点发生故障获取不到该分片数据,其他区块链节点也可以获取到该分片数据。
其中,各个分片数据对应的传输区块链节点均可以是在N-1个区块链节点中所选取的,该N-1个区块链节点为N个区块链节点中除第一区块链节点之外的区块链节点。例如,M等于3,分片数据有3个,该3个分片数据依次为分片数据1、分片数据2和分片数据3,N-1个区块链节点具有编号顺序,N-1个区块链节点可以包括区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点5、区块链节点6、区块链节点7、区块链节点8,即N-1等于8。若一个分片数据选取两个传输区块链节点,那么,就可以按照该N-1个区块链节点的编号顺序,依次将区块链节点1和区块链节点2作为分片数据1的传输区块链节点,将区块链节点3和区块链节点4作为分片数据2的传输区块链节点,将区块链节点5和区块链节点6作为分片数据3的传输区块链节点。此处仅为举例说明的确定分片数据的传输区块链节点的一种方式,还可以是其他方式,对此不作限制。
可以理解的是,全部分片数据对应的全部传输区块链节点可以是N-1个区块链节点中的部分区块链节点或者全部区块链节点。
步骤S102,将每个分片数据分别发送给对应的传输区块链节点。
可选的,第一区块链节点可以将各个分片数据分别发送给各个分片数据对应的传输区块链节点。其中,第一区块链节点在对业务数据进行分片得到上述M个分片数据时,还可以为各个分片数据增加分片编号,即每个分片数据均可以携带分片编号,一个分片数据的分片编号用于指示该分片数据在业务数据中的分片位置。
例如,对业务数据进行分片得到的M个分片数据包括分片数据1、分片数据2和分片数据3,分片数据1可以携带分片编号1,分片数据2可以携带分片编号2,分片数据3可以携带分片编号3。分片编号1用于指示分片数据1是在业务数据中的第1个分片,位于业务数据的起始位置;分片编号2用于指示分片数据2是在业务数据中的第2个分片,位于业务数据的第1个分片(即分片数据1)的后面;分片编号3用于指示分片数据3是在业务数据中的第3个分片,位于业务数据的第2个分片(即分片数据2)的后面。
因此,第一区块链节点在将各个分片数据发送给对应的传输区块链节点时,可以是将携带分片编号的各个分片数据分别发送给对应的传输区块链节点。
例如,M个分片数据中的任一个分片数据可以表示为第i个分片数据,i为小于或者等于M的正整数。第一区块链节点可以将携带分片编号的第i个分片数据发送给第i个分片数据对应的传输区块链节点。
步骤S103,根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息。
可选的,第一区块链节点可以根据每个分片数据对应的传输区块链节点,分别生成每个分片数据的数据拉取子信息;对每个分片数据的数据拉取子信息进行打包,得到数据拉取信息:此处,以获取第i个分片数据的数据拉取子信息为例进行说明,第一区块链节点可以获取到第i个分片数据对应的传输区块链节点的节点标识,一个区块链节点可以具有一个节点标识,一个区块链节点的节点标识用于唯一标识该区块链节点。第一区块链节点还可以获取到第i个分片数据的数据哈希值,如可以对第i个分片数据进行哈希运算,即可得到第i个分片数据的数据哈希值。第一区块链节点可以根据第i个分片数据对应的传输区块链节点的节点标识、第i个分片数据的数据哈希值以及第i个分片数据携带的分片编号,生成第i个分片数据的数据拉取子信息,第i个分片数据的数据拉取子信息就包括第i个分片数据对应的传输区块链节点的节点标识、第i个分片数据的数据哈希值以及第i个分片数据携带的分片编号。
进而,第一区块链节点可以对各个分片数据的数据拉取子信息进行打包,就可以得到数据拉取信息,该数据拉取信息就包括各个分片数据的数据拉取子信息。更多的,数据拉取信息中还可以包括业务数据的数据哈希值,第一区块链节点可以对业务数据进行哈希运算,即可得到业务数据的数据哈希值。
请参见图4,图4是本申请提供的一种数据拉取信息的结构示意图。如图4所示,上述业务数据的M个分片数据可以包括分片数据1、分片数据2和分片数据3,因此,数据拉取信息中可以包括分片数据1的数据拉取子信息1、分片数据2的数据拉取子信息2、分片数据3的数据拉取子信息3以及业务数据的数据哈希值(可以简称哈希值)。
数据拉取子信息1可以包括分片数据1对应的传输区块链节点1的节点标识、分片数据1的数据哈希值(可以简称哈希值)以及分片数据1的分片编号;数据拉取子信息2可以包括分片数据2对应的传输区块链节点2的节点标识、分片数据2的数据哈希值(可以简称哈希值)以及分片数据2的分片编号;数据拉取子信息3可以包括分片数据3对应的传输区块链节点3的节点标识、分片数据3的数据哈希值(可以简称哈希值)以及分片数据3的分片编号。
步骤S104,将数据拉取信息广播给N-1个区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据。
可选的,第一区块链节点可以将数据拉取信息广播给N-1个区块链节点中的各个区块链节点,进而各个区块链节点可以根据该数据拉取信息相互拉取各自获取到的分片数据,即各个区块链节点可以向其他区块链节点拉取自己没有的分片数据,进而各个区块链节点可以根据拉取到的分片数据和/或第一区块链节点发送的分片数据还原得到上述业务数据,如对各个分片数据按照各个分片数据的分片编号进行组装,即可还原得到业务数据。
请参见图5,图5是本申请提供的一种数据发送的场景示意图。如图5所示,区块链网络可以是共识网络,上述N-1个区块链节点可以包括共识节点1、共识节点2、共识节点3、共识节点4、共识节点5和共识节点6,第一区块链节点可以是主共识节点,上述业务数据的M个分片数据可以包括分片数据1、分片数据2和分片数据3。分片数据1的传输区块链节点可以包括共识节点1和共识节点2;分片数据2的传输区块链节点可以包括共识节点3和共识节点4;分片数据3的传输区块链节点可以包括共识节点5和共识节点6。
因此,主共识节点可以将分片数据1发送给共识节点1和共识节点2,将分片数据2发送给共识节点3和共识节点4,将分片数据3发送给共识节点5和共识节点5。
请结合图5一并参见图6,图6是本申请提供的一种数据拉取的场景示意图。如图6所示,共识节点1获取到主共识节点发送的分片数据1,因此,共识节点1可以向共识节点3请求拉取分片数据2,并可以向共识节点6请求拉取分片数据3,进而共识节点1就获取到了所有3个分片数据(包括分片数据1、分片数据2和分片数据3),进而共识节点1通过该3个分片数据即可还原得到业务数据。
共识节点2获取到主共识节点发送的分片数据1,因此,共识节点2可以向共识节点4请求拉取分片数据2,并可以向共识节点6请求拉取分片数据3,进而共识节点2就获取到了所有3个分片数据(包括分片数据1、分片数据2和分片数据3),进而共识节点2通过该3个分片数据即可还原得到业务数据。
共识节点3获取到主共识节点发送的分片数据2,因此,共识节点3可以向共识节点1请求拉取分片数据1,并可以向共识节点6请求拉取分片数据3,进而共识节点3就获取到了所有3个分片数据(包括分片数据1、分片数据2和分片数据3),进而共识节点3通过该3个分片数据即可还原得到业务数据。
共识节点4获取到主共识节点发送的分片数据2,因此,共识节点4可以向共识节点2请求拉取分片数据1,并可以向共识节点5请求拉取分片数据3,进而共识节点4就获取到了所有3个分片数据(包括分片数据1、分片数据2和分片数据3),进而共识节点4通过该3个分片数据即可还原得到业务数据。
共识节点5获取到主共识节点发送的分片数据3,因此,共识节点5可以向共识节点2请求拉取分片数据1,并可以向共识节点4请求拉取分片数据2,进而共识节点5就获取到了所有3个分片数据(包括分片数据1、分片数据2和分片数据3),进而共识节点5通过该3个分片数据即可还原得到业务数据。
共识节点6获取到主共识节点发送的分片数据3,因此,共识节点6可以向共识节点1请求拉取分片数据1,并可以向共识节点4请求拉取分片数据2,进而共识节点6就获取到了所有3个分片数据(包括分片数据1、分片数据2和分片数据3),进而共识节点6通过该3个分片数据即可还原得到业务数据。
步骤S105,在N个区块链节点之间对业务数据进行业务处理。
可选的,通过上述过程,可以认为N个区块链节点都已经获取到业务数据了,进而就可以在N个区块链节点之间对业务数据进行业务处理。
例如,若业务数据是由上述主共识节点打包得到的业务区块,那么在N个区块链节点之间对业务数据进行业务处理可以指,在N个区块链节点之间对业务区块进行区块共识处理(即对业务区块进行共识),当对业务区块共识通过(如N个区块链节点中超过2/3的区块链节点同意对业务区块进行上链)时,就可以对业务区块进行上链处理,即将业务区块添加到区块链上。
再例如,第一区块链节点获取到的业务数据可以是由业务客户端发送的,如第一区块链节点可以获取到业务客户端发送的数据存证请求,该数据存证请求就可以包含该业务数据,该数据存证请求用于请求对业务数据进行存证,即该业务数据是指需要进行存证的任意数据。那么此时,在N个区块链节点之间对业务数据进行业务处理可以指,使得N个区块链节点在对该业务数据进行合法性验证后,各个区块链节点都可以将该业务数据进行上链,以达到对该业务数据进行存证的目的。
通过本申请提供的方法,当业务数据的数据量大于数据量阈值时,第一区块链节点就可以将该业务数据进行分片后再发送给区块链网络中其他部分或者全部的区块链节点,而无需将完整的业务数据都发送给其他每个区块链节点,减少了一对一进行数据传输的压力(即单点传输压力),提高了对业务数据进行发送的速度,提升了各个区块链节点获取业务数据的效率,进而提升了对业务数据进行业务处理的效率。
本申请可以获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;业务数据的数据量大于数据量阈值;每个分片数据对应的传输区块链节点,是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取的;将每个分片数据分别发送给对应的传输区块链节点;根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息;将数据拉取信息广播给N-1个区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;在N个区块链节点之间对业务数据进行业务处理。由此可见,本申请提出的方法若业务数据的数据量大于数据量阈值,则可以对业务数据进行分片后再传输,这提高了对业务数据进行传输的效率,并且由于无需向N-1个区块链节点同时传输业务数据,也减少了区块链网络中区块链节点之间的单点传输压力。
请参见图7,图7是本申请提供的一种区块链网络的数据处理方法的流程示意图。本申请实施例中的内容可以与上述图3对应实施例中所描述的内容相互结合,如图7所示,该方法可以包括:
步骤S201,获取第一区块链节点发送的数据拉取信息;第一区块链节点属于N个区块链节点,第一区块链节点和第二区块链节点是不同的区块链节点,数据拉取信息是由第一区块链节点根据业务数据的M个分片数据分别对应的传输区块链节点打包得到,业务数据的数据量大于数据量阈值,每个分片数据分别对应的传输区块链节点是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取得到,每个分片数据由第一区块链节点分别发送给对应的传输区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据。
可选的,本申请实施例中的执行主体可以指N个区块链节点中的任意一个区块链节点,可以将作为本申请实施例的执行主体的区块链节点称之为第二区块链节点,该第二区块链节点与上述图3对应实施例中的第一区块链节点不是同一个区块链节点,因此,更具体的,第二区块链节点可以是指N-1个区块链节点中的任意一个区块链节点。该N-1个区块链节点就包括N个区块链节点中除第一区块链节点之外的其他区块链节点。N为正整数,N的具体根据实际应用场景决定,对此不作限制。
第一区块链节点会向N-1个区块链节点中各个区块链节点发送数据拉取信息,因此,第二区块链节点可以获取到第一区块链节点发送的数据拉取信息。第一区块链节点生成该数据拉取信息的过程可以参见上述图3对应实施例中的具体描述,此处不再进行赘述。
步骤S202,根据数据拉取信息获取M个分片数据,并还原得到业务数据。
可选的,M个分片数据中的任意一个分片数据可以表示为第i个分片数据,i为小于或等于M的正整数,该第i个分片数据携带分片编号,该第i个分片数据携带的分片编号用于指示第i个分片数据在业务数据中的分片位置。
因此,若第i个分片数据对应的传输区块链节点是第二区块链节点,那么第二区块链节点可以获取到第一区块链节点发送的第i个分片数据,第二区块链节点就不需要向其他区块链节点拉取第i个分片数据了,但是其他区块链节点(如N-1个区块链节点中除第二区块链节点之外的区块链节点)就可以向第二区块链节点拉取第i个分片数据,该过程可以是:
以第三区块链节点向第二区块链节点拉取第i个分片数据为例进行说明,该第三区块链节点可以是N-1个区块链节点中除第二区块链节点之外的区块链节点中的任意一个区块链节点。第二区块链节点可以获取到第三区块链节点根据数据拉取信息发送的数据拉取请求,可以将该数据拉取请求称之为第一数据拉取请求,该第一数据拉取请求可以包含第i个分片数据的数据哈希值以及第i个分片数据的分片编号,该第一数据拉取请求中的数据哈希值和分片编号可以是第三区块链节点从自己获取到的数据拉取信息中拿取的。
进而第二区块链节点可以检索自己的存储空间中携带有第一数据拉取请求中的数据编号的第i个分片数据,并可以计算检索到的该第i个分片数据的数据哈希值,若第二区块链节点检测到计算的数据哈希值与第一数据拉取请求中的数据哈希值相同,则第二区块链节点可以将检索到的第i个分片数据发送给第三区块链节点,到此第三区块链节点就成功向第二区块链节点拉取了第i个分片数据。反之,若第二区块链节点检测到计算的数据哈希值与第一数据拉取请求中的数据哈希值不相同,则第二区块链节点可以向第三区块链节点返回数据拉取失败的提示信息,用以提示第三区块链节点拉取第i个分片数据失败。
更多的,若第i个分片数据对应的传输区块链节点不是第二区块链节点,那么第二区块链节点可以向第i个分片数据对应的传输区块链节点拉取第i个分片数据,该过程可以是:
第二区块链节点获取到的数据拉取信息中,可以包括第i个分片数据的数据哈希值、第i个分片数据携带的分片编号以及第i个分片数据对应的传输区块链节点的节点标识,因此,第二区块链节点可以根据数据拉取信息中第i个分片数据的数据哈希值和分片编号生成第二数据拉取请求,该第二数据拉取请求就包含第i个分片数据的数据哈希值和分片编号。
进而,第二区块链节点可以将该第二数据拉取请求发送给数据拉取信息中第i个分片数据对应的传输区块链节点的节点标识所属区块链节点(该区块链节点也就是第i个分片数据对应的传输区块链节点),进而该节点标识所属区块链节点就可以根据第二数据拉取请求中的数据哈希值和分片编号向第二区块链节点返回第i个分片数据,第二区块链节点可以获取到该节点标识所属区块链节点返回的第i个分片数据,至此第二区块链节点就成功向该节点标识所属区块链节点拉取了第i个分片数据。
更多的,若第二区块链节点根据第二数据拉取请求未向第i个分片数据对应的传输区块链节点成功拉取到第i个分片数据,那么第二区块链节点还可以向第一区块链节点(即业务数据所属的原节点)发送第三数据拉取请求,以通过该第三数据拉取请求向第一区块链节点拉取第i个分片数据,该第三数据拉取请求可以包含第i个分片数据的数据哈希值和分片编号。进而第二区块链节点就可以获取到第一区块链节点返回的第i个分片数据。
通过上述描述,第二区块链节点可以通过数据拉取信息获取到业务数据的M个分片数据,第二区块链节点获取到的M个分片数据可以全部是通过数据拉取信息向其他区块链节点拉取的(表明第二区块链节点不是任意一个分片数据对应的传输区块链节点),或者,第二区块链节点获取到的M个分片数据可以部分是通过数据拉取信息向其他区块链节点拉取的,以及部分是作为传输区块链节点获取到的第一区块链节点所发送的。
进而,第二区块链节点可以根据获取到的M个分片数据所携带的分片编号对该M个分片数据进行组装,即可还原得到业务数据。实际上,N-1个区块链节点中的任意一个区块链节点均可以通过第二区块链节点还原业务数据的过程还原得到业务数据。
更多的,第二区块链节点还可以将对M个分片数据进行组装还原的数据作为初始业务数据,并可以计算该初始业务数据的数据哈希值,可以将该数据哈希值称之为是验证数据哈希值,可以将第二区块链节点获取到的数据拉取信息中的业务数据的数据哈希值称之为是真实数据哈希值。因此,第二区块链节点可以对比该验证数据哈希值和真实数据哈希值,若该验证数据哈希值与真实数据哈希值相同,则可以将还原得到的初始业务数据作为最终还原得到的业务数据,反之,若该验证数据哈希值与真实数据哈希值不相同,则需要重新获取M个分片数据来还原业务数据或者直接向第一区块链节点拉取业务数据。
步骤S203,在N个区块链节点之间对业务数据进行业务处理。
通过本申请实施例,N-1个区块链节点可以不用一次性获取第一区块链节点发送的数据量很大的业务数据,而是可以以分片的形式,逐步向其他若干区块链节点拉取分片数据,降低了单点传输压力。此外,若业务数据是业务区块,第二区块链节点在拉取得到一个或者多个分片数据之后,还可以先对该一个或者多个分片数据中所包含的交易数据进行验证,而不用等到还原得到整个业务数据后,再对该业务数据所包含的全部交易数据进行验证,这也提高了对业务区块中的交易数据进行验证的效率,进而提高了对业务区块进行共识的效率。
请参见图8,图8是本申请提供的一种数据处理的场景示意图。如图8所示,共识节点1可以是N-1个区块链节点中的任意一个区块链节点,M个分片数据可以包括分片数据1、分片数据2和分片数据3,分片数据1、分片数据2和分片数据3构成业务区块。分片数据1可以是主共识节点(即第一区块链节点)发送给共识节点1的,即共识节点1可以是分片数据1对应的传输区块链节点。因此,共识节点1可以向其他区块链节点拉取分片数据2和分片数据3。并且,共识节点1在获取到分片数据1、分片数据2或者分片数据3的时刻,就可以对所获取到的分片数据中的交易数据进行有效验证,而不用等到获取到整个业务区块才对该业务区块中的交易进行验证。
当共识节点1获取到主共识节点发送的分片数据1、拉取到的分片数据2以及拉取到的分片数据3时,就可以对该分片数据1、分片数据2和分片数据3进行组装(组装后可以得到上述初始业务数据),并验证组装得到的数据的完整性(可以指验证初始业务数据的上述验证数据哈希值与业务数据的真实数据哈希值是否相同,若相同,则完整性验证通过),完整性验证通过后,就可以进行随后对组装得到的业务区块的投票,也就是共识,即投票是否要将业务区块进行上链。
本申请可以获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;业务数据的数据量大于数据量阈值;每个分片数据对应的传输区块链节点,是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取的;将每个分片数据分别发送给对应的传输区块链节点;根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息;将数据拉取信息广播给N-1个区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;在N个区块链节点之间对业务数据进行业务处理。由此可见,本申请提出的方法若业务数据的数据量大于数据量阈值,则可以对业务数据进行分片后再传输,这提高了对业务数据进行传输的效率,并且由于无需向N-1个区块链节点同时传输业务数据,也减少了区块链网络中区块链节点之间的单点传输压力。
请参见图9,图9是本申请提供的一种区块链网络的数据处理装置的结构示意图。该区块链网络的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该区块链网络的数据处理装置为一个应用软件,该区块链网络的数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤,该区块链网络的数据处理装置可以应用于上述第一区块链节点。如图9所示,该区块链网络的数据处理装置1可以包括:获取模块11、发送模块12、打包模块13、广播模块14和业务处理模块15;
获取模块11,用于获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;业务数据的数据量大于数据量阈值;每个分片数据对应的传输区块链节点,是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取的;
发送模块12,用于将每个分片数据分别发送给对应的传输区块链节点;
打包模块13,用于根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息;
广播模块14,用于将数据拉取信息广播给N-1个区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;
业务处理模块15,用于在N个区块链节点之间对业务数据进行业务处理。
可选的,M个分片数据中的任一个分片数据表示为第i个分片数据,i为小于或等于M的正整数,第i个分片数据携带分片编号;第i个分片数据所携带的分片编号用于指示第i个分片数据在业务数据中的分片位置;
发送模块12将每个分片数据分别发送给对应的传输区块链节点的方式,包括:
将携带分片编号的第i个分片数据发送给第i个分片数据对应的传输区块链节点。
可选的,打包模块13根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息的方式,包括:
根据每个分片数据对应的传输区块链节点,分别生成每个分片数据的数据拉取子信息;
对每个分片数据的数据拉取子信息进行打包,得到数据拉取信息。
可选的,打包模块13根据每个分片数据对应的传输区块链节点,分别生成每个分片数据的数据拉取子信息的方式,包括:
获取第i个分片数据对应的传输区块链节点的节点标识;
获取第i个分片数据的数据哈希值;
根据节点标识、第i个分片数据的数据哈希值和第i个分片数据携带的分片编号,生成第i个分片数据的数据拉取子信息。
可选的,上述装置1还用于:
获取分片数据量阈值;
根据分片数据量阈值对业务数据进行分片,得到M个分片数据;一个分片数据的数据量小于或等于分片数据量阈值。
可选的,区块链网络为共识网络,N个区块链节点均为共识节点,第一区块链节点是N个区块链节点中的主共识节点,业务数据是由主共识节点打包的业务区块;
业务处理模块15在N个区块链节点之间对业务数据进行业务处理的方式,包括:
在N个区块链节点之间对业务区块进行区块共识处理;
当业务区块共识通过时,对业务区块进行上链处理。
可选的,上述装置1还用于:
获取业务客户端提交的数据存证请求;数据存证请求包含业务数据;
业务处理模块15在N个区块链节点之间对业务数据进行业务处理的方式,包括:
在N个区块链节点之间对业务数据进行数据存证处理。
根据本申请的一个实施例,图3所示的区块链网络的数据处理方法所涉及的步骤可由图9所示的区块链网络的数据处理装置1中的各个模块来执行。例如,图3中所示的步骤S101可由图9中的获取模块11来执行,图3中所示的步骤S102可由图9中的发送模块12来执行;图3中所示的步骤S103可由图9中的打包模块13来执行,图3中所示的步骤S104可由图9中的广播模块14来执行,图3中所示的步骤S105可由图9中的业务处理模块15来执行。
本申请可以获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;业务数据的数据量大于数据量阈值;每个分片数据对应的传输区块链节点,是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取的;将每个分片数据分别发送给对应的传输区块链节点;根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息;将数据拉取信息广播给N-1个区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;在N个区块链节点之间对业务数据进行业务处理。由此可见,本申请提出的装置若业务数据的数据量大于数据量阈值,则可以对业务数据进行分片后再传输,这提高了对业务数据进行传输的效率,并且由于无需向N-1个区块链节点同时传输业务数据,也减少了区块链网络中区块链节点之间的单点传输压力。
根据本申请的一个实施例,图9所示的区块链网络的数据处理装置1中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,区块链网络的数据处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图9中所示的区块链网络的数据处理装置1,以及来实现本申请实施例的区块链网络的数据处理方法。上述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
请参见图10,图10是本申请提供的一种区块链网络的数据处理装置的结构示意图。该区块链网络的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该区块链网络的数据处理装置为一个应用软件,该区块链网络的数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤,该区块链网络的数据处理装置可以应用于上述第二区块链节点。如图10所示,该区块链网络的数据处理装置2可以包括:信息获取模块21、还原模块22和数据处理模块23;
信息获取模块21,用于获取第一区块链节点发送的数据拉取信息;第一区块链节点属于N个区块链节点,第一区块链节点和第二区块链节点是不同的区块链节点,数据拉取信息是由第一区块链节点根据业务数据的M个分片数据分别对应的传输区块链节点打包得到,业务数据的数据量大于数据量阈值,每个分片数据分别对应的传输区块链节点是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取得到,每个分片数据由第一区块链节点分别发送给对应的传输区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;
还原模块22,用于根据数据拉取信息获取M个分片数据,并还原得到业务数据;
数据处理模块23,用于在N个区块链节点之间对业务数据进行业务处理。
可选的,M个分片数据中的任一个分片数据表示为第i个分片数据,i为小于或等于M的正整数;第i个分片数据携带分片编号;第i个分片数据所携带的分片编号用于指示第i个分片数据在业务数据中的分片位置;
上述装置2还用于:
若第i个分片数据对应的传输区块链节点是第二区块链节点,则获取第三区块链节点根据数据拉取信息发送的第一数据拉取请求;第一数据拉取请求携带第i个分片数据的数据哈希值以及第i个分片数据的分片编号;第三区块链节点属于N-1个区块链节点中除第二区块链节点之外的区块链节点;
检索携带有第一数据拉取请求中的数据编号的第i个分片数据,并计算检索到的第i个分片数据的数据哈希值;
若所计算的数据哈希值与第一数据拉取请求中的数据哈希值相同,则将检索到的第i个分片数据发送至第三区块链节点。
可选的,M个分片数据中的任一个分片数据表示为第i个分片数据,i为小于或等于M的正整数;数据拉取信息包含第i个分片数据的数据哈希值、第i个分片数据对应的传输区块链节点的节点标识以及第i个分片数据的分片编号;第i个分片数据的分片编号用于指示第i个分片数据在业务数据中的分片位置;
上述还原模块22根据数据拉取信息获取第i个分片数据的流程,包括:
若第i个分片数据对应的传输区块链节点不是第二区块链节点,则向节点标识所属区块链节点发送第二数据拉取请求;第二数据拉取请求包含第i个分片数据的数据哈希值和分片编号;
获取节点标识所属区块链节点根据第i个分片数据的数据哈希值和分片编号所返回的第i个分片数据。
可选的,上述装置1还用于:
若未获取到节点标识所属区块链节点返回的第i个分片数据,则向第一区块链节点发送第三数据拉取请求;第三数据拉取请求包含第i个分片数据的数据哈希值和分片编号;
获取第一区块链节点根据第i个分片数据的数据哈希值和分片编号返回的第i个分片数据。
可选的,数据拉取信息包括业务数据的真实数据哈希值;
还原模块22还原得到业务数据的方式,包括:
对根据数据拉取信息获取到的M个分片数据进行组装,得到初始业务数据;
计算初始业务数据的数据哈希值,作为验证数据哈希值;
若验证数据哈希值和真实数据哈希值相同,则将初始业务数据确定为还原得到的业务数据。
根据本申请的一个实施例,图7所示的区块链网络的数据处理方法所涉及的步骤可由图10所示的区块链网络的数据处理装置2中的各个模块来执行。例如,图7中所示的步骤S201可由图10中的信息获取模块21来执行,图7中所示的步骤S202可由图10中的还原模块22来执行;图7中所示的步骤S203可由图10中的数据处理模块23来执行。
本申请可以获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;业务数据的数据量大于数据量阈值;每个分片数据对应的传输区块链节点,是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取的;将每个分片数据分别发送给对应的传输区块链节点;根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息;将数据拉取信息广播给N-1个区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;在N个区块链节点之间对业务数据进行业务处理。由此可见,本申请提出的装置若业务数据的数据量大于数据量阈值,则可以对业务数据进行分片后再传输,这提高了对业务数据进行传输的效率,并且由于无需向N-1个区块链节点同时传输业务数据,也减少了区块链网络中区块链节点之间的单点传输压力。
根据本申请的一个实施例,图10所示的区块链网络的数据处理装置2中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,区块链网络的数据处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图7中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图10中所示的区块链网络的数据处理装置1,以及来实现本申请实施例的区块链网络的数据处理方法。上述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
请参见图11,图11是本申请提供的一种计算机设备的结构示意图。如图11所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在图11所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;业务数据的数据量大于数据量阈值;每个分片数据对应的传输区块链节点,是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取的;
将每个分片数据分别发送给对应的传输区块链节点;
根据每个分片数据对应的传输区块链节点打包M个分片数据的数据拉取信息;
将数据拉取信息广播给N-1个区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;
在N个区块链节点之间对业务数据进行业务处理。
可选的,处理器1001还可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取第一区块链节点发送的数据拉取信息;第一区块链节点属于N个区块链节点,第一区块链节点和第二区块链节点是不同的区块链节点,数据拉取信息是由第一区块链节点根据业务数据的M个分片数据分别对应的传输区块链节点打包得到,业务数据的数据量大于数据量阈值,每个分片数据分别对应的传输区块链节点是从N个区块链节点的除第一区块链节点之外的N-1个区块链节点中选取得到,每个分片数据由第一区块链节点分别发送给对应的传输区块链节点;数据拉取信息用于指示N-1个区块链节点相互拉取各自获取到的分片数据,并还原出业务数据;
根据数据拉取信息获取M个分片数据,并还原得到业务数据;
在N个区块链节点之间对业务数据进行业务处理。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3或图7对应实施例中对上述区块链网络的数据处理方法的描述,也可执行前文图9所对应实施例中对上述区块链网络的数据处理装置1的描述、以及前文图10所对应实施例中对上述区块链网络的数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的区块链网络的数据处理装置1和区块链网络的数据处理装置2所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3或图7所对应实施例中对区块链网络的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
作为示例,上述程序指令可被部署在一个计算机设备上执行,或者被部署位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链网络。
上述计算机可读存储介质可以是前述任一实施例提供的区块链网络的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3或图7对应实施例中对上述区块链网络的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (17)

1.一种区块链网络的数据处理方法,其特征在于,所述区块链网络包括N个区块链节点,N为正整数,所述方法应用于第一区块链节点,所述第一区块链节点是所述N个区块链节点中的任一个区块链节点,所述方法包括:
获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;所述业务数据的数据量大于数据量阈值;所述每个分片数据对应的传输区块链节点,是从所述N个区块链节点的除所述第一区块链节点之外的N-1个区块链节点中选取的;
将所述每个分片数据分别发送给对应的传输区块链节点;
根据所述每个分片数据对应的传输区块链节点打包所述M个分片数据的数据拉取信息;
将所述数据拉取信息广播给所述N-1个区块链节点;所述数据拉取信息用于指示所述N-1个区块链节点相互拉取各自获取到的分片数据,并还原出所述业务数据;
在所述N个区块链节点之间对所述业务数据进行业务处理。
2.根据权利要求1所述的方法,其特征在于,所述M个分片数据中的任一个分片数据表示为第i个分片数据,i为小于或等于M的正整数,所述第i个分片数据携带分片编号;所述第i个分片数据所携带的分片编号用于指示所述第i个分片数据在所述业务数据中的分片位置;
所述将所述每个分片数据分别发送给对应的传输区块链节点,包括:
将携带分片编号的所述第i个分片数据发送给所述第i个分片数据对应的传输区块链节点。
3.根据权利要求2所述的方法,其特征在于,所述根据所述每个分片数据对应的传输区块链节点打包所述M个分片数据的数据拉取信息,包括:
根据所述每个分片数据对应的传输区块链节点,分别生成所述每个分片数据的数据拉取子信息;
对所述每个分片数据的数据拉取子信息进行打包,得到所述数据拉取信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述每个分片数据对应的传输区块链节点,分别生成所述每个分片数据的数据拉取子信息,包括:
获取所述第i个分片数据对应的传输区块链节点的节点标识;
获取所述第i个分片数据的数据哈希值;
根据所述节点标识、所述第i个分片数据的数据哈希值和所述第i个分片数据携带的分片编号,生成所述第i个分片数据的数据拉取子信息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取分片数据量阈值;
根据所述分片数据量阈值对所述业务数据进行分片,得到所述M个分片数据;一个分片数据的数据量小于或等于所述分片数据量阈值。
6.根据权利要求1所述的方法,其特征在于,所述区块链网络为共识网络,所述N个区块链节点均为共识节点,所述第一区块链节点是所述N个区块链节点中的主共识节点,所述业务数据是由所述主共识节点打包的业务区块;
所述在所述N个区块链节点之间对所述业务数据进行业务处理,包括:
在所述N个区块链节点之间对所述业务区块进行区块共识处理;
当所述业务区块共识通过时,对所述业务区块进行上链处理。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取业务客户端提交的数据存证请求;所述数据存证请求包含所述业务数据;
所述在所述N个区块链节点之间对所述业务数据进行业务处理,包括:
在所述N个区块链节点之间对所述业务数据进行数据存证处理。
8.一种区块链网络的数据处理方法,其特征在于,所述区块链网络包括N个区块链节点,N为正整数,所述方法应用于第二区块链节点,所述第二区块链节点是所述N个区块链节点中的任一个区块链节点,所述方法包括:
获取第一区块链节点发送的数据拉取信息;所述第一区块链节点属于所述N 个区块链节点,所述第一区块链节点和所述第二区块链节点是不同的区块链节点,所述数据拉取信息是由所述第一区块链节点根据业务数据的M个分片数据分别对应的传输区块链节点打包得到,所述业务数据的数据量大于数据量阈值,每个分片数据分别对应的传输区块链节点是从所述N个区块链节点的除所述第一区块链节点之外的N-1个区块链节点中选取得到,所述每个分片数据由所述第一区块链节点分别发送给对应的传输区块链节点;所述数据拉取信息用于指示所述N-1个区块链节点相互拉取各自获取到的分片数据,并还原出所述业务数据;
根据所述数据拉取信息获取所述M个分片数据,并还原得到所述业务数据;
在所述N个区块链节点之间对所述业务数据进行业务处理。
9.根据权利要求8所述的方法,其特征在于,所述M个分片数据中的任一个分片数据表示为第i个分片数据,i为小于或等于M的正整数;所述第i个分片数据携带分片编号;所述第i个分片数据所携带的分片编号用于指示所述第i个分片数据在所述业务数据中的分片位置;
所述方法还包括:
若所述第i个分片数据对应的传输区块链节点是所述第二区块链节点,则获取第三区块链节点根据所述数据拉取信息发送的第一数据拉取请求;所述第一数据拉取请求携带所述第i个分片数据的数据哈希值以及所述第i个分片数据的分片编号;所述第三区块链节点属于所述N-1个区块链节点中除所述第二区块链节点之外的区块链节点;
检索携带有所述第一数据拉取请求中的数据编号的所述第i个分片数据,并计算检索到的所述第i个分片数据的数据哈希值;
若所计算的数据哈希值与所述第一数据拉取请求中的数据哈希值相同,则将检索到的所述第i个分片数据发送至所述第三区块链节点。
10.根据权利要求8所述的方法,其特征在于,所述M个分片数据中的任一个分片数据表示为第i个分片数据,i为小于或等于M的正整数;所述数据拉取信息包含所述第i个分片数据的数据哈希值、所述第i个分片数据对应的传输区块链节点的节点标识以及所述第i个分片数据的分片编号;所述第i个分片数据的分片编号用于指示所述第i个分片数据在所述业务数据中的分片位置;
根据所述数据拉取信息获取所述第i个分片数据的流程,包括:
若所述第i个分片数据对应的传输区块链节点不是所述第二区块链节点,则向所述节点标识所属区块链节点发送第二数据拉取请求;所述第二数据拉取请求包含所述第i个分片数据的数据哈希值和分片编号;
获取所述节点标识所属区块链节点根据所述第i个分片数据的数据哈希值和分片编号所返回的所述第i个分片数据。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
若未获取到所述节点标识所属区块链节点返回的所述第i个分片数据,则向所述第一区块链节点发送第三数据拉取请求;所述第三数据拉取请求包含所述第i个分片数据的数据哈希值和分片编号;
获取所述第一区块链节点根据所述第i个分片数据的数据哈希值和分片编号返回的所述第i个分片数据。
12.根据权利要求8所述的方法,其特征在于,所述数据拉取信息包括所述业务数据的真实数据哈希值;
所述还原得到所述业务数据,包括:
对根据所述数据拉取信息获取到的所述M个分片数据进行组装,得到初始业务数据;
计算所述初始业务数据的数据哈希值,作为验证数据哈希值;
若所述验证数据哈希值和所述真实数据哈希值相同,则将所述初始业务数据确定为还原得到的所述业务数据。
13.一种区块链网络的数据处理装置,其特征在于,所述区块链网络包括N个区块链节点,N为正整数,所述装置应用于第一区块链节点,所述第一区块链节点是所述N个区块链节点中的任一个区块链节点,所述装置包括:
获取模块,用于获取业务数据的M个分片数据及每个分片数据对应的传输区块链节点,M为正整数;所述业务数据的数据量大于数据量阈值;所述每个分片数据对应的传输区块链节点,是从所述N个区块链节点的除所述第一区块链节点之外的N-1个区块链节点中选取的;
发送模块,用于将所述每个分片数据分别发送给对应的传输区块链节点;
打包模块,用于根据所述每个分片数据对应的传输区块链节点打包所述M个分片数据的数据拉取信息;
广播模块,用于将所述数据拉取信息广播给所述N-1个区块链节点;所述数据拉取信息用于指示所述N-1个区块链节点相互拉取各自获取到的分片数据,并还原出所述业务数据;
业务处理模块,用于在所述N个区块链节点之间对所述业务数据进行业务处理。
14.一种区块链网络的数据处理装置,其特征在于,所述区块链网络包括N个区块链节点,N为正整数,所述装置应用于第二区块链节点,所述第二区块链节点是所述N个区块链节点中的任一个区块链节点,所述装置包括:
信息获取模块,用于获取第一区块链节点发送的数据拉取信息;所述第一区块链节点属于所述N个区块链节点,所述第一区块链节点和所述第二区块链节点是不同的区块链节点,所述数据拉取信息是由所述第一区块链节点根据业务数据的M个分片数据分别对应的传输区块链节点打包得到,所述业务数据的数据量大于数据量阈值,每个分片数据分别对应的传输区块链节点是从所述N个区块链节点的除所述第一区块链节点之外的N-1个区块链节点中选取得到,所述每个分片数据由所述第一区块链节点分别发送给对应的传输区块链节点;所述数据拉取信息用于指示所述N-1个区块链节点相互拉取各自获取到的分片数据,并还原出所述业务数据;
还原模块,用于根据所述数据拉取信息获取所述M个分片数据,并还原得到所述业务数据;
数据处理模块,用于在所述N个区块链节点之间对所述业务数据进行业务处理。
15.一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现权利要求1-12所述方法的步骤。
16.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-12中任一项所述方法的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适用于由处理器加载并执行权利要求1-12任一项所述的方法。
CN202111014850.3A 2021-08-31 2021-08-31 区块链网络的数据处理方法、装置、计算机设备和介质 Pending CN115730936A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111014850.3A CN115730936A (zh) 2021-08-31 2021-08-31 区块链网络的数据处理方法、装置、计算机设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111014850.3A CN115730936A (zh) 2021-08-31 2021-08-31 区块链网络的数据处理方法、装置、计算机设备和介质

Publications (1)

Publication Number Publication Date
CN115730936A true CN115730936A (zh) 2023-03-03

Family

ID=85291559

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111014850.3A Pending CN115730936A (zh) 2021-08-31 2021-08-31 区块链网络的数据处理方法、装置、计算机设备和介质

Country Status (1)

Country Link
CN (1) CN115730936A (zh)

Similar Documents

Publication Publication Date Title
CN112200682B (zh) 基于区块链的跨链交易方法、装置和计算机可读存储介质
CN111737724B (zh) 一种数据处理方法、装置、智能设备及存储介质
CN111427957B (zh) 区块链投票信息校验方法、装置、设备以及存储介质
CN110933163B (zh) 区块链合约部署方法、装置、设备以及存储介质
CN110570196B (zh) 交易数据处理方法、装置、终端设备以及存储介质
CN112446785A (zh) 跨链交易方法、***、装置、设备和存储介质
CN110690974B (zh) 基于区块链的数据验证方法、装置、设备及可读存储介质
CN110263579B (zh) 一种数据处理方法、***及相关设备
CN110995513A (zh) 物联网***中的数据发送、接收方法、物联网设备及平台
CN111654395B (zh) 投票信息处理方法、装置、设备以及存储介质
CN112069550B (zh) 一种基于智能合约方式的电子合同存证***
CN113055188A (zh) 一种数据处理方法、装置、设备及存储介质
CN111711655A (zh) 一种基于区块链的电子数据存证方法、***、存储介质及终端
CN111488372A (zh) 一种数据处理方法、设备及存储介质
CN110866265A (zh) 一种基于区块链的数据存储方法、设备及存储介质
CN112035896B (zh) 一种基于交易方式的电子合同存证***
CN111899019A (zh) 一种黑名单多方交叉验证和共享的方法及***
CN111367923A (zh) 数据处理方法、装置、节点设备及存储介质
CN113409047B (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN115952515B (zh) 一种基于大数据的数据安全处理方法及装置
CN108882230B (zh) 通话记录管理方法、装置及***
CN115730936A (zh) 区块链网络的数据处理方法、装置、计算机设备和介质
CN110618989A (zh) 信息处理方法、信息处理装置及相关产品
CN108632318B (zh) 一种数据校验方法、数据发送方法、相关装置及***
CN113468574A (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: 40082730

Country of ref document: HK