文件存储方法、装置、电子设备及存储介质转让专利
申请号 : CN202110783409.5
文献号 : CN113259494B
文献日 : 2021-11-12
发明人 : 郑婉腾 , 黄浦
申请人 : 深圳市华海同创科技有限公司
摘要 :
权利要求 :
1.一种文件存储方法,应用于区块链上的第一节点,其特征在于,包括:获取第一终端发送的文件上传请求,所述文件上传请求包括待上传文件以及第一标识;
采用部署于所述第一节点上的星际文件系统存储所述待上传文件;
确定所述待上传文件的第一存储路径,调用智能合约生成与所述待上传文件的第一存储路径对应的第一哈希值,将所述第一哈希值以及所述第一标识存储于所述星际文件系统,所述第一哈希值表示所述待上传文件存储于所述第一节点;
将所述第一哈希值发送至所述第一终端,指示所述第一终端调用所述智能合约将所述第一哈希值发送至区块链,以使第二节点记录所述第一哈希值,所述第二节点是所述区块链上与所述第一节点不同的节点;
若接收到所述第二节点发送的第一哈希值,根据所述第一哈希值确定第一标识,根据所述第一标识确定所述待上传文件的第一存储路径,从所述第一存储路径获取所述待上传文件,将所述待上传文件发送至所述第二节点,以使所述第二节点同步所述待上传文件,使得所述待上传文件存储于区块链,所述第二节点用于根据所述第一哈希值将所述待上传文件发送给用户。
2.如权利要求1所述的文件存储方法,其特征在于,在所述获取第一终端发送的文件上传请求之前,所述方法还包括:
获取所述第一终端发送的应用下载请求;
根据所述应用下载请求将应用程序包发送至所述第一终端,所述应用程序包包括第一传输协议;
对应地,所述获取第一终端发送的文件上传请求,包括:获取第一终端采用所述第一传输协议发送的文件上传请求。
3.如权利要求2所述的文件存储方法,其特征在于,所述应用程序包还包括第二传输协议,所述第一终端用于根据所述第二传输协议访问中心化服务器。
4.如权利要求1所述的文件存储方法,其特征在于,所述文件存储方法还包括:获取第二终端发送的文件访问请求,所述文件访问请求包括文件标识;
根据所述文件标识从所述星际文件系统下载与所述文件标识对应的文件;
将所述与所述文件标识对应的文件发送至所述第二终端。
5.如权利要求4所述的文件存储方法,其特征在于,所述根据所述文件标识从所述星际文件系统下载与所述文件标识对应的文件,包括:确定所述文件标识对应的第二哈希值;
根据所述第二哈希值从所述星际文件系统下载与所述文件标识对应的文件。
6.如权利要求1所述的文件存储方法,其特征在于,所述文件存储方法还包括:获取第三终端发送的交易查询请求,所述交易查询请求包括交易标识;
根据所述交易标识确定与所述交易标识对应的交易数据;
将所述交易数据发送至所述第三终端。
7.一种文件存储装置,应用于区块链上的第一节点,其特征在于,包括:获取模块,用于获取第一终端发送的文件上传请求,所述文件上传请求包括待上传文件以及第一标识;
存储模块,用于采用部署于所述第一节点上的星际文件系统存储所述待上传文件;
生成模块,确定所述待上传文件的第一存储路径,调用智能合约生成与所述待上传文件的第一存储路径对应的第一哈希值,将所述第一哈希值以及所述第一标识存储于所述星际文件系统,所述第一哈希值表示所述待上传文件存储于所述第一节点;
发送模块,用于将所述第一哈希值发送至所述第一终端,指示所述第一终端调用所述智能合约将所述第一哈希值发送至区块链,以使第二节点记录所述第一哈希值,所述第二节点是所述区块链上与所述第一节点不同的节点;
同步模块,用于若接收到所述第二节点发送的第一哈希值,根据所述第一哈希值确定第一标识,根据所述第一标识确定所述待上传文件的第一存储路径,从所述第一存储路径获取所述待上传文件,将所述待上传文件发送至所述第二节点,以使所述第二节点同步所述待上传文件,使得所述待上传文件存储于区块链,所述第二节点用于根据所述第一哈希值将所述待上传文件发送给用户。
8.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的文件存储方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的文件存储方法。
说明书 :
文件存储方法、装置、电子设备及存储介质
技术领域
背景技术
或者应用软件中的图片、视频,一般是存储于供应商提供的云服务器上,存在文件丢失、文
件被篡改的风险,安全性较低。
发明内容
一节点不同的节点;
块链上与所述第一节点不同的节点;
实现如上述第一方面所述的方法。
法。
系统,可以对文件进行分布式存储,从而可以防止待上传文件被篡改。第一节点存储待上传
文件后,生成与待上传文件对应的第一哈希值,将第一哈希值发送至第一终端,指示第一终
端将第一哈希值发送至区块链,区块链上的第二节点记录第一哈希值,通过第一哈希值从
第一节点同步待上传文件,从而可以将待上传文件存储至区块链,提高文件存储的安全性。
附图说明
具体实施方式
细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电
路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
操作、元素、组件和/或其集合的存在或添加。
下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
文件上传请求时,采用星际文件系统存储待上传文件,由于星际文件系统是分布式文件系
统,可以对文件进行分布式存储,从而可以防止待上传文件被篡改。第一节点存储待上传文
件后,生成与待上传文件对应的第一哈希值,将第一哈希值发送至第一终端,指示第一终端
将第一哈希值发送至区块链,区块链上的第二节点记录第一哈希值,通过第一哈希值从第
一节点同步待上传文件,从而可以将待上传文件存储至区块链,提高文件存储的安全性。
第一终端通过FXTP协议发送的文件上传请求。
输协议。第一终端安装应用程序包后,获得部署于应用程序包的智能合约,根据智能合约确
定第一传输协议,即可通过第一传输协议向第一节点发送文件上传请求。例如,若第一终端
是手机,应用程序包可以是Android应用程序包(Android application package,APK),手
机安装APK后,即可通过对应的应用软件访问第一节点。
Protocol, HTTP)、传输控制协议(Transmission Control Protocol,TCP)等。第一终端在
安装应用程序包后,即可以访问区块链上的节点,也可以访问中心化服务器,实现区块链系
统和中心化服务器对应的系统(例如,安卓系统、Windows系统)的切换,从而可以适应不同
的需求,提高用户体验。
行验证,在验证通过后,执行S102的步骤,以提高数据传输的安全性。
的待上传文件。第一节点在确定待上传文件存储成功后,调用智能合约生成与待上传文件
对应的第一哈希值。
节点,也可以是第二节点中的任一个)记录第一哈希值,并将第一哈希值广播同步至区块链
上的其他节点,此时区块链上的第二节点均记录第一哈希值。
区块链上的一个节点接收到数字签名后的第一哈希值后,采用第一终端的公钥对数字签名
进行验证,在验证通过后,记录第一哈希值,并将第一哈希值广播同步至区块链上的其他节
点,从而可以防止第一哈希值被篡改,提高数据存储的安全性。
录于区块链。在一实施例中,文件存储过程如图2所示,第一节点在接收到文件上传请求后,
采用IPFS存储待上传文件,在存储完成后,调用智能合约生成第一哈希值,通过第一传输协
议将第一哈希值发送至第一终端。第一终端在获取第一哈希值后,通过第一传输协议将第
一哈希值发送至区块链,区块链上的一个节点记录第一哈希值,将第一哈希值广播同步至
区块链上的其他节点,则第二节点均获取第一哈希值,第二节点通过第一哈希值从第一节
点下载待上传文件,从而将待上传文件存储至区块链上的所有节点。
二节点发送的第一哈希值后,根据第一哈希值确定待上传文件的第一存储路径,从第一存
储路径获取待上传文件,将待上传文件发送至第二节点。
对应的第一哈希值。第一节点在接收到第二节点发送的第一哈希值后,根据第一哈希值确
定第一标识,再根据第一标识确定待上传文件,将待上传文件发送至第二节点,从而提高了
文件同步的效率。
节点,即区块链上的所有节点均存储了待上传文件以及对应的第一哈希值和第一标识,在
用户访问待上传文件时,区块链上的节点可以根据第一标识或者第一哈希值确定出待上传
文件,以发送给用户。
从而可以防止待上传文件被篡改。第一节点存储待上传文件后,生成与待上传文件对应的
第一哈希值,将第一哈希值发送至第一终端,指示第一终端将第一哈希值发送至区块链,区
块链上的第二节点记录第一哈希值,通过第一哈希值从第一节点同步待上传文件,从而可
以将待上传文件存储至区块链,提高文件存储的安全性。
件标识可以是待访问的文件的名称。其中,第二终端可以和第一终端相同,也可以不同。第
二终端可以通过第一传输协议发送文件访问请求,例如,文件访问请求为FXTP://文件标
识,从而可以通过浏览器的方式实现文件的浏览和下载。文件访问请求也可以包括第二终
端的身份标识,第二终端的身份标识可以是第二终端的通信地址或者第二终端在区块链上
的账号,第一节点在获取第二终端发送的文件访问请求后,对第二终端的身份标识进行验
证,在验证通过后,响应文件访问请求,从IPFS下载与文件标识对应的文件,也即待访问的
文件,再通过第一传输协议将与文件标识对应的文件发送至第二终端。由于IPFS是分布式
文件系统,从IPFS下载文件,提高了文件下载速度。
件标识,用户在第二终端上选择待访问的文件的文件标识,第二终端将文件标识发送至第
一节点,第一节点根据文件标识从IPFS下载与文件标识对应文件。
智能合约的方式确定与文件标识对应的第二哈希值,也可以根据存储的文件标识与第二哈
希值的对应关系确定第二哈希值。
路径,根据对应的存储路径从IPFS下载与文件标识对应文件,从而提高文件下载速度。
端。其中,第三终端与第一节点之间可以通过HTTP协议进行通信,从而可以在第一终端上同
时实现交易的查询和文件的下载。
定。
区块链上与所述第一节点不同的节点;
处不再赘述。
时实现上述文件存储方法实施例中的步骤,例如图1所示的步骤S101至S105。或者,所述处
理器11执行所述计算机程序13时实现上述各装置实施例中各模块/单元的功能,例如图3所
示获取模块10至同步模块50的功能。
个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于
描述所述计算机程序13在所述终端设备中的执行过程。
子设备还可以包括输入输出设备、网络接入设备、总线等。
(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列 (Field‑
Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器
件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理
器等。
接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存
卡(Flash Card)等。进一步地,所述存储器12还可以既包括所述电子设备的内部存储单元
也包括外部存储设备。所述存储器12用于存储所述计算机程序以及所述电子设备所需的其
他程序和文件。所述存储器12还可以用于暂时地存储已经输出或者将要输出的文件。
功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上
描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可
以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的
单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单
元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统
中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如
多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另
一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置
或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机
程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各
个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可
以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以
包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光
盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random
Access Memory)、电载波信号、电信信号以及软件分发介质等。
以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员
可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
本申请的范围。
实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改
或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应
包含在本申请的保护范围之内。