基于区块链的文件存储方法及系统技术方案

技术编号:30704368 阅读:15 留言:0更新日期:2021-11-06 09:46
本发明专利技术公开了一种基于区块链的文件存储方法及系统,涉及区块链技术领域,该方法包括:客户端将文件上传请求通过服务器发送至区块链;区块链根据文件上传请求判断用户是否有权上传文件,若有,则通过服务器将相关文件上链存储,通过服务器返回上传成功提示至客户端,若没有,则通过服务器返回上传失败提示至客户端;客户端将文件下载请求通过服务器发送至区块链;区块链根据文件下载请求判断用户是否有权下载文件,若有,则将查找到的相应文件通过服务器返回至客户端,若没有,则通过服务器返回下载失败提示至客户端。本发明专利技术将文件存储和区块链技术形结合,降低的存储成本和权限数据被恶意篡改的概率。被恶意篡改的概率。被恶意篡改的概率。

【技术实现步骤摘要】
基于区块链的文件存储方法及系统


[0001]本专利技术涉及区块链
,尤其涉及基于区块链的文件存储方法及系统。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]通常情况下,现有系统都是部署在各自公司或机构的系统中心,用户所有的文件被集中式存储。集中式存储需要大容量存储器存储和备份,可扩展性差、价格昂贵、存取效率低,数据由专人维护和安全的保证,系统人员操作失误、黑客对系统攻击均会导致文件数据的丢失或篡改,极大的影响的数据的安全性和可信度,给用户带来极大经济损失和权益纠纷。此外,当突发战争或重大自然灾害时,会对整个系统造成毁灭性打击以至难以恢复。此外,近些年提出了分布式存储,分布式存储是采用可扩展的系统结构,将数据分散存储在网络上的多台独立设备上,一般采用标准X86服务器和互联网外联,并在其上运行相关存储软件,系统对外作为一个整体提供存储服务。分布式存储虽然将数据分布式存储到多台服务器上,提高了存储空间的利用率降低了运营成本,但对外服务仍是一个整体,不是真正意义上的分布式,并且无法确保数据的不可篡改行。

技术实现思路

[0004]本专利技术实施例提供一种基于区块链的文件存储方法,用以解决现有技术中通过集中式存储或分布式存储进行文件存储存在不安全、效率低等的技术问题,该方法包括:
[0005]客户端将文件上传请求通过服务器发送至区块链;
[0006]区块链根据文件上传请求判断用户是否有权上传文件,若有,则通过服务器将相关文件上链存储,通过服务器返回上传成功提示至客户端,若没有,则通过服务器返回上传失败提示至客户端;
[0007]客户端将文件下载请求通过服务器发送至区块链;
[0008]区块链根据文件下载请求判断用户是否有权下载文件,若有,则将查找到的相应文件通过服务器返回至客户端,若没有,则通过服务器返回下载失败提示至客户端。
[0009]本专利技术实施例还提供一种基于区块链的文件存储系统,用以解决现有技术中通过集中式存储或分布式存储进行文件存储存在不安全、效率低等的技术问题,该系统包括:客户端、服务器和区块链,所述客户端、服务器和区块链具体用于:实现上述所述的基于区块链的文件存储方法。
[0010]本专利技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于区块链的文件存储方法。
[0011]本专利技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述所述基于区块链的文件存储方法的步骤。
[0012]本专利技术实施例中,与现有技术中通过集中式存储或分布式存储进行文件存储的技术方案相比,通过客户端将文件上传请求通过服务器发送至区块链;区块链根据文件上传请求判断用户是否有权上传文件,若有,则通过服务器将相关文件上链存储,通过服务器返回上传成功提示至客户端,若没有,则通过服务器返回上传失败提示至客户端;客户端将文件下载请求通过服务器发送至区块链;区块链根据文件下载请求判断用户是否有权下载文件,若有,则将查找到的相应文件通过服务器返回至客户端,若没有,则通过服务器返回下载失败提示至客户端,本专利技术可以将文件存储和区块链技术形结合,融合了区块链分布式、不可篡改的特点,降低的存储成本并大大降低了权限数据被恶意篡改的概率,并能有效的抵抗自然灾害的重大不利因素带来的区域性影响,提升了系统的健壮性。
附图说明
[0013]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0014]图1为本专利技术实施例中基于区块链的文件存储系统结构框图;
[0015]图2为本专利技术实施例中基于区块链的文件存储系统的文件上传交互图;
[0016]图3为本专利技术实施例中基于区块链的文件存储系统的文件下载交互图;
[0017]图4为本专利技术实施例中基于区块链的文件存储方法流程图一;
[0018]图5为本专利技术实施例中基于区块链的文件存储方法流程图二;
[0019]图6为本专利技术实施例中基于区块链的文件存储方法流程图三;
[0020]图7为本专利技术实施例中基于区块链的文件存储方法流程图四;
[0021]图8为本专利技术实施例中议会选举算法涉及节点以及节点交互图;
[0022]图9为本专利技术实施例中基于区块链的文件存储方法流程图五;
[0023]图10为本专利技术实施例中基于区块链的文件存储方法流程图六;
[0024]图11为本专利技术实施例中基于区块链的文件存储方法流程图七。
具体实施方式
[0025]为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。
[0026]术语解释:
[0027]区块链技术:是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,它本质上是一个去中心化的数据库,用于记录交易、跟踪资产和建立信任。
[0028]文件存储:也叫文件级或者基于文件的存储,它是以一种分层的存储结构存储数据。数据保存于文件和文件夹中,同样的格式用于存储和检索。
[0029]基于现有技术中存在的问题,本专利技术提出一种基于区块链的文件存储系统和方法,基于区块链技术对用户文件进行管理。基于区块链的分布式、不可篡改的特征,所有用
户文件都上链存储,各节点达成统一共识。数据不会因为任意节点的改变而改变,从而保证数据的安全性和可信性。
[0030]图1为本专利技术实施例中基于区块链的文件存储系统结构框图,如图1所示,该系统包括:客户端、服务器和区块链。服务器包括文件管理模块,文件管理模块用于处理用户对文件的上传和下载功能。区块链主要作用向文件管理模块提供文件数据,以二进制形式返回,使用一种类似议会选举的共识算法,确保数据的正确性。
[0031]系统间交互机制如下图2和图3所示:
[0032](1)文件上传
[0033]如图2所示,上传文件时,用户从客户端向服务器发起请求,服务器调用文件管理模块,文件管理模块将请求中携带的用户id,文件数据发送至区块链,区块链根据议会选举算法查询出用户的角色及交易的状态,根据角色和状态判断是否允许该用户上传,若允许,则将文件上链存储,返回上传成功的提示,反之,返回上传失败。
[0034](2)文件下载
[0035]如图3所示,下载文件时,用户从客户端向服务器发起请求,服务器调用文件管理模块,文件管理模块将请求中携带的用户id,文件名称,url发送至区块链,区块链根据议会选举本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的文件存储方法,其特征在于,包括:客户端将文件上传请求通过服务器发送至区块链;区块链根据文件上传请求判断用户是否有权上传文件,若有,则通过服务器将相关文件上链存储,通过服务器返回上传成功提示至客户端,若没有,则通过服务器返回上传失败提示至客户端;客户端将文件下载请求通过服务器发送至区块链;区块链根据文件下载请求判断用户是否有权下载文件,若有,则将查找到的相应文件通过服务器返回至客户端,若没有,则通过服务器返回下载失败提示至客户端。2.如权利要求1所述的基于区块链的文件存储方法,其特征在于,所述文件上传请求中包括用户id、交易id和相关文件数据;区块链根据文件上传请求判断用户是否有权上传文件,包括:区块链根据用户id和交易id查询用户角色及交易状态,根据用户角色及交易状态判断用户是否有权上传文件。3.如权利要求2所述的基于区块链的文件存储方法,其特征在于,根据用户角色及交易状态判断用户是否有权上传文件,包括:从数据库表中获取用户角色、交易状态和用户权限id的关联关系;基于用户角色、交易状态和用户权限id的关联关系,根据用户角色及交易状态,确定对应的用户权限id;基于用户权限id,从相应的权限集合中获取用户权限,基于用户权限判断用户是否有权上传文件。4.如权利要求1所述的基于区块链的文件存储方法,其特征在于,在区块链根据文件下载请求判断用户是否有权下载文件之前,还包括:区块链随机从多个文件存储节点中选择一个待选leader节点,剩余的文件存储节点对待选leader节点进行公开投票,将剩余的文件存储节点中的文件访问权限数据与待选leader节点中的文件访问权限数据进行比较,若相同,则投赞成票;若不同,则投反对票;计算待选leader节点的投票赞成率,若投票赞成率超过预设阈值,则通过该待选leader节点判断用户是否有权上传文件,若投票赞成率未超过预设阈值,则从剩余文件存储节点中再次随机确定一个待选leader,重复进行公开投票,直到待选leader节点选举成功。5.如权利要求1所述的基于区块链的文件存储方法,其特征在于,将相关文件上链存储,包括:区块链计算文件的MD5值,将MD5值、文件名和url相关联,将MD5值、文件名和url同时上链存储。6.如权利要求5所述的基于区块链的文件存储方法,其特征在于,所述文件下载请求中包括用户id、交易id、文件名和url;区块链根据文件下载请求判断用户是否有权下载文件,若有,则将查找到的相应文件通过服务器返回至客户端,包括:区块链根据用户id和交易id查询用户角色及交易状态,根据用户角色及交易状态判断用户是否有权下载文件,若有,则根据文...

【专利技术属性】
技术研发人员:李博
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1