CN113407512A - 基于区块链的分布式存储***及方法、设备、存储介质 - Google Patents
基于区块链的分布式存储***及方法、设备、存储介质 Download PDFInfo
- Publication number
- CN113407512A CN113407512A CN202110647882.0A CN202110647882A CN113407512A CN 113407512 A CN113407512 A CN 113407512A CN 202110647882 A CN202110647882 A CN 202110647882A CN 113407512 A CN113407512 A CN 113407512A
- Authority
- CN
- China
- Prior art keywords
- data
- processing module
- block chain
- storage
- file system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 145
- 238000013500 data storage Methods 0.000 claims abstract description 124
- 230000006870 function Effects 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 14
- 230000004048 modification Effects 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 14
- 230000003993 interaction Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000004931 aggregating effect Effects 0.000 claims description 3
- 239000008186 active pharmaceutical agent Substances 0.000 claims 1
- 238000012795 verification Methods 0.000 abstract 1
- 239000000306 component Substances 0.000 description 70
- 238000005516 engineering process Methods 0.000 description 11
- 238000012217 deletion Methods 0.000 description 8
- 230000037430 deletion Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于区块链的分布式存储***及方法、设备、存储介质。所述基于区块链的分布式存储***通过将区块链文件***与数据存储组件进行结合,利用区块链文件***存储数据指纹和数据存储地址,利用数据存储组件存储数据,可以通过区块链文件***中存储的数据指纹和数据存储地址对数据存储组件中存储的数据进行有效性验证,防止了数据存储组件中的数据被恶意篡改。并且,区块链文件***只需要记录数据的指纹、地址和状态,减少了区块链***的存储压力,提高了区块链的处理效率。另外,数据存储组件便于进行扩展,可以实现对各种复杂数据的存储支持,满足了多样化的存储需求,同时实现了整体存储的大容量。
Description
技术领域
本发明涉及区块链技术领域,特别地,涉及一种基于区块链的分布式存储***及方法、设备、计算机可读取的存储介质。
背景技术
区块链技术是指由若干台计算机设备组成点对点的分布式网络,共同维护一个完整的分布式数据库的新兴技术。区块链技术具有去中心化、公开透明、数据难以篡改且不易丢失等特性,在众多领域中具有广泛的应用。
但是,区块链技术严格来说也是一种去中心化的分布式存储技术,它使用P2P技术组网通信,利用加密算法防止数据篡改,通过共识算法使各节点的存储内容达成一致。其中,如图1所示,区块链文件***通常由两部分组成,一是记录具体事件的链式文件,二是用来记录***状态的数据库。比特币、以太坊、超级账本等都是区块链项目的代表,它们使用的加密算法与共识机制虽然不同,但都能产生信任与激励,不过受制于区块链技术的天然特性,目前,区块链分布式存储存在以下问题:
1)、处理效率低:可用的区块链项目一定要支持高并发的业务,这对区块链的处理效率提出了很高的要求,但是根据CAP原理,在保证一致性的前提下,很难实现效率的大幅提升。
2)、存储容量低:存储容量低是区块链长期面临的问题,虽然在联盟链中可以通过增加存储服务器的办法来解决,并同时解决数据存储内容单一的问题,但是这种解决方式会进一步拉低区块链的处理效率。
3)、数据存储与实际需求之间存在矛盾:区块链通常是以键值对形式的数据结构存储交易记录,不支持更加复杂的文件存储,比如图片、音频、视频等等,能够存储的内容比较单一,而在实际使用场景中,很多业务需要更加复杂的数据作为支撑,这就造成账本数据不能很好的满足实际业务需求,限制了区块链的应用拓展。
发明内容
本发明提供了一种基于区块链的分布式存储***及方法、设备、计算机可读取的存储介质,以解决目前的区块链的分布式存储方式存在的处理效率低、存储容量低、无法满足多样化的数据存储需求的技术问题。
根据本发明的一个方面,提供一种基于区块链的分布式存储***,包括:
用户端,用于供用户进行功能操作以产生一段数据流;
服务端,包括用于根据用户的功能操作请求对数据流进行相应处理的数据处理模块;
存储端,包括区块链文件***和数据存储组件,所述区块链文件***用于保存数据的地址和指纹,并记录数据的状态,所述数据存储组件用于存储数据;
API网关,用于对区块链文件***和数据存储组件的API进行聚合,以供所述数据处理模块进行调用;
所述数据处理模块接收到数据流后根据用户的不同功能操作请求进行相应的数据处理,并调用对应的API分别与区块链文件***和存储组件进行交互,将数据存储在数据存储组件中,将数据指纹和数据存储地址存储在区块链文件***中,并根据交互结果向用户端做出响应。
进一步地,所述数据存储组件包括用于保存结构化数据的关系型数据库、用于保存半结构化数据的NOSQL数据库、用于保存具有高速读写需求的数据的高速缓存池、用于保存非结构化数据的去中心化分布式存储组件和用于保存以文件为最小单位的非结构化数据的中心化分布式存储组件中的至少一种,所述数据处理模块还用于根据数据类型或数据读写需求调用不同的API与不同的数据存储组件进行交互。
进一步地,当用户进行读写操作时,所述数据处理模块通过哈希函数对读写操作产生的数据进行指纹计算,并根据数据类型或数据读写需求将其存储至对应的数据存储组件中,该数据存储组件将存储地址发送给数据处理模块,所述数据处理模块将数据指纹和数据地址打包发送给区块链文件***进行上链。
进一步地,当用户进行查询操作时,通过用户端将数据索引发送给数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并根据获得的数据地址向对应的数据存储组件索要数据,所述数据存储组件将数据发送给数据处理模块,所述数据处理模块基于获得的数据利用哈希函数计算数据指纹,若计算得到的数据指纹与从区块链文件***中获得的数据指纹一致,则证明数据没有被篡改,所述数据处理模块将获得的数据返回至用户端。
进一步地,当用户进行修改操作时,通过用户端将数据索引和修改内容发送至数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并根据获得的数据地址向对应的数据存储组件索要数据,所述数据存储组件将数据发送给数据处理模块,所述数据处理模块基于获得的数据利用哈希函数计算数据指纹,若计算得到的数据指纹与从区块链文件***中获得的数据指纹一致,则证明数据没有被篡改,所述数据处理模块再根据接收的修改内容对获得的数据进行修改,并计算得到修改后数据的新数据指纹,并将修改后的数据存储到相应的数据存储组件,所述数据存储组件将新数据地址发送给数据处理模块,所述数据处理模块将新数据指纹和新数据地址打包发送至区块链文件***进行上链。
进一步地,当用户进行删除操作时,通过用户端将数据索引和删除指令发送至数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并将删除指令发送给区块链文件***,所述区块链文件***对该数据指纹和数据地址进行删除,所述数据处理模块将获得的数据地址和删除指令发送给相应的数据存储组件,所述数据存储组件对数据进行删除。
进一步地,所述服务端还包括用于对数据流进行分发的反向代理模块,所述数据处理模块的数量为多个,所述反向代理模块可获取各个数据处理模块的工作状态,所述反向代理模块在接收到数据流后将其分发至空闲的数据处理模块。
另外,本发明还提供一种基于区块链的分布式存储方法,采用如上所述的基于区块链的分布式存储***,包括以下内容:
用户进行功能操作以产生一段数据流;
根据用户的功能操作请求对数据流进行相应处理,并调用对应的API分别与区块链文件***和存储组件进行交互,将数据存储在数据存储组件中,将数据指纹和数据存储地址存储在区块链文件***中;
根据交互结果向用户端做出响应。
另外,本发明还提供一种设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。
另外,本发明还提供一种计算机可读取的存储介质,用于存储基于区块链进行分布式存储的计算机程序,其该计算机程序在计算机上运行时执行如上所述的方法的步骤。
本发明具有以下效果:
本发明的基于区块链的分布式存储***,用户进行功能操作产生数据后,数据处理模块根据用户的功能操作请求对数据流进行相应的处理,包括数据的序列化、数据指纹计算、数据指纹比对等,然后调用对应的API分别与区块链文件***和存储组件进行交互,将数据存储在数据存储组件中,将数据指纹和数据存储地址存储在区块链文件***中进行上链。通过将区块链文件***与数据存储组件进行结合,利用区块链文件***存储数据指纹和数据存储地址,利用数据存储组件存储数据,可以通过区块链文件***中存储的数据指纹和数据存储地址对数据存储组件中存储的数据进行有效性验证,防止了数据存储组件中的数据被恶意篡改。并且,区块链文件***只需要记录数据的指纹、地址和状态,减少了区块链***的存储压力,提高了区块链的处理效率。另外,数据存储组件便于进行扩展,可以实现对各种复杂数据的存储支持,满足了多样化的存储需求,同时实现了整体存储的大容量。
另外,本发明的基于区块链的分布式存储方法、设备、计算机可读取的存储介质同样具有上述优点。
除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有的区块链文件***的组成架构示意图。
图2是本发明优选实施例的基于区块链的分布式存储***的网络架构示意图。
图3是本发明优选实施例中的基于区块链的分布式存储***在用户进行读写操作时的数据处理过程示意图。
图4是本发明优选实施例中的基于区块链的分布式存储***在用户进行查询操作时的数据处理过程示意图。
图5是本发明优选实施例中的基于区块链的分布式存储***在用户进行修改操作时的数据处理过程示意图。
图6是本发明优选实施例中的基于区块链的分布式存储***在用户进行删除操作时的数据处理过程示意图。
图7是本发明另一实施例的基于区块链的分布式存储方法的流程示意图。
具体实施方式
以下结合附图对本发明的实施例进行详细说明,但是本发明可以由下述所限定和覆盖的多种不同方式实施。
如图2所示,本发明的优选实施例提供一种基于区块链的分布式存储***,包括:
用户端,用于供用户进行功能操作以产生一段数据流;
服务端,包括用于根据用户的功能操作请求对数据流进行相应处理的数据处理模块;
存储端,包括区块链文件***和数据存储组件,所述区块链文件***用于保存数据的地址和指纹,并记录数据的状态,所述数据存储组件用于存储数据;
API网关,用于对区块链文件***和数据存储组件的API进行聚合,以供所述数据处理模块进行调用;
所述数据处理模块接收到数据流后根据用户的不同功能操作请求进行相应的数据处理,并调用对应的API分别与区块链文件***和存储组件进行交互,将数据存储在数据存储组件中,将数据指纹和数据存储地址存储在区块链文件***中,并根据交互结果向用户端做出响应。
可以理解,本实施例的基于区块链的分布式存储***,用户进行功能操作产生数据后,数据处理模块根据用户的功能操作请求对数据流进行相应的处理,包括数据的序列化、数据指纹计算、数据指纹比对等,然后调用对应的API分别与区块链文件***和存储组件进行交互,将数据存储在数据存储组件中,将数据指纹和数据存储地址存储在区块链文件***中进行上链。通过将区块链文件***与数据存储组件进行结合,利用区块链文件***存储数据指纹和数据存储地址,利用数据存储组件存储数据,可以通过区块链文件***中存储的数据指纹和数据存储地址对数据存储组件中存储的数据进行有效性验证,防止了数据存储组件中的数据被恶意篡改。并且,区块链文件***只需要记录数据的指纹、地址和状态,减少了区块链***的存储压力,提高了区块链的处理效率。另外,数据存储组件便于进行扩展,可以实现对各种复杂数据的存储支持,满足了多样化的存储需求,同时实现了整体存储的大容量。
可以理解,所述服务端还包括用于对数据流进行分发的反向代理模块,所述数据处理模块的数量为多个,所述反向代理模块可获取各个数据处理模块的工作状态,所述反向代理模块在接收到数据流后将其分发至空闲的数据处理模块。当同时有多个客户端同时产生数据流时,为了满足高并发的需求,所述反向代理模块可以获取每个数据处理模块的工作状态,并将多股数据流分发至各个空闲的数据处理模块,实现了前端的负载均衡,以满足高并发的业务场景。
可以理解,API是区块链文件***与数据存储组件暴露出来的、方便对其使用的接口,所述API网关将这些接口聚合,以实现协议转换、请求路由、熔断降级、数据缓存、负载均衡等功能,然后统一暴露给服务端中的数据处理模块进行调用。数据处理模块会根据数据流(读、写请求)的不同,调用不同的API来与区块链文件***和数据存储组件进行交互。
另外,所述区块链文件***与数据存储组件都属于后台存储端的一部分,两者区别在于存储的内容不同,经过数据处理模块处理后的数据流最终都会发送至区块链文件***和数据存储组件中进行存储。其中,所述区块链文件***保存数据的地址和指纹并记录数据的状态,数据存储组件负责实际数据的存储、备份,它们会在进行了相应操作之后将结果反馈给数据处理模块,通过数据处理模块进行交互。
其中,区块链***中的每个节点都完整或部分的拥有区块链文件***,区块链文件***具备三个功能,一是存储数据地址与数据指纹,二是存储数据的历史状态与修改记录,三是防止数据被恶意篡改。所述数据存储组件包括用于保存结构化数据的关系型数据库、用于保存半结构化数据的NOSQL数据库、用于保存具有高速读写需求的数据的高速缓存池、用于保存非结构化数据的去中心化分布式存储组件和用于保存以文件为最小单位的非结构化数据的中心化分布式存储组件中的至少一种,所述数据处理模块还用于根据数据类型或数据读写需求调用不同的API与不同的数据存储组件进行交互。可以理解,所述关系型数据库可以借助pgSQL等关系型数据库实现,以集群方式搭建;所述NOSQL数据库也采用集群的方式搭建;所述高速缓存池依靠Redis等缓存数据库实现,为了保证高速缓存池的性能,也采用集群的方式搭建;所述去中心化分布式存储组件用来保存音频、视频等非结构化数据,可以通过IPFS实现,则本发明的去中心化分布式存储组件作为依托区块链网络而存在的IPFS私有网络中的一个节点;所述中心化分布式存储组件通过HDFS实现,则本发明的中心化分布式存储组件作为依托区块链网络而存在的HDFS分布式存储***中的一个节点。
本发明的基于区块链的分布式存储***,可以允许不同类型的存储组件加入,可以对不同类型的数据存储提供良好的支持,进而为建立在分布式存储***之上的应用开发提供了多样化的选择。同时,在后端可以根据数据类型或数据读写需求调用不同的API与不同的数据存储组件进行交互,实现了存储端的负载均衡,可以很好地满足高并发业务场景的需求。并且,存储端的一部分(数据存储组件)以集群的方式搭建,一部分(区块链文件***)以P2P网络的形式组成,两者都拥有良好的可拓展性。以往的分布式存储***的可拓展性受到硬件成本的极大限制,增加***中服务器的数量要付出高昂成本,但是在云服务与容器技术发展成熟的今天,分布式存储***的可拓展性被展现的淋漓尽致。对于一个部署在云端或者容器中的分布式存储***而言,可以根据实际生产场景的需要,灵活的增加与减少服务器或者容器的数量,从而优化资源的分配。本发明的分布式存储***还将节点失效作为一种常态,并采用多种有效的错误检测与故障恢复机制,一些节点的失效并不会造成数据的丢失,也不会影响***整体的稳定性,这使得***可以稳定、持续的对外提供服务,保证了***的健壮与高容错。
可以理解,本发明的基于区块链的分布式存储***,将区块链技术与其他存储***的优秀特性结合在一起,形成一个新的分布式数据存储***,最终搭建一个基于区块链的高性能可拓展分布式数据平台,为搭建在其上层的应用提供高可用的数据支持。该高性能可拓展分布式存储框架总体可分为四层:最底层的技术支持层为存储***的实现提供各项技术支持;数据存储层负责具体数据的增删改查;数据处理层负责进行数据处理,以及同各数据存储组件交互;最上层的数据平台为应用提供多样的数据接口。数据平台要实现高可用、大容量、高效率、可拓展及强适应性,一是对高并发业务有很好的支持,二是要解决区块链存储容量低与处理效率低的问题,三是要保证存储***的可拓展性与稳定性,四是要支持多样的应用开发。数据处理层作为高性能可拓展分布式存储的核心组件,数据处理模块首先实现了负载均衡,为数据平台的高可用提供保障,其次还负责进行数据处理,包括数据的序列化、计算数据指纹、组件交互等等。数据存储层由区块链文件***与多个可选的、高性能的、可拓展的数据存储组件构成,它支持多种类型的数据存储,同时保证存储数据不被轻易篡改。技术支持层将Protocol Buffers、P2P网络、一致性哈希、Gossip、gRPC、Merkle-DAG等技术结合在一起,为各数据存储组件乃至整个存储***的稳定运行提供支持。
具体地,如图3所示,当用户进行读写操作时,所述数据处理模块通过哈希函数对读写操作产生的数据进行指纹计算,并根据数据类型或数据读写需求将其存储至对应的数据存储组件中,该数据存储组件将存储地址发送给数据处理模块,所述数据处理模块将数据指纹和数据地址打包发送给区块链文件***进行上链。
如图4所示,当用户进行查询操作时,通过用户端将数据索引和查询指令发送给数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并根据获得的数据地址向对应的数据存储组件索要数据,所述数据存储组件将数据发送给数据处理模块,所述数据处理模块基于获得的数据利用哈希函数计算数据指纹,若计算得到的数据指纹与从区块链文件***中获得的数据指纹一致,则证明数据没有被篡改,所述数据处理模块将获得的数据返回至用户端。
如图5所示,当用户进行修改操作时,通过用户端将数据索引和修改内容发送至数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并根据获得的数据地址向对应的数据存储组件索要数据,所述数据存储组件将数据发送给数据处理模块,所述数据处理模块基于获得的数据利用哈希函数计算数据指纹,若计算得到的数据指纹与从区块链文件***中获得的数据指纹一致,则证明数据没有被篡改,所述数据处理模块再根据接收的修改内容对获得的数据进行修改,并计算得到修改后数据的新数据指纹,并将修改后的数据存储到相应的数据存储组件,所述数据存储组件将新数据地址发送给数据处理模块,所述数据处理模块将新数据指纹和新数据地址打包发送至区块链文件***进行上链。
如图6所示,当用户进行删除操作时,通过用户端将数据索引和删除指令发送至数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并将删除指令发送给区块链文件***,所述区块链文件***对该数据指纹和数据地址进行删除,所述数据处理模块将获得的数据地址和删除指令发送给相应的数据存储组件,所述数据存储组件对数据进行删除。
可以理解,当用户需要对存储端存储的相关数据进行操作时,需要数据处理模块同时与区块链文件***和数据存储组件进行交互,目的是为了将区块链文件***中存储的信息与数据存储组件中存储的信息相关联,便于通过区块链文件***中存储的信息对数据存储组件中存储的信息进行有效应验证,防止数据存储组件中存储的数据被恶意篡改。
可以理解,如图7所示,本发明的另一实施例还提供一种基于区块链的分布式存储方法,优选采用如上所述的基于区块链的分布式存储***,该方法包括以下内容:
步骤S1:用户进行功能操作以产生一段数据流;
步骤S2:根据用户的功能操作请求对数据流进行相应处理,并调用对应的API分别与区块链文件***和存储组件进行交互,将数据存储在数据存储组件中,将数据指纹和数据存储地址存储在区块链文件***中;
步骤S3:根据交互结果向用户端做出响应。
可以理解,本实施例的基于区块链的分布式存储方法,用户进行功能操作产生数据后,数据处理模块根据用户的功能操作请求对数据流进行相应的处理,包括数据的序列化、数据指纹计算、数据指纹比对等,然后调用对应的API分别与区块链文件***和存储组件进行交互,将数据存储在数据存储组件中,将数据指纹和数据存储地址存储在区块链文件***中进行上链。通过将区块链文件***与数据存储组件进行结合,利用区块链文件***存储数据指纹和数据存储地址,利用数据存储组件存储数据,可以通过区块链文件***中存储的数据指纹和数据存储地址对数据存储组件中存储的数据进行有效性验证,防止了数据存储组件中的数据被恶意篡改。并且,区块链文件***只需要记录数据的指纹、地址和状态,减少了区块链***的存储压力,提高了区块链的处理效率。另外,数据存储组件便于进行扩展,可以实现对各种复杂数据的存储支持,满足了多样化的存储需求,同时实现了整体存储的大容量。
其中,当用户进行读写操作时,所述数据处理模块通过哈希函数对读写操作产生的数据进行指纹计算,并根据数据类型或数据读写需求将其存储至对应的数据存储组件中,该数据存储组件将存储地址发送给数据处理模块,所述数据处理模块将数据指纹和数据地址打包发送给区块链文件***进行上链。
当用户进行查询操作时,通过用户端将数据索引和查询指令发送给数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并根据获得的数据地址向对应的数据存储组件索要数据,所述数据存储组件将数据发送给数据处理模块,所述数据处理模块基于获得的数据利用哈希函数计算数据指纹,若计算得到的数据指纹与从区块链文件***中获得的数据指纹一致,则证明数据没有被篡改,所述数据处理模块将获得的数据返回至用户端。
当用户进行修改操作时,通过用户端将数据索引和修改内容发送至数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并根据获得的数据地址向对应的数据存储组件索要数据,所述数据存储组件将数据发送给数据处理模块,所述数据处理模块基于获得的数据利用哈希函数计算数据指纹,若计算得到的数据指纹与从区块链文件***中获得的数据指纹一致,则证明数据没有被篡改,所述数据处理模块再根据接收的修改内容对获得的数据进行修改,并计算得到修改后数据的新数据指纹,并将修改后的数据存储到相应的数据存储组件,所述数据存储组件将新数据地址发送给数据处理模块,所述数据处理模块将新数据指纹和新数据地址打包发送至区块链文件***进行上链。
当用户进行删除操作时,通过用户端将数据索引和删除指令发送至数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并将删除指令发送给区块链文件***,所述区块链文件***对该数据指纹和数据地址进行删除,所述数据处理模块将获得的数据地址和删除指令发送给相应的数据存储组件,所述数据存储组件对数据进行删除。
另外,本发明的另一实施例还提供一种设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。
另外,本发明的另一实施例还提供一种计算机可读取的存储介质,用于存储基于区块链进行分布式存储的计算机程序,该计算机程序在计算机上运行时执行如上所述的方法的步骤。
一般计算机可读取介质的形式包括:软盘(floppy disk)、可挠性盘片(flexibledisk)、硬盘、磁带、任何其与的磁性介质、CD-ROM、任何其余的光学介质、打孔卡片(punchcards)、纸带(paper tape)、任何其余的带有洞的图案的物理介质、随机存取存储器(RAM)、可编程只读存储器(PROM)、可抹除可编程只读存储器(EPROM)、快闪可抹除可编程只读存储器(FLASH-EPROM)、其余任何存储器芯片或卡匣、或任何其余可让计算机读取的介质。指令可进一步被一传输介质所传送或接收。传输介质这一术语可包含任何有形或无形的介质,其可用来存储、编码或承载用来给机器执行的指令,并且包含数字或模拟通信信号或其与促进上述指令的通信的无形介质。传输介质包含同轴电缆、铜线以及光纤,其包含了用来传输一计算机数据信号的总线的导线。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于区块链的分布式存储***,其特征在于,包括:
用户端,用于供用户进行功能操作以产生一段数据流;
服务端,包括用于根据用户的功能操作请求对数据流进行相应处理的数据处理模块;
存储端,包括区块链文件***和数据存储组件,所述区块链文件***用于保存数据的地址和指纹,并记录数据的状态,所述数据存储组件用于存储数据;
API网关,用于对区块链文件***和数据存储组件的API进行聚合,以供所述数据处理模块进行调用;
所述数据处理模块接收到数据流后根据用户的不同功能操作请求进行相应的数据处理,并调用对应的API分别与区块链文件***和存储组件进行交互,将数据存储在数据存储组件中,将数据指纹和数据存储地址存储在区块链文件***中,并根据交互结果向用户端做出响应。
2.如权利要求1所述的基于区块链的分布式存储***,其特征在于,所述数据存储组件包括用于保存结构化数据的关系型数据库、用于保存半结构化数据的NOSQL数据库、用于保存具有高速读写需求的数据的高速缓存池、用于保存非结构化数据的去中心化分布式存储组件和用于保存以文件为最小单位的非结构化数据的中心化分布式存储组件中的至少一种,所述数据处理模块还用于根据数据类型或数据读写需求调用不同的API与不同的数据存储组件进行交互。
3.如权利要求1所述的基于区块链的分布式存储***,其特征在于,当用户进行读写操作时,所述数据处理模块通过哈希函数对读写操作产生的数据进行指纹计算,并根据数据类型或数据读写需求将其存储至对应的数据存储组件中,该数据存储组件将存储地址发送给数据处理模块,所述数据处理模块将数据指纹和数据地址打包发送给区块链文件***进行上链。
4.如权利要求1所述的基于区块链的分布式存储***,其特征在于,当用户进行查询操作时,通过用户端将数据索引发送给数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并根据获得的数据地址向对应的数据存储组件索要数据,所述数据存储组件将数据发送给数据处理模块,所述数据处理模块基于获得的数据利用哈希函数计算数据指纹,若计算得到的数据指纹与从区块链文件***中获得的数据指纹一致,则证明数据没有被篡改,所述数据处理模块将获得的数据返回至用户端。
5.如权利要求1所述的基于区块链的分布式存储***,其特征在于,当用户进行修改操作时,通过用户端将数据索引和修改内容发送至数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并根据获得的数据地址向对应的数据存储组件索要数据,所述数据存储组件将数据发送给数据处理模块,所述数据处理模块基于获得的数据利用哈希函数计算数据指纹,若计算得到的数据指纹与从区块链文件***中获得的数据指纹一致,则证明数据没有被篡改,所述数据处理模块再根据接收的修改内容对获得的数据进行修改,并计算得到修改后数据的新数据指纹,并将修改后的数据存储到相应的数据存储组件,所述数据存储组件将新数据地址发送给数据处理模块,所述数据处理模块将新数据指纹和新数据地址打包发送至区块链文件***进行上链。
6.如权利要求1所述的基于区块链的分布式存储***,其特征在于,当用户进行删除操作时,通过用户端将数据索引和删除指令发送至数据处理模块,所述数据处理模块利用接收到的数据索引向区块链文件***索要对应的数据指纹和数据地址,并将删除指令发送给区块链文件***,所述区块链文件***对该数据指纹和数据地址进行删除,所述数据处理模块将获得的数据地址和删除指令发送给相应的数据存储组件,所述数据存储组件对数据进行删除。
7.如权利要求1所述的基于区块链的分布式存储***,其特征在于,所述服务端还包括用于对数据流进行分发的反向代理模块,所述数据处理模块的数量为多个,所述反向代理模块可获取各个数据处理模块的工作状态,所述反向代理模块在接收到数据流后将其分发至空闲的数据处理模块。
8.一种基于区块链的分布式存储方法,采用如权利要求1~7任一项所述的基于区块链的分布式存储***,其特征在于,包括以下内容:
用户进行功能操作以产生一段数据流;
根据用户的功能操作请求对数据流进行相应处理,并调用对应的API分别与区块链文件***和存储组件进行交互,将数据存储在数据存储组件中,将数据指纹和数据存储地址存储在区块链文件***中;
根据交互结果向用户端做出响应。
9.一种设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如权利要求8所述的方法的步骤。
10.一种计算机可读取的存储介质,用于存储基于区块链进行分布式存储的计算机程序,其特征在于,该计算机程序在计算机上运行时执行如权利要求8所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110647882.0A CN113407512A (zh) | 2021-06-10 | 2021-06-10 | 基于区块链的分布式存储***及方法、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110647882.0A CN113407512A (zh) | 2021-06-10 | 2021-06-10 | 基于区块链的分布式存储***及方法、设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113407512A true CN113407512A (zh) | 2021-09-17 |
Family
ID=77683421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110647882.0A Pending CN113407512A (zh) | 2021-06-10 | 2021-06-10 | 基于区块链的分布式存储***及方法、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113407512A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273410A (zh) * | 2017-05-03 | 2017-10-20 | 上海点融信息科技有限责任公司 | 基于区块链的分布式存储 |
CN109493055A (zh) * | 2018-11-28 | 2019-03-19 | 深圳力维智联技术有限公司 | 基于区块链的入网区块链设备、数据处理方法及装置 |
CN109981772A (zh) * | 2019-03-22 | 2019-07-05 | 西安电子科技大学 | 一种基于区块链的多域数据共享交换平台架构 |
CN110149353A (zh) * | 2018-02-11 | 2019-08-20 | 陕西爱尚物联科技有限公司 | 一种物联网方法及其*** |
US20190311116A1 (en) * | 2016-12-06 | 2019-10-10 | Alibaba Group Holding Limited | Method, apparatus, and system for service data processing and verification |
CN110912937A (zh) * | 2019-12-23 | 2020-03-24 | 杭州中科先进技术研究院有限公司 | 一种基于区块链的数字存证平台和存证方法 |
-
2021
- 2021-06-10 CN CN202110647882.0A patent/CN113407512A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190311116A1 (en) * | 2016-12-06 | 2019-10-10 | Alibaba Group Holding Limited | Method, apparatus, and system for service data processing and verification |
CN107273410A (zh) * | 2017-05-03 | 2017-10-20 | 上海点融信息科技有限责任公司 | 基于区块链的分布式存储 |
CN110149353A (zh) * | 2018-02-11 | 2019-08-20 | 陕西爱尚物联科技有限公司 | 一种物联网方法及其*** |
CN109493055A (zh) * | 2018-11-28 | 2019-03-19 | 深圳力维智联技术有限公司 | 基于区块链的入网区块链设备、数据处理方法及装置 |
CN109981772A (zh) * | 2019-03-22 | 2019-07-05 | 西安电子科技大学 | 一种基于区块链的多域数据共享交换平台架构 |
CN110912937A (zh) * | 2019-12-23 | 2020-03-24 | 杭州中科先进技术研究院有限公司 | 一种基于区块链的数字存证平台和存证方法 |
Non-Patent Citations (2)
Title |
---|
赵进延: "《数字政府 服务社会》", 31 December 2019, 知识产权出版社 * |
陈艳平,徐受蓉: "《Java语言程序设计实用教程 第2版》", 31 January 2019, 北京理工大学出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11729073B2 (en) | Dynamic scaling of storage volumes for storage client file systems | |
US20190068690A1 (en) | Automated management of resource attributes across network-based services | |
CN106446159B (zh) | 一种存储文件的方法、第一虚拟机及名称节点 | |
US10609123B2 (en) | Hybrid quorum policies for durable consensus in distributed systems | |
CN103561101A (zh) | 一种网络文件*** | |
CN112910880B (zh) | 虚拟房间创建方法、***、装置、设备及介质 | |
CN105282244B (zh) | 一种数据处理方法、装置、服务器及控制器 | |
CN109547537A (zh) | 基于SAN存储共享卷实现openstack高可用的方法 | |
WO2023284473A1 (zh) | 数据管理方法、装置、计算机设备及存储介质 | |
US11178197B2 (en) | Idempotent processing of data streams | |
US20200401329A1 (en) | Opportunistic storage service | |
CN106873902B (zh) | 一种文件存储***、数据调度方法及数据节点 | |
WO2010086922A1 (ja) | ストレージシステム | |
CN105978744B (zh) | 一种资源分配方法、装置及*** | |
CN113885798A (zh) | 一种数据操作方法、装置、设备及介质 | |
CN110618790A (zh) | 基于重复数据删除的雾存储数据去冗余方法 | |
CN108153759A (zh) | 一种分布式数据库的数据传输方法、中间层服务器及*** | |
CN113472864B (zh) | 高性能的区块链分布式存储***及方法、设备、存储介质 | |
CN113407512A (zh) | 基于区块链的分布式存储***及方法、设备、存储介质 | |
CN108959313B (zh) | 面向海量小文件的并发处理方法、装置和存储介质 | |
CN109522294A (zh) | 一种分布式数据缓存***和数据缓存方法 | |
CN116701452A (zh) | 数据处理方法、相关设备、存储介质及程序产品 | |
CN105389368A (zh) | 一种mpp架构数据库集群元数据管理方法 | |
CN112579343A (zh) | 区块链节点数据的恢复方法及装置 | |
CN113254415B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210917 |
|
RJ01 | Rejection of invention patent application after publication |