区块链离链数据的存储方法、装置、设备和存储介质与流程

文档序号:18040081发布日期:2019-06-28 23:54阅读:198来源:国知局
区块链离链数据的存储方法、装置、设备和存储介质与流程

本发明涉及数据安全存储技术领域,具体涉及一种区块链离链数据的存储方法、装置、设备和存储介质。



背景技术:

区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学的方式来保证不可篡改且不可伪造的特性,是一种分布式账本。它利用区块链数据结构来验证与存储数据,利用分布式节点公式算法来生成和更新数据,利用密码学的方式保证数据传输和访问的安全,利用自动化代码脚本组成的智能合约来编程和操作数据,是一种全新的分布式基础架构与计算范式。p2p网络(peertopeer,对等网络)即对等计算机网络,是一种在对等者之间分配任务和工作负载的分布式应用架构,是对等计算机模型在应用层形成的一种组网或网络形式。

区块链网络需要由p2p网络连接的多个节点共同维护才能保证数据安全,数据在区块链中的记录和存储等操作,需要由多个节点共同确认后才可以进行。因此,就会产生网络延迟可能导致数据不同步,也即,显示网络的带宽和数据传播速率共识的大批数据记录和存储请求的时刻有一定的延迟。现实网络中的带宽、数据传输速率、网等都会有一定的延迟,而区块链技术的一个核心问题就是多端数据备份,制造冗余,以降低数据丢失风险,当如此之大的数据负载进入到网络中时,节点数不断增加,延迟无疑也会随之增大。

现有技术主要是应用闪电网络,将全网数据节点达成共识的区块链称为主链,将未由全网多数节点共识,而是局部节点共识形成的区块链或孤立数据块称为支链,大量数据先有支链做离链处理,待一定时间后,统一将这些数据或哈希值更新至主链。但是,这种处理方式一方面数据丢失的风险大,另一方面离链数据传输的速度和质量也会受到影响。



技术实现要素:

有鉴于此,提供一种区块链离链数据的存储方法、装置、设备和存储介质,以解决现有技术中数据丢失风险大的问题,以及,离链数据传输速率慢、传输质量低的问题。

本发明采用如下技术方案:

第一方面,本发明实施例提供了一种区块链离链数据的存储方法,该方法包括:

接收离链数据,并对所述离链数据进行加密以获取目标离链数据,其中,所述离链数据包括以离链形式存在的数据;

按照预设分类规则,对所述目标离链数据进行分类;

更新所述目标离链数据的邻跳信息,其中,更新操作包括根据各个节点的当前状态更新各个节点的邻节点信息表;

检索与所述目标离链数据对应的传输路径;

在所述传输路径中选择满足预设路径条件的路径进行目标离链数据的传输;

存储所述目标离链数据,并将所述目标离链数据按照设定的写入策略写入区块链主链。

可选的,按照预设分类规则,对所述目标离链数据进行分类,包括:

按照预设分类规则,对所述目标离链数据进行编码,得到由至少一个帧组成的目标离链数据。

可选的,所述至少一个帧包括i帧、p帧或b帧中的一个或多个。

可选的,更新所述目标离链数据的邻跳信息,包括:

各个节点周期性的向自身的邻节点发送当前节点的状态报文信息;

若在自身的邻节点信息表中存储有当前节点的状态报文信息,则更新当前节点的状态信息和到达时间,否则,将当前节点加入所述邻节点信息表。

可选的,还包括:

各个节点按照设定的时间规则检查自身的邻节点信息表,将超过预设更新时间未更新的信息对应的节点进行删除。

可选的,所述状态报文信息包括节点标识、节点能量和节点位置,所述邻节点信息表包括邻节点标识、邻节点坐标、邻节点能量、状态和信息更新时间。

可选的,检索与所述目标离链数据对应的传输路径,包括:

根据所述目标离链数据确定源节点和汇节点;

源节点在自身的邻节点信息表中选择任一可用邻节点,并向所述可用邻节点发出探寻包,其中,所述探寻包中包括源节点和汇节点的节点信息;

每个中间节点将探寻包转发至其自身的邻节点信息表中的任一可用邻节点,直到汇节点收到所述探寻包,其中,中间节点包括除源节点以及汇节点之外的全部节点;

所述汇节点沿所述探寻包的转发路径进行反馈,并将所述转发路径经过的全部节点进行标记,以确定所述目标离链数据对应的传输路径。

第二方面,本发明实施例提供了一种区块链离链数据的存储装置,该装置包括:

数据加密模块,用于接收离链数据,并对所述离链数据进行加密以获取目标离链数据,其中,所述离链数据包括以离链形式存在的数据;

数据分类模块,用于按照预设分类规则,对所述目标离链数据进行分类;

更新模块,用于更新所述目标离链数据的邻跳信息,其中,更新操作包括根据各个节点的当前状态更新各个节点的邻节点信息表;

路径检索模块,用于检索与所述目标离链数据对应的传输路径;

数据发送模块,用于在所述传输路径中选择满足预设路径条件的路径进行目标离链数据的传输;

存储与备份模块,用于存储所述目标离链数据,并将所述目标离链数据按照设定的写入策略写入区块链主链。

第三方面,本发明实施例提供了一种设备,包括:

处理器,以及与所述处理器相连接的存储器;

所述存储器用于存储计算机程序,所述计算机程序至少用于执行本发明实施例第一方面的区块链离链数据的存储方法;

所述处理器用于调用并执行所述存储器中的所述计算机程序。

第四方面,本发明实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如本发明实施例第一方面的区块链离链数据的存储方法中各个步骤。

本发明采用以上技术方案,所述接收离链数据,并对所述离链数据进行加密以获取目标离链数据,其中,所述离链数据包括以离链形式存在的数据,保证了数据传输过程中的安全性;按照预设分类规则,对所述目标离链数据进行分类;更新所述目标离链数据的邻跳信息,其中,更新操作包括根据各个节点的当前状态更新各个节点的邻节点信息表,利用邻跳信息实时更新邻节点信息表;检索与所述目标离链数据对应的传输路径;在所述传输路径中选择满足预设路径条件的路径进行目标离链数据的传输;存储所述目标离链数据,并将所述目标离链数据按照设定的写入策略写入区块链主链。面对区块链技术中的多数据备份以及制造冗余带来的数据丢失风险大的问题,通过离链存储的方式,保证了数据传输过程的安全性,提高了数据传输的速度和质量。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的一种区块链离链数据的存储方法的流程图;

图2是本发明实施例二提供的一种区块链离链数据的存储装置的结构示意图;

图3是本发明实施例中适用的一种设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

实施例一

图1为本发明实施例一提供的一种区块链离链数据的存储方法的流程图,该方法可以由本发明实施例提供的区块链离链数据的存储装置来执行,该装置可采用软件和/或硬件的方式实现。参考图1,该方法具体可以包括如下步骤:

s101、接收离链数据,并对所述离链数据进行加密以获取目标离链数据,其中,所述离链数据包括以离链形式存在的数据。

其中,离链数据可以是任意以离链形式存在的数据,也即,以链式存储结构的形式存在的数据中的离链形式的数据,例如可以包括离链视频数据和离链音频数据等,这里仅用离链视频数据来进行论述。需要说明的是,离链数据还包括除视频和音频以外的其他形式的数据,这里不进行限定。

具体的,接收离链数据,其中,接收离链数据的方式可以是从云端或者服务器获取,也可以是通过物理平移数据的方式进行数据的接收,例如,通过移动硬盘或者硬盘进行数据的接收。在接收到离链数据后,对离链数据进行加密,应用的加密算法可以是现有技术中的加密算法,例如可以是,dsa(digitalsignaturealgorithm,数字签名算法)或aes(advancedencryptionstandard,高级加密标准)等,将加密后的数据称为目标离链数据。此外,还可以应用区块链技术本身中具备的加密功能对离链数据进行加密。通过对离链数据进行加密,保证了数据传输过程中的安全性。

s102、按照预设分类规则,对所述目标离链数据进行分类。

其中,预设分类规则可以是根据用户需求进行设定,也可以是系统设定的默认规则,用户可以采用该默认规则,也可以对该默认规则进行修改。示例性的,预设分类规则可以是根据离链数据传输过程中的帧的类型进行分类。对目标离链数据进行分类,有利于对提高数据处理速度。

示例性的,按照预设分类规则,对所述目标离链数据进行分类,具体可以通过如下方式实现:按照预设分类规则,对所述目标离链数据进行编码,得到由至少一个帧组成的目标离链数据。其中,所述至少一个帧包括i帧、p帧或b帧中的一个或多个。

其中,编码是信息从一种形式或格式转换为另一种形式的过程,例如,用预先设定的方法将文字、数字或其他对象编成数码,或将信息、数据转换成规定的电脉冲信号,编码的逆过程称为解码。具体的,按照预设分类规则对目标离链数据进行编码,得到由至少一个帧组成的目标离链数据,其中,至少一个帧包括i帧、p帧或b帧中的一个或多个。

i帧又称为内部画面,i帧通常是每个gop(groupofpictures,画面组)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图像;p帧是i帧后面相隔1~2帧的编码帧,根据本帧与相邻的前一帧(i帧或p帧)的不同点来压缩本帧数据,采取p帧和i帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹;b帧,当把一帧压缩成b帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。

s103、更新所述目标离链数据的邻跳信息,其中,更新操作包括根据各个节点的当前状态更新各个节点的邻节点信息表。

具体的,在实际的应用过程中,要实时更新各个节点的邻节点信息表以更新目标离链数据的邻跳信息,这样,有利于提高数据传输的质量。示例性的,更新所述目标离链数据的邻跳信息,具体可以通过如下方式实现:各个节点周期性的向自身的邻节点发送当前节点的状态报文信息;若在自身的邻节点信息表中存储有当前节点的状态报文信息,则更新当前节点的状态信息和到达时间,否则,将当前节点加入所述邻节点信息表。

各个节点周期性的向自身的邻节点发送当前节点的状态报文信息,通过发送状态报文信息报告自身的状态信息,其中,状态报文信息包括节点标识、节点能量和节点位置等,示例性的,该周期可以设定为较长的时间,其他节点收到状态报文信息后,首先在自身的邻节点信息表中进行查找,其中,邻节点信息表包括邻节点标识、邻节点坐标、邻节点能量、状态和信息更新时间等。如果在自身的邻节点信息表中存储有当前节点的状态报文信息,也即,在邻节点信息表中找到了当前节点,则更新当前节点的状态信息和到达时间;如果在邻节点信息表中找不到当前节点,则将当前节点加入邻节点信息表中。

此外,各个节点按照设定的时间规则检查自身的邻节点信息表,将超过预设更新时间未更新的信息对应的节点进行删除。具体的,设定的时间规则可以是周期性的时间规则,也可以是非周期性的时间规则,可以是研发人员根据用户的需求进行设定的。各个节点按照设定的时间规则检查自身的邻节点信息表,如果有的信息超过预设更新时间后仍未更新,则说明该条信息对应的节点已经死亡或者过于频繁,也即,本节点处于不可用状态,则将该节点进行删除,以实时更新邻节点信息表。

s104、检索与所述目标离链数据对应的传输路径。

具体的,根据目标离链数据,检索与目标离链数据对应的传输路径,其中,目标离链数据对应的传输路径可以是一条,也可以是多条,这里检索出的是全部符合目标离链数据应用的传输路径。在实际的应用过程中,检索与所述目标离链数据对应的传输路径,可以通过如下手段实现:根据所述目标离链数据确定源节点和汇节点;源节点在自身的邻节点信息表中选择任一可用邻节点,并向所述可用邻节点发出探寻包,其中,所述探寻包中包括源节点和汇节点的节点信息;每个中间节点将探寻包转发至其自身的邻节点信息表中的任一可用邻节点,直到汇节点收到所述探寻包,其中,中间节点包括除源节点以及汇节点之外的全部节点;所述汇节点沿所述探寻包的转发路径进行反馈,并将所述转发路径经过的全部节点进行标记,以确定所述目标离链数据对应的传输路径。

具体的,首先,根据目标离链数据确定源节点和汇节点,其中,源节点是指,充当信息源,发送原始数据包的网络节点;汇节点是指,数据包最终到达的网络节点。其次,源节点在自身的邻节点信息表中选择任一可用节点,其中,可用节点是指,可以接收并转发数据的活节点,向上述可用邻节点发出探寻包。示例性的,探寻包可以是一个数据包,可以存储有检测数据,也可以是一个空的数据包,其目的在于确定各个节点能正常接收并转发数据包,此外,探寻包中包括源节点和汇节点的节点信息。

对于除源节点和汇节点以外的全部中间节点,均在收到探寻包后将其转发至自身的邻节点信息表中的任一可用邻节点,直到汇节点收到探寻包。这样,表明探寻包传输的路径为有效路径,此时,汇节点沿探寻包的转发路径进行反馈,并将转发路径经过的全部节点进行标记,示例性的,可以在上述全部节点中添加设定的标识实现。此外,进行反馈的手段可以是发送确认消息,通过确认消息对转发路径经过的全部节点进行标记,这样则可以将全部转发路径确定为目标离链数据对应传输路径。可选的,中间节点转发探寻包时可以应用现有技术中的贪心策略,这是不赘述。

在上述技术方案的基础上,本发明实施例的技术方案还包括:当任一中间节点无法在自身的邻节点信息表中找到可用邻节点时,则向上一跳节点发出阻塞信息,以指示所述上一跳节点重新确定可用邻节点以转发所述探寻包。

示例性的,在实际的应用过程中,对于任意的中间节点,有可能无法在自身的邻节点信息表中找到可用邻节点,此时,针对这类节点,使其向上一跳节点发出阻塞信息,该阻塞信息用来指示上一跳节点中心确定新的可用邻节点以转发探寻包。这样保证了探寻包传输的有效性。

s105、在所述传输路径中选择满足预设路径条件的路径进行目标离链数据的传输。

具体的,在确定的若干个传输路径中选择满足预设路径条件的路径,预设路径条件可以是满足能耗值低于设定能耗阈值的条件,还可以通过其他指标确定预设路径条件,例如传输速度以及数据丢失率等,其目的均为筛选出最优的路径来进行目标离链数据的传输。

s106、存储所述目标离链数据,并将所述目标离链数据按照设定的写入策略写入区块链主链。

其中,将全网多数节点达成共识的区块链称为主链,将未由全网多数节点达成共识,而是局部节点达成共识形成的区块链或孤立数据块称为支链。在一个具体的例子中,存储目标离链数据之前的操作可以由支链处理,之后统一将目标离链数据写入区块链主链,或者,也可以将目标离链数据的哈希值写入区块链主链,其中,设定的写入策略可以是,以哈希值的形式写入区块链主链,这里只是用来示例。示例性的,可以应用硬盘存储和云盘存储方式来存储目标离链数据。应用硬盘存储,速度快;应用云盘存储,存储的数据量大,以便后期对数据进行获取。因此,可以实现对数据的可靠存储。

本发明采用以上技术方案,所述接收离链数据,并对所述离链数据进行加密以获取目标离链数据,其中,所述离链数据包括以离链形式存在的数据,保证了数据传输过程中的安全性;按照预设分类规则,对所述目标离链数据进行分类;更新所述目标离链数据的邻跳信息,其中,更新操作包括根据各个节点的当前状态更新各个节点的邻节点信息表,利用邻跳信息实时更新邻节点信息表;检索与所述目标离链数据对应的传输路径;在所述传输路径中选择满足预设路径条件的路径进行目标离链数据的传输;存储所述目标离链数据,并将所述目标离链数据按照设定的写入策略写入区块链主链。面对区块链技术中的多数据备份以及制造冗余带来的数据丢失风险大的问题,通过离链存储的方式,保证了数据传输过程的安全性,提高了数据传输的速度和质量。

实施例二

图2是本发明是实施例二提供的一种区块链离链数据的存储装置的结构示意图,该装置适用于执行本发明实施例提供给的一种区块链离链数据的存储方法。如图2所示,该装置具体可以包括:

数据加密模块201,用于接收离链数据,并对所述离链数据进行加密以获取目标离链数据,其中,所述离链数据包括以离链形式存在的数据;

数据分类模块202,用于按照预设分类规则,对所述目标离链数据进行分类;

更新模块203,用于更新所述目标离链数据的邻跳信息,其中,更新操作包括根据各个节点的当前状态更新各个节点的邻节点信息表;

路径检索模块204,用于检索与所述目标离链数据对应的传输路径;

数据发送模块205,用于在所述传输路径中选择满足预设路径条件的路径进行目标离链数据的传输;

存储与备份模块206,用于存储所述目标离链数据,并将所述目标离链数据按照设定的写入策略写入区块链主链。

进一步的,数据分类模块202具体用于:

按照预设分类规则,对所述目标离链数据进行编码,得到由至少一个帧组成的目标离链数据。

进一步的,所述至少一个帧包括i帧、p帧或b帧中的一个或多个。

进一步的,更新模块203具体用于:

各个节点周期性的向自身的邻节点发送当前节点的状态报文信息;

若在自身的邻节点信息表中存储有当前节点的状态报文信息,则更新当前节点的状态信息和到达时间,否则,将当前节点加入所述邻节点信息表。

进一步的,还包括更新模块,用于各个节点按照设定的时间规则检查自身的邻节点信息表,将超过预设更新时间未更新的信息对应的节点进行删除。

进一步的,所述状态报文信息包括节点标识、节点能量和节点位置,所述邻节点信息表包括邻节点标识、邻节点坐标、邻节点能量、状态和信息更新时间。

进一步的,路径检索模块204具体用于:

根据所述目标离链数据确定源节点和汇节点;

源节点在自身的邻节点信息表中选择任一可用邻节点,并向所述可用邻节点发出探寻包,其中,所述探寻包中包括源节点和汇节点的节点信息;

每个中间节点将探寻包转发至其自身的邻节点信息表中的任一可用邻节点,直到汇节点收到所述探寻包,其中,中间节点包括除源节点以及汇节点之外的全部节点;

所述汇节点沿所述探寻包的转发路径进行反馈,并将所述转发路径经过的全部节点进行标记,以确定所述目标离链数据对应的传输路径。

本发明实施例提供的区块链离链数据的存储装置可执行本发明任意实施例提供的区块链离链数据的存储方法,具备执行方法相应的功能模块和有益效果。

本发明实施例还提供一种设备,请参阅图3,图3为一种设备的结构示意图,如图3所示,该设备包括:处理器310,以及与处理器310相连接的存储器320;存储器320用于存储计算机程序,所述计算机程序至少用于执行本发明实施例中的区块链离链数据的存储方法;处理器310用于调用并执行所述存储器中的所述计算机程序。

本发明实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如本发明实施例中的区块链离链数据的存储方法中各个步骤。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1