一种基于区块链的分布式数据存储系统及方法与流程

文档序号:11285650阅读:483来源:国知局
一种基于区块链的分布式数据存储系统及方法与流程

本发明涉及计算机应用技术领域,具体涉及一种基于区块链的分布式数据存储系统及方法。



背景技术:

随着网络及计算机技术的飞速发展,政府、银行、企业,信息电子化已经成为办公的根本,而这些信息都是存储在数据库中。通常,数据库设有具有root权限的数据库管理员,可以删除、更改数据。窃取了root权限的黑客或者恶意管理员可以进行恶意地修改、删除数据库中的数据,所有数据都将不再真实可信,极大地危害信息信息系统的安全。

区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并使用密码学方法关联数据区块的分布式数据;区块链技术利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式,具有不可篡改性、去中心化性、匿名性、可追溯性等特征,目前已被广泛应用于金融行业,并在众多领域都表现出广阔的应用前景。

因此,利用区块链不可篡改、不可伪造的特点,可对信息进行安全存储。但区块链技术本身来源于数字货币(比特币),区块链上通常存储的只是货币交易记录,数据格式统一,可存储数据量少;相比之下,实用数据库系统中的数据量十分巨大,如果直接在区块链上存储这些数据,使用数据的过程将变得非常困难;此外,在区块链系统中,大部分节点需要存储完整的区块链,从全网角度看,数据备份过多,资源浪费十分严重。

综上所述,从节约资源、支持海量数据存储和优化系统性能的角度出发,基于区块链实现对分布式数据的可靠管理及安全存储变得尤为重要。



技术实现要素:

本发明所要解决的技术问题是从节约资源、支持海量数据存储和优化系统性能的角度出发,利用区块链技术不可篡改、不可伪造的特点,实现基于区块链的安全分布式数据存储的问题。

为了解决上述技术问题,本发明所采用的技术方案是提供一种基于区块链的分布式数据存储系统,包括:

数据录入模块,进行数据内容录入,并利用哈希算法计算每条数据内容对应的摘录;

区块链存储模块,以区块链形式存储所有数据内容对应的摘录;

数据存储模块,接收所述数据录入模块录入的数据内容,并从所述区块链存储模块上调取与接收数据内容对应的摘录,存储与对应摘录一致的数据内容;以及从所述区块链存储模块调取与查询的数据内容对应的摘录,并向查询节点返回与对应摘录一致的被查询数据内容。

在上述系统中,所述数据录入模块包括多个录入节点,所述录入节点执行录入操作,并且每个所述录入节点之间建立对等连接,互相传递验证操作的有效性、合法性的消息。

在上述系统中,所述数据存储模块包括多个存储节点,并默认其中一个所述存储节点为主用存储节点,其他存储节点为备用存储节点;所述主用存储节点通过数据存储接口接收所述数据录入模块录入的数据内容,并从所述区块链存储模块上调取与接收数据内容对应的摘录,当数据内容与摘录一致时,存储该数据内容,否则,返回数据安全告警;通过上述方式,由所述主用存储节点在下一个备用存储节点上对存储的数据内容进行备份,再由该备用存储节点在另一个备用存储节点上对存储的数据内容进行备份,以此类推,直到所有备用存储节点都完成备份。

在上述系统中,当所述主用存储节点不可达或不可用时,切换备用存储节点中的一个节点替代或从备用存储节点中恢复丢失的数据。

在上述系统中,数据内容被存入系统默认的主用存储节点,然后由其备份至一个备用存储节点,再由该备用存储节点备份至另一个备用存储节点,以此类推;当主用存储节点离线或宕机时,数据将先被存入所有备用存储节点中排在最前的节点处,再从该备用存储节点依次备份到其他备用存储节点处。

在上述系统中,所述数据录入模块设有外部数据录入接口,通过所述外部数据录入外部节点将数据内容上传至某个所述录入节点处,由该录入节点执行录入操作;

所述数据存储模块设有外部数据查询接口,通过所述外部数据查询接口外部节点执行查询操作。

本发明还提供了一种基于区块链的分布式数据存储方法,包括以下步骤:

数据录入模块向数据存储模块录入数据内容,并利用哈希算法计算每条数据内容对应的摘录,并将摘录存在区块链存储模块的区块链上;

数据存储模块接收录入的数据内容,并从区块链存储模块上调取与接收数据内容对应的摘录,只存储数据内容与摘录一致的数据内容;

数据存储模块接受查询节点数据查询,查找存储的被查询数据内容,并从区块链存储模块上调取与该数据内容对应的摘录,向查询节点返回与对应摘录一致的被查询数据内容。

本发明与现有技术相比,创新性地将区块链应用到信息存储系统,相较于传统的分布式信息存储系统,本发明不存在root权限的管理员,没有任何人可以随意修改信息内容而不被察觉,可保证数据存储的可信度,实现了信息的可靠管理及安全共享,并在采用区块链技术时,充分考虑了分布式数据库与数字货币系统(区块链技术应用)之间的差异,不直接利用区块链存储大量的数据内容,而是只用其存储利用哈希算法计算得到的数据摘录,减少区块链上的存储量,避免了区块链的低效率,使得系统具有较好的实用性。

附图说明

图1为本发明提供一种基于区块链的分布式数据存储系统的结构示意图;

图2为本发明中录入数据内容的数据流向示意图;

图3为本发明中数据内容存储过程的流程图;

图4为本发明提供一种基于区块链的分布式数据存储方法的流程图。

具体实施方式

针对现有的数据采用中心化的管理方式不利于可靠管理及安全共享的问题,本发明利用区块链技术的去中心化、不可篡改、不可伪造的特点,提供一种基于区块链的分布式数据存储系统及方法,从而实现数据信息的可靠管理及安全共享。本发明将数据写入人员对应于区块链中的记账节点,数据写入时,利用哈希算法计算得到与原数据信息内容一一对应的摘录(哈希值),区块链上记录其相应的摘录,这样在数据存储节点进行数据内容存储时,数据内容一旦被修改,都将被发现与区块链上对应的摘录不符,实现安全存储;而且,本发明从系统效率和支持海量数据的容量要求出发,数据内容本身存储在数据存储节点处,区块链上只存储对应的摘录。

下面结合说明书附图和具体实施例对本发明做出详细的说明。

如图1所示,本发明提供的一种基于区块链的分布式数据存储系统,包括数据录入模块、区块链存储模块和数据存储模块;其中,

数据录入模块,执行数据录入操作:首先,利用哈希算法计算每条数据内容对应的摘录(哈希值及数据的其他有关信息),并通过区块链访问接口存储至区块链存储模块,然后通过数据存储访问接口将数据内容本身存储至数据存储模块;在本发明中,数据录入模块由多个录入节点构成,录入节点将执行录入操作,并且每个录入节点之间建立对等连接,互相传递消息,彼此验证操作的有效性、合法性。

区块链存储模块,以区块链形式存储数据录入模块通过区块链访问接口录入的所有数据内容对应的摘录;并通过区块链访问接口,为数据存储模块读取指定数据内容对应的摘录提供摘录数据。

数据存储模块,通过数据存储访问接口接收数据录入模块录入的数据内容,并从区块链存储模块上通过区块链访问接口调取与接收数据内容对应的摘录,当数据内容与摘录一致时,存储该数据内容;否则,判断数据被篡改,放弃存储,并向数据录入模块返回数据安全告警;另外,当进行数据查询时(外部节点查询或内部节点查询),从区块链存储模块调取与查询的数据内容对应的摘录,当该摘录与其存储的数据内容一致时,通过数据查询接口(外部或内部数据查询接口)将数据存储模块存储的指定数据内容(查询的数据内容)发送给查询节点,如果存储的数据内容与摘录不一致,根据不同情况,向查询节点返回数据安全告警。

在本发明中,数据存储模块包括多个存储节点,并默认其中一个存储节点为主用存储节点,其他存储节点为备用存储节点,主用存储节点通过数据存储接口接收数据录入模块录入的数据内容,并从区块链存储模块上调取与接收数据内容对应的摘录,当数据内容与摘录一致时,存储该数据内容;并通过同样的方式,在备用存储节点对存储的数据内容进行备份,当主用存储节点不可达时(无法与数据录入模块通信)或不可用时,切换备用节点中的一个节点替代或从备用节点中恢复丢失的数据,以此应对因自然灾害或者系统宕机等导致数据丢失、系统服务不可用的紧急情况,保证数据的安全可用。

如图2所示,为本发明中录入数据内容的数据流向示意图;需要被录入的原始数据被执行哈希操作后得到其摘录,摘录被存入到区块链上;而数据内容本身则被存入系统默认的主用存储节点a处,然后由其备份至备用存储节点b,再由备用存储节点b备份至备用存储节点c处;当系统正常运行时,数据文件均先被存入默认的主用存储节点a,但是当默认主用存储节点a离线或宕机时,数据将先被存入所有备用存储节点中排在最前的节点处,再从该备用存储节点依次备份到其他备用存储节点处。

在本发明中,数据录入模块对系统外部节点提供外部数据录入接口,允许外部节点上传信息,当数据传递至某个录入节点处,由该录入节点执行录入操作;而数据存储模块也对系统外部节点提供外部数据查询接口,允许外部节点执行查询操作。

如上所述,本发明对外部节点提供了两个访问接口(外部数据录入接口和外部数据查询接口),允许外部节点上传、查询存储的数据,建立一个半封闭系统,所谓半封闭系统是存储的大量数据(数据库)仅由系统内部节点(录入节点和存储节点)生成、管理和维护,但允许外部节点进行访问。相应的,根据需要也可以建立封闭系统和开放系统;封闭系统即信息的生成、管理、维护和使用均只在系统内部节点间进行,只有系统内部成员可以参与,那么在这种系统中,不会提供外部节点访问的上述两个接口,数据仅由录入节点生成;开放系统即数据内容的生成、管理、维护和使用均可让内外部全体成员维护,不存在对系统外部提供的接口,任意外部节点均可为录入节点,进行录入。

如图3所示,为本发明中数据内容存储过程的流程图。外部节点将数据上传至录入节点i之后,该录入节点i先计算数据的哈希值,并在区块链上存储哈希值及数据的其他有关信息;然后会向默认的主用存储节点a发送请求连接,若主用存储节点a返回连接确认,则发送数据;而主用存储节点a收到数据之后,会访问区块链,验证数据,若无误,存储数据并返回存储完毕的消息;录入节点i收到消息后,会对外部节点返回数据存储成功的消息,同时,主用存储节点a会向备用存储节点b发送备份连接请求,若备用存储节点b返回连接确认,则发送数据;同样地,备用存储节点b会访问区块链存储模块,验证数据,若无误,存储数据,并返回给主用存储节点a及外部节点备份完毕的消息;以此类推,备用存储节点b向备用存储节点c发送备份连接请求,具体过程如上,在此不再赘述。

如图4所示,本发明提供的一种基于区块链的分布式数据存储方法,包括以下步骤:

步骤s11、数据录入模块向数据存储模块录入数据内容,并利用哈希算法计算每条数据内容对应的摘录,发送给区块链存储模块,存储在区块链上。

步骤s12、数据存储模块接收录入的数据内容,并从区块链存储模块上调取与接收数据内容对应的摘录,当数据内容与摘录一致时,存储该数据内容,否则,向数据录入模块返回安全报警。

步骤s13、进行数据查询时,数据存储模块通过数据查询接口接受查询,当查询到的数据内容与其对应在区块链上存储的摘录一致时,向查询节点返回数据内容;否则,返回数据安全报警。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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