首页> 中国专利> 基于区块链的分布式数据存储方法、装置、节点及系统

基于区块链的分布式数据存储方法、装置、节点及系统

摘要

本发明提供了一种基于区块链的分布式数据存储方法、装置、节点及系统,可用于区块链技术领域,所述方法包括:接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型;若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储;若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储,本发明在已有区块链结构化链上数据存储技术基础上,进一步聚合链下分布式区块链存储技术进行数据协同存储。

著录项

  • 公开/公告号CN113157648A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 中国工商银行股份有限公司;

    申请/专利号CN202110464961.8

  • 发明设计人 罗伟彬;苏恒;裴磊;夏琼;

    申请日2021-04-28

  • 分类号G06F16/13(20190101);G06F16/182(20190101);G06F21/60(20130101);G06F21/64(20130101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人任默闻;王涛

  • 地址 100140 北京市西城区复兴门内大街55号

  • 入库时间 2023-06-19 11:57:35

说明书

技术领域

本发明涉及数据处理技术领域,特别涉及区块链技术领域,尤其涉及一种基于区块链的分布式数据存储方法、装置、节点及系统。

背景技术

区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。区块链技术作为数据共享的新的分布式系统,依赖其点对点去中心化通讯,加密技术验证不可篡改,数据透明可溯源,分布式共识集体维护等特性,解决了数据协同和数据孤岛问题,可以应用于各个业务领域,如供应链金融,贸易融资,数字资产数据交换,业务协作,溯源存证等各个领域。但是,区块链对于非结构化的大文件存储较为敏感,整体的网络和文件处理资源占用率会比较高,还会降低区块共识效率,而且大文件在联盟链的网络中以等价于记账节点数的副本数量存储,导致存储的极大浪费。

发明内容

本发明的一个目的在于提供一种基于区块链的分布式数据存储方法,在已有区块链结构化链上数据存储技术基础上,进一步聚合链下分布式区块链存储技术进行数据协同存储。本发明的另一个目的在于提供一种区块链节点。本发明的再一个目的在于提供一种可信存储节点。本发明的还一个目的在于提供一种分布式数据存储装置。本发明的还一个目的在于提供一种分布式数据存储系统。本发明的还一个目的在于提供一种计算机设备。本发明的还一个目的在于提供一种可读介质。

为了达到以上目的,本发明一方面公开了一种基于区块链的分布式数据存储方法,包括:

接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型;

若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储;

若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储。

优选的,所述对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息具体包括:

根据预设文件大小对所述待存储数据进行文件切割得到多个数据块;

分别对每个数据块进行哈希运算得到与每个数据块对应的哈希值;

根据多个数据块的哈希值得到所述加密信息。

优选的,进一步包括:

接收所述可信存储节点传输的所述数据源信息;

接收数据处理请求,根据所述数据处理请求确定对应的目标数据源信息;

将所述目标数据源信息传输至所述区块链节点以使所述区块链节点返回所述目标数据源的加密信息;

将所述加密信息传输至所述可信存储节点以使所述可信存储节点对所述加密信息进行验证,若验证通过,返回所述加密信息对应的数据。

优选的,所述将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储具体包括:

通过可信存储节点与所述区块链节点建立TLS认证;

对所述区块链节点的签名信息进行验证;

若验证通过,将所述加密信息和所述数据源信息传输至所述区块链节点。

本发明还公开了一种基于区块链的分布式数据存储方法,包括:

接收分布式数据存储装置传输的待存储数据,对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储,其中,所述待存储数据为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型,若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储,若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点得到的。

优选的,所述对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息具体包括:

根据预设文件大小对所述待存储数据进行文件切割得到多个数据块;

分别对每个数据块进行哈希运算得到与每个数据块对应的哈希值;

根据多个数据块的哈希值得到所述加密信息。

本发明还公开了一种基于区块链的分布式数据存储方法,包括:

接收分布式数据存储装置传输的结构化的待存储数据并存储,接收分布式存储系统的可信存储节点传输的加密信息和非结构化待存储数据的数据源信息并存储,其中,结构化的待存储数据为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型;若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储得到的;所述加密信息和非结构化待存储数据的数据源信息为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型,若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储得到的。

本发明还公开了一种基于区块链的分布式数据存储装置,包括:

数据分析模块,用于接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型;

数据存取模块,用于若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储;若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储。

本发明还公开了一种可信存储节点,被配置为接收分布式数据存储装置传输的待存储数据,对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至区块链节点进行存储,其中,所述待存储数据为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型,若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储,若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点得到的。

本发明还公开了一种区块链节点,被配置为接收分布式数据存储装置传输的结构化的待存储数据并存储,接收分布式存储系统的可信存储节点传输的加密信息和非结构化待存储数据的数据源信息并存储,其中,结构化的待存储数据为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型;若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储得到的;所述加密信息和非结构化待存储数据的数据源信息为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型,若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储得到的。

本发明还公开了一种基于区块链的分布式数据存储系统,包括分布式数据存储装置、分布式存储系统和区块链;

分布式数据存储装置用于接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型;若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储;若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储。

本发明还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,

所述处理器执行所述程序时实现如上所述方法。

本发明还公开了一种计算机可读介质,其上存储有计算机程序,

该程序被处理器执行时实现如上所述方法。

本发明接收数据存储请求后,对数据存储请求进行分析确定待存储的数据的数据类型,根据数据类型不同选择不同的数据存储方式。具体的,当数据类型为结构化数据时,将待存储数据传输至区块链节点进行上链存储,当数据类型为非结构化数据时,将待存储数据传输至分布式存储系统的可信存储节点进行存储。该可信存储节点可对待存储数据进行文件切割,将切割后的待存储数据进行加密得到加密信息,并将加密信息和待存储数据的数据源信息传输至区块链节点进行上链存储。从而本发明在区块链结构化链上数据存储技术基础上,进一步聚合链下分布式存储技术进行非结构化内容存储能力拓展,建立体系化,安全的数据协同方案,以满足业务系统不同规模数据上链诉求,涵盖行内外存证类金融区块链业务场景,并通过打造可信存证基础设施链,帮助业务系统实现快速上链。

附图说明

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

图1示出本发明基于区块链的分布式数据存储系统一个具体实施例的结构图;

图2示出本发明基于区块链的分布式数据存储方法一个具体实施例的流程图;

图3示出本发明基于区块链的分布式数据存储方法一个具体例子的应用示意图;

图4示出本发明基于区块链的分布式数据存储方法一个具体实施例S300得到加密信息的流程图;

图5示出本发明基于区块链的分布式数据存储方法一个具体例子分布式存储系统进行可信存储的示意图;

图6示出本发明基于区块链的分布式数据存储方法一个具体实施例S400的流程图;

图7示出本发明基于区块链的分布式数据存储方法一个具体例子数据索引搜索子系统的结构示意图;

图8示出本发明基于区块链的分布式数据存储方法一个具体实施例S300加密信息和数据源信息上链存储的流程图;

图9示出本发明基于区块链的分布式数据存储方法一个具体实施例区块链节点和可信存储节点安全锚定的示意图;

图10示出本发明基于区块链的分布式数据存储装置一个具体实施例的结构图;

图11示出适于用来实现本发明实施例的计算机设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本申请公开的一种基于区块链的分布式数据存储方法、装置、节点及系统可用于人工智能技术领域,也可用于除人工智能技术领域之外的任意领域,本申请公开的一种基于区块链的分布式数据存储方法、装置、节点及系统的应用领域不做限定。

为了便于理解本申请提供的技术方案,下面先对本申请技术方案的相关内容进行说明。本发明实施例提供的基于区块链的分布式数据存储方法在已有区块链结构化链上数据存储技术基础上,进一步聚合链下分布式存储技术进行非结构化内容存储能力拓展,通过数据文件切割,文件源数据信息提取以及安全锚定的技术实现,建立安全高效的数据协同存储和数据文件便捷访问的方案,得到基于区块链的分布式可信数据存储的方法。

图1是本发明实施例提供的基于区块链的分布式数据存储系统的结构示意图,如图1所示,本发明实施例提供的基于区块链的分布式数据存储系统包括分布式数据存储装置1、分布式存储系统2和区块链3。

其中,分布式数据存储装置1可接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型;若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储;若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储。

下面以分布式数据存储装置作为执行主体为例,说明本发明实施例提供的基于区块链的分布式数据存储方法的实现过程。可理解的是,本发明实施例提供的基于区块链的分布式数据存储方法的执行主体包括但不限于分布式数据存储装置。

根据本发明的一个方面,本实施例公开了一种基于区块链的分布式数据存储方法。如图2和图3所示,本实施例中,所述方法包括:

S100:接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型。

其中,需要说明的是,可通过分布式数据存储装置1接收应用请求端4传输的交易请求(当需要存储待存储数据时,交易请求为数据存储请求),分布式数据存储装置1可为应用请求端4提供前置服务。该应用请求端4可为边缘端、移动端、PC端和应用服务器端等终端设备,应用请求端4可与分布式数据存储装置建立通讯连接,并发起数据存储存取请求,根据需要与多方数据共享的待存储数据形成数据存储请求的形式发送至分布式数据存储装置。分布式数据存储装置可进一步对接入的权限验证和验证通过后的数据存储请求进行路由,实现对区块链节点的链上存储和可信存储节点的服务接口进行统一的封装,实现应用请求端便捷的数据存储请求接入。其中,待存储数据可包括共享文档和客户凭证等多种结构化和非结构化数据。

S200:若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储。其中,区块链节点接入区块链(联盟链)系统,该区块链节点是区块链执行共识交易的节点,接收区块链上层业务应用的交易请求,进行区块链的交易共识和计算,并管理职能合约的调用,将区块链节点的线上实时的交易访问请求旁路至存储计算节点,保存交易请求信息到存储节点,并基于智能合约算法进行分析和处理。在本实施例中,区块链节点接收结构化数据进行存储,还可接收非结构化待存储数据对应的加密信息和存储数据的数据源信息进行存储,并对后续的数据处理等交易请求进行处理,返回对应的结构化数据或加密信息以完成数据处理的交易请求。其中,数据源信息用于标示待存储数据,可以是待存储数据的数据编号、数据来源地址、数据类型或数据类别等信息,本领域技术人员可根据实际情况设置数据源信息,本发明在此不再赘述。

S300:若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储。

具体的,分布式存储系统可包括多个可信存储节点,由多个可信存储节点形成可信存储集群,该集群中的所有可信存储节点用于对非结构化数据进行实际存储,可信存储节点间通过数据同步实现各可信存储节点上存储数据的一致,从而使其中的任意一个可信存储节点均能够与区块链联盟方不同的区块链节点进行通讯,建立多方协同的链上链下存储体系。

本发明接收数据存储请求后,对数据存储请求进行分析确定待存储的数据的数据类型,根据数据类型不同选择不同的数据存储方式。具体的,当数据类型为结构化数据时,将待存储数据传输至区块链节点进行上链存储,当数据类型为非结构化数据时,将待存储数据传输至分布式存储系统的可信存储节点进行存储。该可信存储节点可对待存储数据进行文件切割,将切割后的待存储数据进行加密得到加密信息,并将加密信息和待存储数据的数据源信息传输至区块链节点进行上链存储。从而本发明在区块链结构化链上数据存储技术基础上,进一步聚合链下分布式存储技术进行非结构化内容存储能力拓展,建立体系化,安全的数据协同方案,以满足业务系统不同规模数据上链诉求,涵盖行内外存证类金融区块链业务场景,并通过打造可信存证基础设施链,帮助业务系统实现快速上链。

在优选的实施方式中,如图4所示,所述S300对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息具体包括:

S310:根据预设文件大小对所述待存储数据进行文件切割得到多个数据块。

S320:分别对每个数据块进行哈希运算得到与每个数据块对应的哈希值。

S330:根据多个数据块的哈希值得到所述加密信息。

具体的,多个可信存储节点形成的分布式存储系统是一个对等的分布式文件系统,它尝试为所有计算设备连接同一个文件系统,提供了一个高吞吐量、按内容寻址的块存储模型及与内容相关超链接,形成了一个广义的梅克树(Merkle tree)或有向无环图(DAG)。具体的,可信存储节点提供了多种数据存储结构以保证数据存储的灵活性配置,例如,可信存储节点可包括DAG数据分片存储结构、梅克树存储结构以及块文件存储结构等存储结构的至少之一,如图5所示。即待存储数据分块后形成的多个数据块可以作为多个块文件进行分别存储,而多个数据块之间的引用及索引关系可以采用DAG、Merkle tree和块文件关联等存储结构的至少之一对数据块间的序列关系进行存储,以保证各个数据块间的前后顺序正确,当后续读取分块存储的待存储数据,可根据存储结构将多个数据块进行读取并组合得到原始的待存储数据。

进一步的,可信存储节点可实现文件分片的动态松散哈希,数据序列化和块交换以及路由策略等高效存储功能。其中,可信存储节点将非结构化的待存储数据按照预设文件大小进行数据文件的切割得到多个数据块,作为块文件进行存储。优选的,预设文件大小优选的可选择256kb,在实际应用中,可信存储节点可支持参数定制调整,以根据不同类型、不同大小的文件来进行文件切割。具体的,将待存储数据切割得到多个数据块,从而使其中的每个数据块可以根据不同需要以不同的数据存储方式进行存储,例如对于数据读取效率要求较高的数据可以以key-value形式存储,可以实现快速高效的存储和读取;而对于其他待存储数据可以采用普通文件存储等形式,本发明通过对文件进行切割可以实现文件的分块灵活存储,提高文件存储效率。

更优选的,在对待存储数据进行切割得到多个数据块之后,还可以增加去重步骤以降低分布式存储系统存储的数据量,降低成本。具体的,可在切割得到多个数据块或在对切割得到的多个数据块进行分别加密得到哈希值之后,对多个数据块或对应的哈希值进行重复性检查,若检查得到具有重复的数据块或哈希值,则表示存在数据完全相同的多个数据块,从而可将多个数据块中的重复数据块删除,仅存储其中的一个数据块,同时修改存储结构使多个数据块根据该存储结构可以组合得到待存储数据。例如,若待存储数据切割后得到A、B、C和D四个数据块,其中,A引用B,C引用D,通过重复性检查发现B和D是数据完全相同的数据块,则可删除数据块D,将存储结构修改为A引用B,C好引用B。在该优选的实施方式中,当存在重复的数据块时,可删除并保留其中的一个数据块,并通过修改存储结构的形式保证数据的不丢失,既降低了系统的存储压力,降低了存储成本又保证了数据存储的完整性。

进一步的,根据多个数据块的哈希值得到所述加密信息时,可根据多个数据块的前后顺序确定多个数据块的哈希值的对应的前后顺序,根据多个哈希值的前后顺序确定多个哈希值的对应关系,从而可将多个哈希值中的一个或多个哈希值传输至区块链进行存储,该一个或多个哈希值在链下的分布式存储系统中可以自动关联其他的哈希值,从而无需将所有哈希值上传至区块链进行存储。当需要读取分布式存储系统中存储的数据时,可从区块链上获取到一个或多个哈希值,将该一个或多个哈希值传输至分布式存储系统进行数据获取,分布式存储系统在哈希校验后自动将与该一个或多个哈希值相关的哈希值提取出来,将每个哈希值对应的数据块组合得到用户需要读取的存储数据。例如,在一个具体例子中,将一个待存储数据切割分为多个数据块,对每个数据块进行哈希加密后得到每个数据块对应的哈希值,通过多个数据块的哈希值根据多个数据块的前后顺序形成Merkletree得到待存储数据的存储结构,从而可将Merkle tree的父节点的哈希值作为父哈希传输至区块链进行存储,而无需将Merkle tree的其他节点的哈希值上链存储,当读取数据时,可通过父哈希关联查询到Merkle tree中的所有哈希值,从而可减少区块链上存储的数据量,降低成本并提高数据存取效率。

在一个具体例子中,待存储数据的数据存储过程可包括以下步骤:

T101:应用请求端发起数据存储请求。

T102:数据存储请发送到分布式数据存储装置,分布式数据存储装置根据数据存储请求得到请求文件的数据类型,如果是结构化数据,则正常发送到区块链节点进行数据存储。

T103:分布式数据存储装置判断如果是非结构化数据,则自动路由上传到可信存储节点,进行数据文件切割,并解析存储到可信存储节点。

T104:区块链节点获取文件切割分布式文件哈希(加密信息),同时基于文件解析将可信存储节点反馈的分布式文件哈希和文件源数据信息进行链上锚定存储。

T105:从分布式数据存储装置获取基于文本的文件源数据信息,将文件源数据信息存储到数据索引搜索子系统5。

T106:分布式存储系统启动的数据节点间同步,可信存储节点间通过P2P通讯进行文件块的交换,至此完成基于区块链的分布式可信数据存储的全流程。

在优选的实施方式中,如图6所示,所述方法进一步包括S400:

S410:接收所述可信存储节点传输的所述数据源信息。

S420:接收数据处理请求,根据所述数据处理请求确定对应的目标数据源信息。

S430:将所述目标数据源信息传输至所述区块链节点以使所述区块链节点返回所述目标数据源的加密信息。

S440:将所述加密信息传输至所述可信存储节点以使所述可信存储节点对所述加密信息进行验证,若验证通过,返回所述加密信息对应的数据。

具体的,可通过构建数据索引搜索子系统5对链上链下协同存储的数据进行搜索,实现对分布式数据存储系统的便捷访问,数据索引搜索子系统5优选的可采用LUCENE等搜索引擎框架,并采用类似ElasticSearch的开源框架引擎的技术实现。具体的,数据索引搜索子系统可包括索引模块、更新服务、文本提取、数据存储引擎、搜索查询模块和监控管理模块等模块,以提供数据查询、读取和其他数据管理功能。在数据搜索时,接收并存储分布式数据存储装置从数据存储请求中解析的文件源数据信息,并根据区块链存储通道信息创建文件源数据信息的网络存储索引,以对可信存储系统存储的数据进行便捷访问。数据索引搜索子系统5可提供网站门户搜索服务,提供标准的OpenAPI接口以及封装的SDK接口,同时可以提供实时的推送服务,用于数据存储的实时监控,如图7所示。

在优选的实施方式中,如图8所示,述S300将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储具体包括:

S340:通过可信存储节点与所述区块链节点建立TLS认证。

S350:对所述区块链节点的签名信息进行验证。

S360:若验证通过,将所述加密信息和所述数据源信息传输至所述区块链节点。

具体的,如图5所示,可信存储节点与区块链节点间通过PKI安全体系、数据寻址加密和RBAC权限控制等技术实现可信通信,保证数据安全。具体的,分布式数据存储系统中需要解决区块链节点与可信存储节点的数据一致性和安全性问题,在各自节点内嵌安全锚定模块实现,通过通讯模块建立TLS双向认证网络通讯连接,并通过TA模块构建基于TEE硬件或者软件签名的方式构建可信应用程序和安全存储环境。可信存储节点和区块链节点间建立TLS认证,并对对应的区块链节点或可信存储节点启动程序进行签名验证,构建从区块链节点或从可信存储节点启动到建立网络通讯的全链路的安全可信环境,如图9所示。

在一个具体例子中,基于区块链的分布式数据存储系统的工作流程包括:

T201:区块链网络联盟决策,明确区块链网络节点和成员信息,并明确网络的具体业务应用场景,编写对应的智能合约代码,在区块链节点部署业务智能合约。

T202:应用请求客户端通过存储SDK或者API接口调用分布式数据存储装置。

T203:应用请求客户端的数据存储请求通过分布式数据存储装置进行不同类型不同规模的数据存储请求路由;

T204:分布式数据存储装置通过在线的网络请求引流,模拟交易执行进行回放,并解析数据存储请求。

T205:若待存储数据为结构化数据,区块链节点接收交易请求,发起智能合约交易调用,进行存储权限校验,并通过区块链3F+1节点共识,判断满足条件将交易请求发往智能合约执行引擎总执行智能合约接口调用。

T206:若待存储数据为非结构化数据,可信存储节点进行模型的校验和实施的计算分析,综合数据存储请求,区块链链上数据,日志信息,区块交易时间序列等信息进行可信区块链数据存储解析和分块哈希存储。

T207:分布式存储系统中的可信存储节点进行数据交换和传输,日志收集守护进程收集区块链节点和智能合约节点执行日志,并通过区块链节点的事件进行文件在节点间的同步操作。

T208:数据索引搜索子系统5提供数据文件的添加、删除、获取、更新、索引创建和搜索等功能,提供外部接口和可视化的交互式搜索服务。

本发明提供了基于区块链的分布式可信数据存储的技术的系统和方法,在已有区块链结构化链上数据存储技术基础上,进一步聚合链下分布式区块链存储技术进行非结构化内容存储能力拓展,建立体系化,安全的数据协同方案,以满足业务系统不同规模数据上链诉求,涵盖行内外存证类金融区块链业务场景,并通过打造可信存证基础设施链,帮助业务系统实现快速上链。

基于相同原理,本实施例还公开了一种基于区块链的分布式数据存储方法。该方法的执行主体为可信存储节点,所述方法包括:

接收分布式数据存储装置传输的待存储数据,对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储,其中,所述待存储数据为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型,若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储,若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点得到的。

在优选的实施方式中,所述对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息具体包括:

根据预设文件大小对所述待存储数据进行文件切割得到多个数据块;

分别对每个数据块进行哈希运算得到与每个数据块对应的哈希值;

根据多个数据块的哈希值得到所述加密信息。

由于该方法解决问题的原理与以上方法类似,因此本方法的实施可以参见方法的实施,在此不再赘述。

基于相同原理,本实施例还公开了一种基于区块链的分布式数据存储方法。该方法的执行主体为区块链节点,所述方法包括:

接收分布式数据存储装置传输的结构化的待存储数据并存储,接收分布式存储系统的可信存储节点传输的加密信息和非结构化待存储数据的数据源信息并存储,其中,结构化的待存储数据为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型;若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储得到的;所述加密信息和非结构化待存储数据的数据源信息为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型,若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储得到的。

由于该方法解决问题的原理与以上方法类似,因此本方法的实施可以参见方法的实施,在此不再赘述。

基于相同原理,本实施例还公开了一种基于区块链的分布式数据存储装置。如图10所示,所述分布式数据存储装置包括数据分析模块11和数据存取模块12。

其中,数据分析模块11用于接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型。

数据存取模块12用于若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储;若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储。

由于该装置解决问题的原理与以上方法类似,因此本装置的实施可以参见方法的实施,在此不再赘述。

基于相同原理,本实施例还公开了一种可信存储节点。该可信存储节点被配置为接收分布式数据存储装置传输的待存储数据,对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储,其中,所述待存储数据为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型,若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储,若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点得到的。

由于该节点解决问题的原理与以上方法类似,因此本节点的实施可以参见方法的实施,在此不再赘述。

基于相同原理,本实施例还公开了一种区块链节点。该区块链节点被配置为接收分布式数据存储装置传输的结构化的待存储数据并存储,接收分布式存储系统的可信存储节点传输的加密信息和非结构化待存储数据的数据源信息并存储,其中,结构化的待存储数据为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型;若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储得到的;所述加密信息和非结构化待存储数据的数据源信息为所述分布式数据存储装置接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型,若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储得到的。

由于该节点解决问题的原理与以上方法类似,因此本节点的实施可以参见方法的实施,在此不再赘述。

基于相同原理,本实施例还公开了一种基于区块链的分布式数据存储系统。分布式数据存储系统包括分布式数据存储装置、分布式存储系统和区块链。

其中,分布式数据存储装置可接收数据存储请求,根据所述数据存储请求确定待存储数据的数据类型;若所述数据类型为结构化数据,将所述待存储数据传输至区块链节点进行存储;若所述数据类型为非结构化数据,将所述待存储数据传输至分布式存储系统的可信存储节点以使所述可信存储节点对所述待存储数据进行文件切割,将文件切割后的待存储数据进行加密得到加密信息,并将所述加密信息和所述待存储数据的数据源信息传输至所述区块链节点进行存储。

由于该系统解决问题的原理与以上方法类似,因此本系统的实施可以参见方法的实施,在此不再赘述。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。

下面参考图11,其示出了适于用来实现本申请实施例的计算机设备的结构示意图。

如图11所示,计算机设备包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。

特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

去获取专利,查看全文>
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号