CN110442561A - 基于区块链的分布式文件存储系统及其存储方法 - Google Patents
基于区块链的分布式文件存储系统及其存储方法 Download PDFInfo
- Publication number
- CN110442561A CN110442561A CN201910608782.XA CN201910608782A CN110442561A CN 110442561 A CN110442561 A CN 110442561A CN 201910608782 A CN201910608782 A CN 201910608782A CN 110442561 A CN110442561 A CN 110442561A
- Authority
- CN
- China
- Prior art keywords
- file
- module
- block chain
- file destination
- destination
- 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.)
- Granted
Links
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6272—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种基于区块链的分布式文件存储系统及其存储方法,所述存储系统包括客户端,用于登录和注册,并完成智能合约的编写/修改;分析模块,用于分析固定时间内目标文件的读取次数,以完成目标文件的分类;缓存模块,用于存储读取次数较多的目标文件;存储模块,用于根据不同的文件分类,采用不同存储方案分配节点存储目标文件,并生成相应信息发送至区块链模块;区块链模块,用于存储接收到的目标文件的相关信息。本发明实现了通过实时删除/调换智能合约,从而保证各个模块正常高效运行;将存入的文件进行分类,进行不同方案存储,从而保证了存取速率和降低存储成本,对区块链与文件系统高效结合起到很大的作用。
Description
技术领域
本发明涉及区块链、区块链的文件存储领域,具体涉及一种基于区块链的分布式文件存储系统及其存储方法。
背景技术
传统主流的存储方式为云存储,云存储给大家带来很多的便利,但其所需的成本比较高,不仅需要建设数据中心,同时随着业务量的增长,用中心化的云存储架构来提供数据存取服务是昂贵和低效的,而且用户希望自己所存的文件能很好的被加密,不能被修改,因此,简单的云存储越来越不能满足社会的需求。
随着区块链的诞生,数据被保护得到了进一步的提升,于是越来越多的场景引入区块链用于存储,而区块链中的每一个区块的大小只有几MB,并不能实现文件存储,因此需要将区块链与文件系统结合,从而实现文件的安全存储。目前的文件存储比较单一,只是简单地将文件存入文件系统,得到哈希值值存入区块链,这样存储方式无法按用户想要的进行设计,同时想要更改系统某一模块的功能相对麻烦。而模块功能的实现主要依赖于智能合约,根据智能合约所设计的规则,来实现模块内部和模块与模块之间的运行与协作,因此,实现智能合约的可拔插,能改善文件存储的效率。
有鉴于此,确有必要提出一种基于区块链的分布式文件存储系统及其存储方法,以解决上述问题。
发明内容
本发明的目的在于提供一种基于区块链的分布式文件存储系统及其存储方法,不仅能实现区块链与文件系统的结合,同时能提高文件存储效率,更改指定模块的智能合约,从而更改其运行规则。
为实现上述目的,本发明提供了一种基于区块链的分布式文件存储系统,包括:
客户端,用于登录和注册,并完成智能合约的编写/修改;
分析模块,用于分析固定时间内目标文件的读取次数,以完成目标文件的分类;
缓存模块,用于存储读取次数较多的目标文件;
存储模块,用于根据不同的文件分类,采用不同存储方案分配节点存储目标文件,并生成相应信息发送至区块链模块;
区块链模块,用于存储接收到的目标文件的相关信息。
可选的,所述客户端具有查询文件信息、上传下载文件、编写智能合约和查看已有合约四个页面,以实现对目标文件的增删改查和智能合约的可拔插。
可选的,所述分析模块还用于在客户端发出读取目标文件请求时,进行密钥验证。
可选的,所述目标文件的分类包括硬文件和软文件,其中,硬文件为不常用文件,软文件为常用文件。
可选的,所述缓存模块中存储的目标文件为软文件。
可选的,当分析模块分析出目标文件为软文件时,则增加一个备份节点,以使用三节点存储该目标文件,并将该目标文件发送给缓存模块进行存储。
可选的,当分析模块分析出目标文件为硬文件时,则使用两节点存储该目标文件,并将该目标文件存储于存储模块中。
为实现上述目的,本发明还提供了一种基于区块链的分布式文件存储方法,主要包括以下步骤:
步骤1:通过客户端进行注册、登录,并完成目标文件的上传/读取和智能合约的编写/修改;
步骤2:分析模块对目标文件进行分析,若在固定时间内,目标文件多次被请求,则将该目标文件定义为软文件,否则定义为硬文件,同时发送信号给缓存模块、存储模块和区块链模块;
步骤3:当接收到分析模块发出的信号时,缓存模块从文件系统中调用并存储相应的软文件;
步骤4:当接收到分析模块发出的信号时,存储模块为硬文件分配两个节点进行存储、为软文件分配三个节点进行存储,并生成相应的文件信息发送给区块链模块进行存储。
可选的,所述步骤1具体包括:
(1)目标文件的上传/读取:将目标文件的上传/读取指令发送到分析模块,分析模块判断发出指令者身份和指令内容是否合法,若合法,则进入步骤2;否则,丢弃指令;
(2)智能合约的编写/修改:用户可将已写好的智能合约替换到分析模块、缓存模块、存储模块、区块链模块的任意一个中,以便在不关闭网络的情况下修改相应模块的功能。
可选的,所述步骤2中的分析过程具体包括:
(1)若目标文件为硬文件,且步骤1中客户端发出的是上传指令,则将目标文件存入存储模块中,并将对应的文件信息存入区块链模块;
(2)若目标文件为软文件,且步骤1中客户端发出的是上传指令,则将目标文件存入存储模块中,并将对应的文件信息存入区块链模块,同时将该目标文件在缓存模块中进行更新;
(3)若目标文件为硬文件,且步骤1中客户端发出的是读取指令,则在区块链模块读取文件信息后,与存储模块中的文件信息进行对比,若相同,则表示目标文件未被改动,可直接在存储模块中进行调取,并发送到客户端;
(4)若目标文件为软文件,且步骤1中客户端发出的是读取指令,则可直接在缓存模块中读取相应的文件信息,并发送到客户端。
本发明的有益效果是:本发明将区块链与文件系统相结合,可保证文件的安全性,同时增加智能合约可拔插,可方便用户对模块运行方式进行更改;另外,增加了分析模块和缓存模块,不仅能验证用户身份,决定请求是否能被执行,同时也能加快读取效率,从而优化文件系统。
附图说明
图1是本发明基于区块链的分布式文件存储系统的结构图。
图2是本发明中硬文件的储存流程示意图。
图3是本发明中软文件的储存流程示意图。
图4是本发明中硬文件的读取流程示意图。
图5是本发明中软文件的读取流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,本发明提供了一种基于区块链的分布式文件存储系统,包括客户端、分析模块、缓存模块、存储模块和区块链模块。其中,分析模块、缓存模块、存储模块和区块链模块属于服务器端。
客户端,具有查询文件信息、上传下载文件、编写智能合约和查看已有合约四个页面,以实现对目标文件的增删改查和智能合约的可拔插。用户可以利用客户端完成登录和注册,从而进行下一步操作。在客户端处,编写智能合约页面可供用户根据实际需要编写相应的智能合约,查看已有合约页面可供用户查看已部署的智能合约,或将自己编写的智能合约部署到相应的位置,从而实现在不关闭网络、不影响数据的情况下,实现智能合约的编写/修改,从而改变相应模块的运行规则。
分析模块,用于在客户端发出读取目标文件请求时,对该请求进行身份和指令的验证,并验证其密钥,只有验证通过,才能执行其请求。同时,分析模块会定位指令所指向的目标文件,对其被读取次数进行分析,以完成目标文件的分类;若在固定时间内,该目标文件多次被读取,则将该目标文件定义为软文件(常用文件),否则定义为硬文件(不常用文件),同时发送信号给缓存模块、存储模块和区块链模块。
缓存模块,用于存储读取次数较多的目标文件(即软文件),当缓存模块接受到分析模块发出的信号时,从文件系统中调用并存储相应的软文件,同时根据请求,将该软文件传给客户端。
存储模块,用于根据不同的文件分类,采用不同存储方案分配节点存储目标文件,并生成相应信息发送至区块链模块。具体地,存储模块为新得到的目标文件分配两个节点进行存储,并生成相关的文件信息发给区块链模块。根据分析模块发来的信号,当分析模块分析出目标文件为硬文件时,则存储模块保持此存储方式(即两个节点存储)不变,并将该硬文件存储于存储模块中;若目标文件为软文件,则存储模块增加一个备份节点,以使用三节点存储该软文件,并将该软文件发送给缓存模块进行存储。
区块链模块,用于存放目标文件的相关信息,当用户读取目标文件时,须先向区块链模块调取目标文件的相关信息,然后根据所调取的文件信息去相应的模块中调用。如:若调取的为软文件,则去缓存模块中直接调取,若为硬文件,则根据文件信息,去文件系统的存储模块中调用。
本发明还提供了一种基于区块链的分布式文件存储方法,主要包括以下步骤:
步骤1:通过客户端进行注册、登录,并完成目标文件的上传/读取和智能合约的编写/修改;
步骤2:分析模块对目标文件进行分析,若在固定时间内,目标文件多次被请求,则将该目标文件定义为软文件,否则定义为硬文件,同时发送信号给缓存模块、存储模块和区块链模块;
步骤3:当接收到分析模块发出的信号时,缓存模块从文件系统中调用并存储相应的软文件;
步骤4:当接收到分析模块发出的信号时,存储模块为硬文件分配两个节点进行存储、为软文件分配三个节点进行存储,并生成相应的文件信息发送给区块链模块进行存储。
以下对步骤1-步骤2进行详细说明。
所述步骤1具体包括:
(1)目标文件的上传/读取:将目标文件的上传/读取指令发送到分析模块,分析模块判断发出指令者身份和指令内容是否合法,若合法,则进入步骤2;否则,丢弃指令;
(2)智能合约的编写/修改:用户可将已写好的智能合约替换到分析模块、缓存模块、存储模块、区块链模块的任意一个中,以便在不关闭网络的情况下修改相应模块的功能。
所述步骤2中的分析过程具体包括:
如图2所示,若目标文件为硬文件,且步骤1中客户端发出的是上传指令,则将目标文件存入存储模块中,并将对应的文件信息存入区块链模块;
如图3所示,若目标文件为软文件,且步骤1中客户端发出的是上传指令,则将目标文件存入存储模块中,并将对应的文件信息存入区块链模块,同时将该目标文件在缓存模块中进行更新;
如图4所示,若目标文件为硬文件,且步骤1中客户端发出的是读取指令,则在区块链模块读取文件信息后,与存储模块中的文件信息进行对比,若相同,则表示目标文件未被改动,可直接在存储模块中进行调取,并发送到客户端;
如图5所示,若目标文件为软文件,且步骤1中客户端发出的是读取指令,则可直接在缓存模块中读取相应的文件信息,并发送到客户端。
综上所述,本发明实现了将区块链与文件系统相结合,保证了文件的安全性,同时增加智能合约可拔插,可方便用户对模块运行方式进行更改;增加了分析模块和缓存模块,不仅能验证用户身份,决定请求是否能被执行,同时也能加快读取效率,从而优化文件系统。
以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种基于区块链的分布式文件存储系统,其特征在于,包括:
客户端,用于登录和注册,并完成智能合约的编写/修改;
分析模块,用于分析固定时间内目标文件的读取次数,以完成目标文件的分类;
缓存模块,用于存储读取次数较多的目标文件;
存储模块,用于根据不同的文件分类,采用不同存储方案分配节点存储目标文件,并生成相应信息发送至区块链模块;
区块链模块,用于存储接收到的目标文件的相关信息。
2.根据权利要求1所述的基于区块链的分布式文件存储系统,其特征在于:所述客户端具有查询文件信息、上传下载文件、编写智能合约和查看已有合约四个页面,以实现对目标文件的增删改查和智能合约的可拔插。
3.根据权利要求1所述的基于区块链的分布式文件存储系统,其特征在于:所述分析模块还用于在客户端发出读取目标文件请求时,进行密钥验证。
4.根据权利要求1所述的基于区块链的分布式文件存储系统,其特征在于:所述目标文件的分类包括硬文件和软文件,其中,硬文件为不常用文件,软文件为常用文件。
5.根据权利要求4所述的基于区块链的分布式文件存储系统,其特征在于:所述缓存模块中存储的目标文件为软文件。
6.根据权利要求5所述的基于区块链的分布式文件存储系统,其特征在于:当分析模块分析出目标文件为软文件时,则增加一个备份节点,以使用三节点存储该目标文件,并将该目标文件发送给缓存模块进行存储。
7.根据权利要求4所述的基于区块链的分布式文件存储系统,其特征在于:当分析模块分析出目标文件为硬文件时,则使用两节点存储该目标文件,并将该目标文件存储于存储模块中。
8.一种基于区块链的分布式文件存储方法,其特征在于,主要包括以下步骤:
步骤1:通过客户端进行注册、登录,并完成目标文件的上传/读取和智能合约的编写/修改;
步骤2:分析模块对目标文件进行分析,若在固定时间内,目标文件多次被请求,则将该目标文件定义为软文件,否则定义为硬文件,同时发送信号给缓存模块、存储模块和区块链模块;
步骤3:当接收到分析模块发出的信号时,缓存模块从文件系统中调用并存储相应的软文件;
步骤4:当接收到分析模块发出的信号时,存储模块为硬文件分配两个节点进行存储、为软文件分配三个节点进行存储,并生成相应的文件信息发送给区块链模块进行存储。
9.根据权利要求8所述的基于区块链的分布式文件存储方法,其特征在于,所述步骤1具体包括:
(1)目标文件的上传/读取:将目标文件的上传/读取指令发送到分析模块,分析模块判断发出指令者身份和指令内容是否合法,若合法,则进入步骤2;否则,丢弃指令;
(2)智能合约的编写/修改:用户可将已写好的智能合约替换到分析模块、缓存模块、存储模块、区块链模块的任意一个中,以便在不关闭网络的情况下修改相应模块的功能。
10.根据权利要求8所述的基于区块链的分布式文件存储方法,其特征在于,所述步骤2中的分析过程具体包括:
(1)若目标文件为硬文件,且步骤1中客户端发出的是上传指令,则将目标文件存入存储模块中,并将对应的文件信息存入区块链模块;
(2)若目标文件为软文件,且步骤1中客户端发出的是上传指令,则将目标文件存入存储模块中,并将对应的文件信息存入区块链模块,同时将该目标文件在缓存模块中进行更新;
(3)若目标文件为硬文件,且步骤1中客户端发出的是读取指令,则在区块链模块读取文件信息后,与存储模块中的文件信息进行对比,若相同,则表示目标文件未被改动,可直接在存储模块中进行调取,并发送到客户端;
(4)若目标文件为软文件,且步骤1中客户端发出的是读取指令,则可直接在缓存模块中读取相应的文件信息,并发送到客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910608782.XA CN110442561B (zh) | 2019-07-08 | 2019-07-08 | 基于区块链的分布式文件存储系统及其存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910608782.XA CN110442561B (zh) | 2019-07-08 | 2019-07-08 | 基于区块链的分布式文件存储系统及其存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442561A true CN110442561A (zh) | 2019-11-12 |
CN110442561B CN110442561B (zh) | 2022-10-14 |
Family
ID=68429579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910608782.XA Active CN110442561B (zh) | 2019-07-08 | 2019-07-08 | 基于区块链的分布式文件存储系统及其存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442561B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506549A (zh) * | 2020-04-16 | 2020-08-07 | 深圳市网心科技有限公司 | 基于区块链的文件处理系统、方法、设备及存储介质 |
CN111913928A (zh) * | 2020-07-22 | 2020-11-10 | 中信银行股份有限公司 | 一种用于区块存储的分布式小文件系统、方法、存储介质及电子设备 |
CN112783440A (zh) * | 2020-12-31 | 2021-05-11 | 深圳大学 | 一种面向区块链用户节点的数据存储方法及装置 |
CN112835855A (zh) * | 2021-02-22 | 2021-05-25 | 北京众享比特科技有限公司 | 一种基于区块链的文件存储方法和系统 |
WO2022141561A1 (zh) * | 2020-12-31 | 2022-07-07 | 深圳大学 | 一种面向区块链用户节点的数据存储方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107944868A (zh) * | 2017-12-07 | 2018-04-20 | 杭州趣链科技有限公司 | 一种基于区块链智能合约的电子存证系统和管理方法 |
CN108632268A (zh) * | 2018-04-28 | 2018-10-09 | 腾讯科技(深圳)有限公司 | 区块链访问的鉴权方法和装置、存储介质、电子装置 |
CN109828958A (zh) * | 2019-01-31 | 2019-05-31 | 北京瑞卓喜投科技发展有限公司 | 基于区块链的事件记录方法及记录系统 |
-
2019
- 2019-07-08 CN CN201910608782.XA patent/CN110442561B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107944868A (zh) * | 2017-12-07 | 2018-04-20 | 杭州趣链科技有限公司 | 一种基于区块链智能合约的电子存证系统和管理方法 |
CN108632268A (zh) * | 2018-04-28 | 2018-10-09 | 腾讯科技(深圳)有限公司 | 区块链访问的鉴权方法和装置、存储介质、电子装置 |
CN109828958A (zh) * | 2019-01-31 | 2019-05-31 | 北京瑞卓喜投科技发展有限公司 | 基于区块链的事件记录方法及记录系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506549A (zh) * | 2020-04-16 | 2020-08-07 | 深圳市网心科技有限公司 | 基于区块链的文件处理系统、方法、设备及存储介质 |
CN111913928A (zh) * | 2020-07-22 | 2020-11-10 | 中信银行股份有限公司 | 一种用于区块存储的分布式小文件系统、方法、存储介质及电子设备 |
CN112783440A (zh) * | 2020-12-31 | 2021-05-11 | 深圳大学 | 一种面向区块链用户节点的数据存储方法及装置 |
WO2022141561A1 (zh) * | 2020-12-31 | 2022-07-07 | 深圳大学 | 一种面向区块链用户节点的数据存储方法及装置 |
CN112835855A (zh) * | 2021-02-22 | 2021-05-25 | 北京众享比特科技有限公司 | 一种基于区块链的文件存储方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110442561B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442561A (zh) | 基于区块链的分布式文件存储系统及其存储方法 | |
US20220198410A1 (en) | Providing data provenance, permissioning, compliance, and access control for data storage systems using an immutable ledger overlay network | |
CN114065283B (zh) | 一种轻量级可循环再生的区块链存储方法及装置 | |
CN106503574B (zh) | 区块链安全存储方法 | |
WO2020154865A1 (zh) | 一种支持多模标识网络寻址渐进去ip的方法、系统及存储介质 | |
CN113821564B (zh) | 异构并行区块链及其链上数据与链下合约协同方法 | |
CN110945853A (zh) | 基于联盟链投票共识算法产生及管理多模标识网络的方法 | |
CN111444277B (zh) | 一种基于区块链技术的反恐情报协同共享平台及方法 | |
CN105812482B (zh) | 通讯信息的共享方法及服务器平台 | |
CN104104702A (zh) | 面向家庭物联网的云计算架构 | |
CN108776758A (zh) | 一种雾存储中支持动态所有权管理的块级数据去重方法 | |
CN109948373A (zh) | 一种多方业务数据交互方法 | |
US20190372882A1 (en) | Communication device and communication method | |
CN110109874A (zh) | 一种基于区块链的无中心分布式文件检索方法 | |
CN111723126B (zh) | 基于区块链的冷热时序数据分类处理方法及存储系统 | |
CN112417480A (zh) | 一种基于区块链的数据存储系统及方法 | |
CN102932443A (zh) | 基于hdfs集群的分布式云存储系统 | |
Aswini et al. | Artificial Intelligence Based Smart Routing in Software Defined Networks. | |
US20190050438A1 (en) | System and method for updating information | |
Mahapatro et al. | Blockchain segmentation: a storage optimization technique for large data | |
CN109670027A (zh) | 一种影像查询、缓存、留存方法及系统 | |
CN116401210A (zh) | 面向云边协同的多层级密文存储系统 | |
CN109949881A (zh) | 一种基于区块链的大数据处理方法及设备 | |
Liu et al. | Joint optimization strategy for QoE-aware encrypted video caching and content distributing in multi-edge collaborative computing environment | |
KR102202645B1 (ko) | 관계형 엣지 서버들 간 데이터 공조 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |