一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链的文件分享方法及系统、电子设备及存储介质与流程

2022-06-22 13:35:42 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,具体而言,涉及一种基于区块链的文件分享方法及系统、电子设备及存储介质。


背景技术:

2.目前,星际文件系统(可以称为ipfs)的应用越来越广泛,在社交媒体、内容平台、文件传输、数据共享、买卖市场、交易所等都有落地业务场景,例如,可以将个人画像存入ipfs中做永久存储,也可以基于以太坊和ipfs实现博客内容的存储,以及博客内容的分享,很多金融机构也逐步把区块链上的大文件放置ipfs上存储,将ipfs的文件hash(哈希)上链处理。
3.相关技术中,ipfs是一种大文件存储机制,每个联盟方都可以拥有单独的ipfs节点用于存储各类文件,文件存储之后会自动生成唯一的文件锚定链接,联盟方之间可以通过分享链接从而分享文件访问权限。然而这种分享方式只能通过常用的无安全保护机制的通信方式,比如,邮件通知、聊天通知等,很有可能使分享链接被窃取,导致其他非法用户的访问以及对文件的破坏,而且分享链接的通信时效低,依赖网络带宽和点对点通信的网络情况,同时,联盟方进行直接通信时无法保证双方的身份合法性,导致文件的分享可能会有被伪造的身份窃取。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种基于区块链的文件分享方法及系统、电子设备及存储介质,以至少解决相关技术中无法对通信双方的数字身份信息进行验证,导致文件分享的安全性较低,容易被伪造的身份窃取的技术问题。
6.根据本发明实施例的一个方面,提供了一种基于区块链的文件分享方法,应用于分布式文件集群的文件传输节点,每个所述文件传输节点对接一个应用服务器,包括:接收第一应用服务器传输的文件分享指令,其中,所述文件分享指令中携带有:第二应用服务器的对象地址和数字身份信息、文件分享地址;基于所述第二应用服务器的对象地址,建立与所述第二应用服务器对接的目标文件传输节点之间的加密通道;将所述第一应用服务器的数字身份信息和所述第二应用服务器的数字身份信息发送至区块链节点,其中,所述分布式文件集群与区块链网络预先建立通讯连接,所述区块链网络上的区块链节点对两个应用服务器的数字身份信息进行验证,并在验证结果指示两个应用服务器都是可信服务器的情况下,将文件分享地址所对应的分享链接信息发送至所述第二应用服务器,所述第二应用服务器在收到所述分享链接信息后,通过所述分享链接信息访问所述目标文件传输节点,所述目标文件传输节点基于所述加密通道,将待分享文件返回至所述第二应用服务器。
7.可选地,在接收第一应用服务器传输的文件分享指令之前,还包括:所述第一应用服务器基于预先申请得到的服务器地址路由信息表,查询所述第二应用服务器的对象地
址;所述第一应用服务器向文件数据库发送分享请求,其中,所述分享请求中携带有所述待分享文件的文件标识,所述文件标识用于查询所述待分享文件在文件传输节点上的地址,得到所述文件分享地址;所述第一应用服务器接收所述文件数据库返回的所述文件分享地址;所述第一应用服务器基于所述第二应用服务器的对象地址和数字身份信息、所述文件分享地址和自身数字身份信息,生成所述文件分享指令。
8.可选地,在所述第一应用服务器基于预先申请得到的服务器地址路由信息表,查询所述第二应用服务器的对象地址之前,还包括:接收应用上传节点发起的文件上传指令,其中,所述文件上传指令中至少携带有:待上传文件和文件上传信息;对所述待上传文件进行拆分处理,得到拆分文件块;将所述拆分文件块分散存储。
9.可选地,在将所述拆分文件块分散存储之后,还包括:在分散存储完成后,生成所述待上传文件的文件哈希值和文件分享地址;将所述文件哈希值发送至所述区块链网络,其中,所述区块链网络上预先部署的通用存证合约存储所述文件哈希值;将所述文件分享地址返回至所述应用上传节点,其中,所述应用上传节点在接收到所述文件分享地址后,将所述文件分享地址和文件标识存储至文件数据库中。
10.可选地,在将所述文件分享地址返回至所述应用上传节点之后,还包括:接收所述第一应用服务器发起的文件更新指令,其中,所述文件更新指令至少包括:待更新文件和文件标识;基于所述文件更新指令,分散存储所述待更新文件相对于历史已上传文件的更新内容;生成与所述待更新文件对应的文件哈希值,得到更新哈希值;将所述更新哈希值和文件分享地址发送至所述第一应用服务器。
11.可选地,在将所述更新哈希值和文件分享地址发送至所述第一应用服务器之后,还包括:所述区块链网络接收所述第一应用服务器传输的所述更新哈希值;所述区块链网络调用通用存证合约的更新接口,更新文件哈希值为所述更新哈希值;所述区块链网络根据所述更新哈希值查找所述待更新文件的历史分享记录;所述区块链网络根据所述历史分享记录,查找所述历史分享记录中接收方的应用服务器地址;所述区块链网络所述历史分享记录中接收方的应用服务器地址,将文件哈希变动信息发送所述历史分享记录中接收方的应用服务器地址。
12.可选地,在将所述第一应用服务器的数字身份信息和所述第二应用服务器的数字身份信息发送至区块链节点之后,还包括:所述区块链节点采用文件传输节点转发的认证接口,接收加密后的所述第一应用服务器的数字身份信息和所述第二应用服务器的数字身份信息;所述区块链节点获取所述区块链网络上预先存储的身份公钥,并采用所述身份公钥解密所述第一应用服务器的数字身份信息和所述第二应用服务器的数字身份信息;所述区块链节点验证解密后的两个应用服务器的数字身份信息是否与所述区块链网络上预先存储的数字身份信息一致;所述区块链节点在解密后的两个应用服务器的数字身份信息与所述区块链网络上预先存储的数字身份信息一致的情况下,确认两个应用服务器都是可信服务器,得到所述验证结果。
13.可选地,在验证解密后的两个应用服务器的数字身份信息是否与所述区块链网络上预先存储的数字身份信息一致之后,还包括:所述区块链节点获取所述待分享文件的文件哈希值,其中,所述文件哈希值是通过所述文件分享地址获取到的;所述区块链节点验证所述文件哈希值是否与所述区块链网络上预先存储的哈希值一致;所述区块链节点在所述
文件哈希值与所述区块链网络上预先存储的哈希值一致的情况下,生成文件分享信息,其中,所述文件分享信息至少包括:文件标识、分享时间信息和文件哈希值;所述区块链节点广播所述文件分享信息至各个区块链节点。
14.可选地,所述区块链网络上预先部署通用存证合约和数字身份合约,所述通用存证合约用于存储:文件哈希和文件分享记录,所述数字身份合约用于存储:身份公钥和应用服务器对外的ip路由地址。
15.可选地,所述应用服务器基于自身机器地址,生成数字身份信息和密钥对,所述应用服务器内存储所述密钥对中的私钥和所述数字身份信息。
16.根据本发明实施例的另一方面,还提供了一种基于区块链的文件分享方法,应用于区块链网络的区块链节点,包括:接收身份验证指令,其中,所述身份验证指令中至少包括:加密后的第一应用服务器的数字身份信息和第二应用服务器的数字身份信息、文件哈希值;获取所述区块链网络上预先存储的身份公钥,其中,所述身份公钥存储在通用存证合约中;采用所述身份公钥解密所述第一应用服务器的数字身份信息和所述第二应用服务器的数字身份信息;对两个应用服务器的数字身份信息进行验证,得到验证结果;在所述验证结果指示两个应用服务器都是可信服务器的情况下,将文件分享地址所对应的分享链接信息发送至所述第二应用服务器,其中,所述第二应用服务器在收到所述分享链接信息后,通过所述分享链接信息访问与所述第二应用服务器对接的目标文件传输节点,所述目标文件传输节点基于预先构建的加密通道,将待分享文件返回至所述第二应用服务器,所述加密通道是基于所述第一应用服务器对接的文件传输节点与所述第二应用服务器对接的目标文件传输节点建立的。
17.根据本发明实施例的另一方面,还提供了一种基于区块链的文件分享系统,包括:应用服务器,用于将文件上传至分布式文件集群,通过区块链网络上任意的区块链节点分享至其它应用服务器;分布式文件集群,用于根据文件分享指令,开通与多个应用服务器对应的文件传输节点之间的加密通道,被分享的文件传输节点基于所述加密通道将待分享文件返回至对应的应用服务器;所述区块链网络,部署数字身份合约和通用存证合约,用于提供应用服务器之间的通讯链路,并对文件传输节点之间的文件传输进行记录。
18.可选地,所述应用服务器包括:文件数据库,用于存储文件哈希和文件分享地址;文件上传节点,用于调用上传接口进行文件上传;文件下载节点,用于调用下载接口进行文件下载;文件分享节点,用于分享接口根据文件哈希值获取文件的分享链接;数字身份代理节点,用于注册数字身份信息、数字身份验证、数字身份密钥管理。
19.可选地,所述分布式文件集群包括:存储服务器,用于文件的分散式存储;搜索引擎,用于文件在所述分布式文件集群内的搜索;通道管理节点,为相互分享文件的文件传输节点创建加密通道,并对所述加密通道进行管理。
20.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述所述的基于区块链的文件分享方法。
21.根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述所述的基于区块链的文件分享
方法。
22.在本公开中,接收第一应用服务器传输的文件分享指令,基于第二应用服务器的对象地址,建立与第二应用服务器对接的目标文件传输节点之间的加密通道,将第一应用服务器的数字身份信息和第二应用服务器的数字身份信息发送至区块链节点,其中,分布式文件集群与区块链网络预先建立通讯连接,区块链网络上的区块链节点对两个应用服务器的数字身份信息进行验证,并在验证结果指示两个应用服务器都是可信服务器的情况下,将文件分享地址所对应的分享链接信息发送至第二应用服务器,第二应用服务器在收到分享链接信息后,通过分享链接信息访问目标文件传输节点,目标文件传输节点基于加密通道,将待分享文件返回至第二应用服务器。在本技术中,可通过分布式文件集群的文件传输节点接收文件分享指令,将文件分享指令中的第一应用服务器和第二应用服务器的数字身份信息发送至区块链节点,通过区块链节点对两者数字身份信息进行验证,在验证通过后将分享链接信息发送给第二应用服务器,第二应用服务器可以通过分享链接信息访问文件传输节点,由文件传输节点基于加密通道将待分享文件返回给第二应用服务器,可以实现对通信双方的身份认证,保证通信双方的身份可信,提高文件分享的安全性,进而解决了相关技术中无法对通信双方的数字身份信息进行验证,导致文件分享的安全性较低,容易被伪造的身份窃取的技术问题。
附图说明
23.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
24.图1是根据本发明实施例的一种可选的基于区块链的文件分享方法的流程图;
25.图2是根据本发明实施例的另一种可选的基于区块链的文件分享方法的流程图;
26.图3是根据本发明实施例的一种可选的基于区块链的文件分享系统的示意图;
27.图4是根据本发明实施例的一种可选的应用服务器架构的示意图;
28.图5是根据本发明实施例的一种可选的ipfs集群的示意图;
29.图6是根据本发明实施例的一种可选的文件上传交互流程的示意图;
30.图7是根据本发明实施例的一种可选的文件分享交互流程的示意图;
31.图8是根据本发明实施例的一种可选的文件更新订阅交互流程的示意图;
32.图9是根据本发明实施例的一种可选的文件分享系统整体流程的示意图;
33.图10是根据本发明实施例的一种基于区块链的文件分享方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
34.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
35.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第
二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
36.为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
37.星际文件系统(interplanetary file system,简称ipfs),是一个分布式文件系统,将现有的分布式哈希表、git(分布式版本控制系统)和自认证文件系统与区块链相结合的文件存储和内容分发网络协议。
38.advanced message queuing protocol,简称amop,旨在为联盟链各个机构提供一个安全高效的消息传输信道,支持跨机构之间,点对点地实时消息通信,为链外系统之间的交互提供标准化接口,amop基于ssl通信加密,确保消息无法被窃听,消息收发均有异常重传、超时检测和路径规划机制,确保消息传输的可靠性。
39.数字身份:通过数字化信息将个体可识别地刻画,将真实信息浓缩为数字代码形式的公私钥,以便对个人的实时行为信息进行绑定、查询和验证。
40.需要说明的是,本公开中的文件分享方法及其系统可用于区块链技术领域在对文件进行分享的情况下,也可用于除区块链技术领域之外的任意领域在对文件进行分享的情况下,本公开中对文件分享方法及其系统的应用领域不做限定。
41.需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
42.本发明下述各实施例可应用于各种对文件进行分享的系统/应用/设备中。本发明可以结合amop技术(基于区块链网络的点对点通信)和数字身份技术,在保证点对点通信双方身份安全的前提下,使得ipfs文件存储之后能够进行安全分享,同时还能将文件更新、删除等详细信息实时通知给接收方。
43.下面结合各个实施例来详细说明本发明。
44.实施例一
45.根据本发明实施例,提供了一种基于区块链的文件分享方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
46.图1是根据本发明实施例的一种可选的基于区块链的文件分享方法的流程图,如图1所示,该方法包括如下步骤:
47.步骤s101,接收第一应用服务器传输的文件分享指令,其中,文件分享指令中携带有:第二应用服务器的对象地址和数字身份信息、文件分享地址。
48.步骤s102,基于第二应用服务器的对象地址,建立与第二应用服务器对接的目标文件传输节点之间的加密通道。
49.步骤s103,将第一应用服务器的数字身份信息和第二应用服务器的数字身份信息发送至区块链节点,其中,分布式文件集群与区块链网络预先建立通讯连接,区块链网络上的区块链节点对两个应用服务器的数字身份信息进行验证,并在验证结果指示两个应用服务器都是可信服务器的情况下,将文件分享地址所对应的分享链接信息发送至第二应用服务器,第二应用服务器在收到分享链接信息后,通过分享链接信息访问目标文件传输节点,目标文件传输节点基于加密通道,将待分享文件返回至第二应用服务器。
50.通过上述步骤,可以接收第一应用服务器传输的文件分享指令,基于第二应用服务器的对象地址,建立与第二应用服务器对接的目标文件传输节点之间的加密通道,将第一应用服务器的数字身份信息和第二应用服务器的数字身份信息发送至区块链节点,其中,分布式文件集群与区块链网络预先建立通讯连接,区块链网络上的区块链节点对两个应用服务器的数字身份信息进行验证,并在验证结果指示两个应用服务器都是可信服务器的情况下,将文件分享地址所对应的分享链接信息发送至第二应用服务器,第二应用服务器在收到分享链接信息后,通过分享链接信息访问目标文件传输节点,目标文件传输节点基于加密通道,将待分享文件返回至第二应用服务器。在本发明实施例中,可通过分布式文件集群的文件传输节点接收文件分享指令,将文件分享指令中的第一应用服务器和第二应用服务器的数字身份信息发送至区块链节点,通过区块链节点对两者数字身份信息进行验证,在验证通过后将分享链接信息发送给第二应用服务器,第二应用服务器可以通过分享链接信息访问文件传输节点,由文件传输节点基于加密通道将待分享文件返回给第二应用服务器,可以实现对通信双方的身份认证,保证通信双方的身份可信,提高文件分享的安全性,进而解决了相关技术中无法对通信双方的数字身份信息进行验证,导致文件分享的安全性较低,容易被伪造的身份窃取的技术问题。
51.下面结合上述各步骤对本发明实施例进行详细说明。本发明实施例可应用于分布式文件集群的文件传输节点(本实施例也可称为ipfs集群中的ipfs节点),并且每个文件传输节点对接一个应用服务器。
52.本实施例中,一种可选的,在接收第一应用服务器传输的文件分享指令之前,还包括:第一应用服务器基于预先申请得到的服务器地址路由信息表,查询第二应用服务器的对象地址;第一应用服务器向文件数据库发送分享请求,其中,分享请求中携带有待分享文件的文件标识,文件标识用于查询待分享文件在文件传输节点上的地址,得到文件分享地址;第一应用服务器接收文件数据库返回的文件分享地址;第一应用服务器基于第二应用服务器的对象地址和数字身份信息、文件分享地址和自身数字身份信息,生成文件分享指令。
53.在本发明实施例中,第一应用服务器(该应用服务器主要负责文件的上传、更新、删除、分享、文件hash上链、数字身份生成、数字身份私钥管理等工作)申请从链上获取所有联盟方暴露给其他联盟方调用的服务器地址路由信息表(包括:路由ip、端口、联盟方did(去中心化身份)等),在链上查询世界状态(即链上的账本数据)后,将会所有联盟方暴露对外的服务器地址路由信息表返回至第一应用服务器,第一应用服务器从服务器地址路由信息表中查询需要分享的第二应用服务器的对象地址,并申请从数据库中获取文件分享地址,数据库通过文件名查询该文件在ipfs上的地址(即文件分享地址),返回该地址至第一应用服务器(即第一应用服务器向文件数据库发送分享请求,该分享请求中携带有待分享
文件的文件标识,文件标识用于查询待分享文件在文件传输节点上的地址,从而得到文件分享地址),在第一应用服务器接收文件数据库返回的文件分享地址后,第一应用服务器基于第二应用服务器的对象地址和数字身份信息、文件分享地址和自身数字身份信息,生成文件分享指令(即第一应用服务器的文件分享节点将文件分享地址、通信双方的数字身份did的信息传输至与第一应用服务器对接的ipfs节点(即文件传输节点))。
54.可选的,在第一应用服务器基于预先申请得到的服务器地址路由信息表,查询第二应用服务器的对象地址之前,还包括:接收应用上传节点发起的文件上传指令,其中,文件上传指令中至少携带有:待上传文件和文件上传信息;对待上传文件进行拆分处理,得到拆分文件块;将拆分文件块分散存储。
55.在本发明实施例中,应用客户端可以选择要上传至ipfs上的文件,然后点击上传,之后由应用上传节点执行上传操作,将文件上传指令(包括:待上传文件和文件上传信息等)传输至应用专属的ipfs节点,ipfs节点在收到文件上传指令之后,对待上传文件进行拆分处理,得到拆分文件块,并将拆分文件块分散存储。
56.可选的,在将拆分文件块分散存储之后,还包括:在分散存储完成后,生成待上传文件的文件哈希值和文件分享地址;将文件哈希值发送至区块链网络,其中,区块链网络上预先部署的通用存证合约存储文件哈希值;将文件分享地址返回至应用上传节点,其中,应用上传节点在接收到文件分享地址后,将文件分享地址和文件标识存储至文件数据库中。
57.在本发明实施例中,在ipfs节点分散存储完成后,会生成待上传文件的文件哈希值和文件分享地址(即文件可被分享的地址),并将文件分享地址返回给应用上传节点,将文件哈希值发送至区块链网络(该区块链网络上预先部署的通用存证合约存储文件哈希值),之后,ipfs节点调用通用存证合约,将文件哈希值、文件标识和客户did在区块链网络上进行背书处理,应用上传节点在接收到文件分享地址后,将文件分享地址、客户did和文件上传时间、文件标识等数据传输至文件数据库。
58.可选的,在将文件分享地址返回至应用上传节点之后,还包括:接收第一应用服务器发起的文件更新指令,其中,文件更新指令至少包括:待更新文件和文件标识;基于文件更新指令,分散存储待更新文件相对于历史已上传文件的更新内容;生成与待更新文件对应的文件哈希值,得到更新哈希值;将更新哈希值和文件分享地址发送至第一应用服务器。
59.在本发明实施例中,第一应用服务器在客户端上更新文件,可以调用upload接口请求更新ipfs节点的文件(即可以向ipfs节点发起文件更新指令,该文件更新指令包括:待更新文件和文件标识),在ipfs节点接收文件更新指令之后,可以基于文件更新指令中的文件标识,分散存储待更新文件相对于历史已上传文件的更新内容,重新生成与待更新文件对应的文件哈希值,得到更新哈希值,文件分享地址不变,之后将更新哈希值和文件分享地址发送至第一应用服务器。
60.可选的,在将更新哈希值和文件分享地址发送至第一应用服务器之后,还包括:区块链网络接收第一应用服务器传输的更新哈希值;区块链网络调用通用存证合约的更新接口,更新文件哈希值为更新哈希值;区块链网络根据更新哈希值查找待更新文件的历史分享记录;区块链网络根据历史分享记录,查找历史分享记录中接收方的应用服务器地址;区块链网络历史分享记录中接收方的应用服务器地址,将文件哈希变动信息发送历史分享记录中接收方的应用服务器地址。
61.在本发明实施例中,第一应用服务器将更新哈希值发送给区块链网络,区块链网络接收更新哈希值后,调用区块链网络的通用存证合约的更新接口,更新链上文件hash值的背书(即更新文件哈希值为更新哈希值),链上根据文件hash值查找该文件的分享记录(即区块链网络根据更新哈希值查找待更新文件的历史分享记录),然后按照分享记录中的接收方查找该接收方的应用服务器地址(即区块链网络根据历史分享记录,查找历史分享记录中接收方的应用服务器地址),之后,区块链节点可以使用amop技术,采用任意一个可用的区块链节点将文件hash变动提醒发送至接收方的应用服务器(即区块链网络历史分享记录中接收方的应用服务器地址,将文件哈希变动信息发送历史分享记录中接收方的应用服务器地址)。
62.步骤s101,接收第一应用服务器传输的文件分享指令,其中,文件分享指令中携带有:第二应用服务器的对象地址和数字身份信息、文件分享地址。
63.在本发明实施例中,ipfs节点可以接收第一应用服务器传输的文件分享指令(该文件分享指令包括:第二应用服务器的对象地址和数字身份信息、文件分享地址等),基于该指令将文件分享至第二应用服务器。
64.步骤s102,基于第二应用服务器的对象地址,建立与第二应用服务器对接的目标文件传输节点之间的加密通道。
65.在本发明实施例中,ipfs节点(与第一应用服务器对接)可以基于第二应用服务器的对象地址,建立与第二应用服务器对接的目标文件传输节点(即与第二应用服务器对接的ipfs节点)之间的加密通道,用于传输文件。
66.步骤s103,将第一应用服务器的数字身份信息和第二应用服务器的数字身份信息发送至区块链节点,其中,分布式文件集群与区块链网络预先建立通讯连接,区块链网络上的区块链节点对两个应用服务器的数字身份信息进行验证,并在验证结果指示两个应用服务器都是可信服务器的情况下,将文件分享地址所对应的分享链接信息发送至第二应用服务器,第二应用服务器在收到分享链接信息后,通过分享链接信息访问目标文件传输节点,目标文件传输节点基于加密通道,将待分享文件返回至第二应用服务器。
67.在本发明实施例中,分布式文件集群与区块链网络预先建立通讯连接,ipfs节点可以基于通讯连接,将第一应用服务器的数字身份信息和第二应用服务器的数字身份信息发送至区块链节点,区块链网络上的区块链节点对两个应用服务器的数字身份信息进行验证(即根据接收到的入参加密did,获取链上存储的did公钥解密该加密did,验证解密后的did是否与链上存储的did一致),并在验证结果指示两个应用服务器都是可信服务器的情况下(即did一致的情况下),将文件分享地址所对应的分享链接信息发送至第二应用服务器,第二应用服务器在收到分享链接信息后,通过分享链接信息访问目标文件传输节点,目标文件传输节点通过did查找该did拥有的通道权限,然后基于加密通道,将待分享文件返回至第二应用服务器。
68.可选的,在将第一应用服务器的数字身份信息和第二应用服务器的数字身份信息发送至区块链节点之后,还包括:区块链节点采用文件传输节点转发的认证接口,接收加密后的第一应用服务器的数字身份信息和第二应用服务器的数字身份信息;区块链节点获取区块链网络上预先存储的身份公钥,并采用身份公钥解密第一应用服务器的数字身份信息和第二应用服务器的数字身份信息;区块链节点验证解密后的两个应用服务器的数字身份
信息是否与区块链网络上预先存储的数字身份信息一致;区块链节点在解密后的两个应用服务器的数字身份信息与区块链网络上预先存储的数字身份信息一致的情况下,确认两个应用服务器都是可信服务器,得到验证结果。
69.在本发明实施例中,文件传输节点根据通信双方的数字身份did建立私有通道,通道授权信息同步至其他ipfs节点,ipfs节点转发第一应用服务器的调用链上did认证的接口(即认证接口)至区块链网络,之后,区块链节点采用文件传输节点转发的认证接口,接收加密后的第一应用服务器的数字身份信息和第二应用服务器的数字身份信息,根据接收到的入参加密did,获取链上存储的did公钥解密该加密did(即区块链节点获取区块链网络上预先存储的身份公钥,并采用身份公钥解密第一应用服务器的数字身份信息和第二应用服务器的数字身份信息),验证解密后的did是否与链上存储的did一致(即区块链节点验证解密后的两个应用服务器的数字身份信息是否与区块链网络上预先存储的数字身份信息一致),在解密后的两个应用服务器的数字身份信息与区块链网络上预先存储的数字身份信息一致的情况下,确认两个应用服务器都是可信服务器,得到验证结果。
70.可选的,在验证解密后的两个应用服务器的数字身份信息是否与区块链网络上预先存储的数字身份信息一致之后,还包括:区块链节点获取待分享文件的文件哈希值,其中,文件哈希值是通过文件分享地址获取到的;区块链节点验证文件哈希值是否与区块链网络上预先存储的哈希值一致;区块链节点在文件哈希值与区块链网络上预先存储的哈希值一致的情况下,生成文件分享信息,其中,文件分享信息至少包括:文件标识、分享时间信息和文件哈希值;区块链节点广播文件分享信息至各个区块链节点。
71.在本发明实施例中,ipfs节点根据文件分享地址获取文件哈希值,并转发第一应用服务器的调用链上hash认证的接口至区块链网络,区块链节点获取待分享文件的文件哈希值之后,可以根据接收到的hash值和文件名,验证链上hash值与入参是一致的(即区块链节点验证文件哈希值是否与区块链网络上预先存储的哈希值一致),保证本次分享的文件的准确性和有效性,并在述文件哈希值与区块链网络上预先存储的哈希值一致的情况下,生成文件分享信息(该文件分享信息至少包括:文件标识、分享时间信息和文件哈希值),之后,区块链节点可以广播文件分享信息至各个区块链节点。
72.可选的,区块链网络上预先部署通用存证合约和数字身份合约,通用存证合约用于存储:文件哈希和文件分享记录,数字身份合约用于存储:身份公钥和应用服务器对外的ip路由地址。
73.在本发明实施例中,区块链网络上预先部署数字身份合约和通用存证合约,主要用于对ipfs文件的记录、数字身份did文件、应用文件分享记录、应用服务器对外暴露的服务地址进行背书,以及提供应用服务器之间的通讯链路,链上背书的记录可供应用方追溯文件更新记录、验证应用服务器的数字身份信息、追溯文件分享记录、获取其他应用服务器的路由信息表等。
74.可选的,应用服务器基于自身机器地址,生成数字身份信息和密钥对,应用服务器内存储密钥对中的私钥和数字身份信息。
75.在本发明实施例中,应用服务器可以将自身机器地址作为did的生成要素,在服务器内生成did和密钥对,服务器内存储私钥和did,公钥调用区块链网络上链背书存储。
76.本发明实施例可以解决分享链路的安全性和稳定性,实现文件变动的实时通知,
能够达到的有益效果如下:
77.(1)基于amop在区块链上分享ipfs文件的链接,能够保证点对点的链路可用性和分享内容的安全订阅和发布;
78.(2)存储在ipfs上的文件发生变动时,区块链上存储的ipfs文件hash值随之变动,通过链上监控和amop的技术结合,实现变动的实时通知,降低通知成本,能够保证时效;
79.(3)基于数字身份实现对通信双方的身份认证,保证通信双方的身份可信和分享安全;
80.(4)通过文件hash上链和文件分享记录上链,可以保证分享时文件的准确性,也能保证文件分享记录的可追溯和可审计。
81.实施例二
82.根据本发明实施例,提供了另一种基于区块链的文件分享方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
83.图2是根据本发明实施例的另一种可选的基于区块链的文件分享方法的流程图,如图2所示,该方法包括如下步骤:
84.步骤s201,接收身份验证指令,其中,身份验证指令中至少包括:加密后的第一应用服务器的数字身份信息和第二应用服务器的数字身份信息、文件哈希值。
85.步骤s202,获取区块链网络上预先存储的身份公钥,其中,身份公钥存储在通用存证合约中。
86.步骤s203,采用身份公钥解密第一应用服务器的数字身份信息和第二应用服务器的数字身份信息。
87.步骤s204,对两个应用服务器的数字身份信息进行验证,得到验证结果。
88.步骤s205,在验证结果指示两个应用服务器都是可信服务器的情况下,将文件分享地址所对应的分享链接信息发送至第二应用服务器,其中,第二应用服务器在收到分享链接信息后,通过分享链接信息访问与第二应用服务器对接的目标文件传输节点,目标文件传输节点基于预先构建的加密通道,将待分享文件返回至第二应用服务器,加密通道是基于第一应用服务器对接的文件传输节点与第二应用服务器对接的目标文件传输节点建立的。
89.通过上述步骤,可以接收身份验证指令,获取区块链网络上预先存储的身份公钥,采用身份公钥解密第一应用服务器的数字身份信息和第二应用服务器的数字身份信息,对两个应用服务器的数字身份信息进行验证,得到验证结果,在验证结果指示两个应用服务器都是可信服务器的情况下,将文件分享地址所对应的分享链接信息发送至第二应用服务器,其中,第二应用服务器在收到分享链接信息后,通过分享链接信息访问与第二应用服务器对接的目标文件传输节点,目标文件传输节点基于预先构建的加密通道,将待分享文件返回至第二应用服务器,加密通道是基于第一应用服务器对接的文件传输节点与第二应用服务器对接的目标文件传输节点建立的。在本发明实施例中,区块链节点可以对身份验证指令中的两个应用服务器的数字身份信息进行验证,在验证通过后将分享链接信息发送给第二应用服务器,第二应用服务器可以通过分享链接信息访问文件传输节点,由文件传输
节点基于加密通道将待分享文件返回给第二应用服务器,可以实现对通信双方的身份认证,保证通信双方的身份可信,提高文件分享的安全性,进而解决了相关技术中无法对通信双方的数字身份信息进行验证,导致文件分享的安全性较低,容易被伪造的身份窃取的技术问题。
90.下面结合上述各步骤对本发明实施例进行详细说明。本发明实施例可应用于区块链网络的区块链节点。
91.步骤s201,接收身份验证指令,其中,身份验证指令中至少包括:加密后的第一应用服务器的数字身份信息和第二应用服务器的数字身份信息、文件哈希值。
92.步骤s202,获取区块链网络上预先存储的身份公钥,其中,身份公钥存储在通用存证合约中。
93.在本发明实施例中,区块链节点可以采用文件传输节点转发的认证接口,接收加密后的第一应用服务器的数字身份信息和第二应用服务器的数字身份信息,根据接收到的入参加密did,获取链上存储的did公钥(即获取区块链网络上预先存储的身份公钥,该身份公钥存储在通用存证合约中),解密该加密did。
94.步骤s203,采用身份公钥解密第一应用服务器的数字身份信息和第二应用服务器的数字身份信息。
95.步骤s204,对两个应用服务器的数字身份信息进行验证,得到验证结果。
96.在本发明实施例中,在解密第一应用服务器的数字身份信息和第二应用服务器的数字身份信息后,可以验证解密后的did是否与链上存储的did一致(即对两个应用服务器的数字身份信息进行验证),得到验证结果。
97.步骤s205,在验证结果指示两个应用服务器都是可信服务器的情况下,将文件分享地址所对应的分享链接信息发送至第二应用服务器,其中,第二应用服务器在收到分享链接信息后,通过分享链接信息访问与第二应用服务器对接的目标文件传输节点,目标文件传输节点基于预先构建的加密通道,将待分享文件返回至第二应用服务器,加密通道是基于第一应用服务器对接的文件传输节点与第二应用服务器对接的目标文件传输节点建立的。
98.在本发明实施例中,可以在验证结果指示两个应用服务器都是可信服务器的情况下(即did一致的情况下),将文件分享地址所对应的分享链接信息发送至第二应用服务器,第二应用服务器在收到分享链接信息后,通过分享链接信息访问目标文件传输节点,目标文件传输节点通过did查找该did拥有的通道权限,然后基于加密通道(该加密通道是基于第一应用服务器对接的文件传输节点与第二应用服务器对接的目标文件传输节点建立的),将待分享文件返回至第二应用服务器。
99.本发明实施例中,可以结合amop技术(基于区块链网络的点对点通信)和数字身份技术,在保证点对点通信双方身份安全的前提下,使得ipfs文件存储之后能够进行安全分享。
100.实施例三
101.图3是根据本发明实施例的一种可选的基于区块链的文件分享系统的示意图,如图3所示,包括:应用服务器(包括:应用服务器1和应用服务器2)、分布式文件集群(即ipfs集群)、区块链网络(包括多个区块链节点)。
102.本实施例中,应用服务器1可以将文件上传至ipfs集群,然后通过区块链网络上任意的区块链节点分享至应用服务器2,其中,应用服务器1和应用服务器2的身份都需在区块链网络上注册和验证,ipfs集群根据分享定制要求开通与应用服务器1和应用服务器2对应的ipfs节点之间的加密私有通道,授权通道成员对该文件的查询、下载和预览权限。具体为:
103.应用服务器,用于将文件上传至分布式文件集群,通过区块链网络上任意的区块链节点分享至其它应用服务器。可选的,应用服务器包括:文件数据库,用于存储文件哈希和文件分享地址;文件上传节点,用于调用上传接口进行文件上传;文件下载节点,用于调用下载接口进行文件下载;文件分享节点,用于分享接口根据文件哈希值获取文件的分享链接;数字身份代理节点,用于注册数字身份信息、数字身份验证、数字身份密钥管理。
104.本实施例中,应用服务器主要负责文件的上传、更新、删除、分享、文件hash上链、数字身份生成、数字身份私钥管理等工作,图4是根据本发明实施例的一种可选的应用服务器架构的示意图,如图4所示,包括:数据库、文件上传节点、文件下载节点、文件分享节点、客户端和数字身份代理节点,其中,数据库主要用于存储应用服务器本身的一些数据(例如,应用使用人员信息、服务器信息等),以及文件上传至ipfs节点返回的文件hash和文件分享地址等;文件上传节点、文件下载节点和文件分享节点都直连归属应用的ipfs节点,文件上传节点可以调用upload接口上传文件,文件下载节点可以调用download或者cat接口等下载文件,文件分享节点可以调用share接口根据文件hash获取文件的分享链接;客户端为客户提供操作界面,便于客户操作文件上传、下载、分享、更新等;数字身份代理节点用于客户对文件操作时的数字身份did注册、数字身份验证、数字身份密钥管理等。
105.分布式文件集群,用于根据文件分享指令,开通与多个应用服务器对应的文件传输节点之间的加密通道,被分享的文件传输节点基于加密通道将待分享文件返回至对应的应用服务器;可选的,分布式文件集群包括:存储服务器,用于文件的分散式存储;搜索引擎,用于文件在分布式文件集群内的搜索;通道管理节点,为相互分享文件的文件传输节点创建加密通道,并对加密通道进行管理。
106.本实施例中,ipfs集群主要负责文件的分散式存储和ipfs节点之间的加密私有通道的管理。图5是根据本发明实施例的一种可选的ipfs集群的示意图,如图5所示,包括:存储服务器(nfs/fss服务器)、搜索引擎、客户端和通道管理节点,其中,存储服务器(nfs/fss服务器)用于文件的分散式存储,搜索引擎用于文件在ipfs集群内的快速搜索,客户端为客户提供可操作的界面,主要集成文件搜索、通道管理等功能,通道管理节点为相互分享文件的ipfs节点创建专属的加密私有通道,可对通道成员进行管理(例如,新增、删除),通道内的成员对通道中所有文件都具有访问权限,一旦权限被收回立马对文件访问失效。
107.区块链网络,部署数字身份合约和通用存证合约,用于提供应用服务器之间的通讯链路,并对文件传输节点之间的文件传输进行记录。
108.本实施例中,区块链网络需要部署数字身份合约和通用存证合约,主要用于对ipfs文件的记录、数字身份did文件、应用文件分享记录、应用服务器对外暴露的服务地址进行背书,以及提供应用服务器之间的通讯链路,链上背书的记录可供应用方追溯文件更新记录、验证应用服务器的数字身份信息、追溯文件分享记录、获取其他应用服务器的路由信息表等。
109.应用服务器、ipfs集群和区块链网络之间的交互流程主要完成文件上传、文件分享和文件更新订阅等功能。
110.图6是根据本发明实施例的一种可选的文件上传交互流程的示意图,如图6所示,包括:应用客户端、应用上传节点、数据库、ipfs集群、区块链网络,具体交互步骤如下:
111.步骤s601:应用客户端选择要上传至ipfs上的上传文件,然后点击上传;
112.步骤s602:应用上传节点执行上传操作,将文件传输至应用专属的ipfs节点;
113.步骤s603:应用专属的ipfs节点,收到文件之后,对文件进行拆分,进行分散式存储;
114.步骤s604:ipfs节点存储文件完成之后会生成文件hash值和文件可被分享的地址,将文件可被分享的地址返回给应用上传节点;
115.步骤s605:ipfs节点调用通用存证合约,将文件hash、文件名和客户did在区块链网络上进行背书处理;
116.步骤s606:应用上传节点获取文件可被分享的地址,将文件分享地址、客户did和文件上传时间、文件名等数据传输至数据库;
117.步骤s607:应用数据库内存储文件分享地址、客户did和文件上传时间、文件名等数据,方便客户端查阅文件和分享文件;
118.步骤s608:应用客户端接收文件上传成功的通知提醒。
119.图7是根据本发明实施例的一种可选的文件分享交互流程的示意图,如图7所示,包括:应用服务器1、ipfs节点1、区块链网络、ipfs节点2、应用服务器2,具体交互步骤如下:
120.步骤s701:应用服务器1申请从链上获取所有联盟方暴露给其他联盟方调用的服务器地址路由信息表(包括:路由ip、端口、联盟方did等);
121.步骤s702:链上查询世界状态(即链上的账本数据),将所有联盟方暴露对外的服务器路由信息表获取返回至应用服务器1;
122.步骤s703:应用服务器1从路由信息表中查询需要分享的应用服务器2的地址,并申请从数据库中获取文件分享地址;
123.步骤s704:数据库通过文件名查询该文件在ipfs上的地址,返回该地址至应用服务器1;
124.步骤s705:应用服务器1的文件分享节点将文件分享地址、通信双方的数字身份did的信息传输至ipfs节点1;
125.步骤s706:ipfs节点1根据文件分享地址获取文件hash值,同时根据通信双方的数字身份did建立私有通道,通道授权信息同步至其他ipfs节点,ipfs节点转发应用服务器1的调用链上did认证和hash认证的接口至区块链网络;
126.步骤s707:链上根据接收到的入参加密did,获取链上存储的did公钥解密该加密did,验证解密后的did是否与链上存储的did一致;
127.步骤s708:链上根据接收到的hash值和文件名,验证链上hash值与入参是否一致,保证本次分享的文件的准确性和有效性;
128.步骤s709:本次分享记录链上背书存储,使用amop技术将该分享链接转发至应用服务器2;
129.步骤s710:应用服务器2获取分享地址后,通过应用服务器2的did和分享地址请求
从ipfs节点2上获取文件;
130.步骤s711:ipfs节点2通过did查找该did拥有的通道权限,然后在通道内根据分享地址获取文件,并返回文件至应用服务器2;
131.步骤s712:应用服务器2通过应用下载节点获取并下载文件。
132.图8是根据本发明实施例的一种可选的文件更新订阅交互流程的示意图,如图8所示,包括:应用服务器1、ipfs节点1、区块链网络、ipfs节点2、应用服务器2,具体交互步骤如下:
133.步骤s801:应用服务器1在客户端上更新文件,调用upload接口请求更新ipfs节点的文件,上传更新文件;
134.步骤s802:ipfs节点1根据文件名,分散式存储该文件的更新内容;
135.步骤s803:ipfs节点1重新生成文件hash值,文件分享地址不变;
136.步骤s804:应用服务器1获取最新的文件hash值,调用区块链网络的通用存证合约的更新接口,更新链上文件hash值的背书;
137.步骤s805:链上根据文件hash值查找该文件的分享记录,然后按照分享记录中的接收方查找该接收方的应用服务器地址;
138.步骤s806:区块链节点使用amop技术,任意一个可用的区块链节点将文件hash变动提醒发送至应用服务器2;
139.步骤s807:应用服务器2接收到变动提醒;
140.步骤s808:应用服务器2重新请求ipfs节点2上获取新文件;
141.步骤s809:ipfs节点2通过did查找该did拥有的通道权限,然后在通道内根据分享地址获取文件,并返回文件至应用服务器2;
142.步骤s810:应用服务器2通过应用下载节点重新获取并下载最新文件。
143.图9是根据本发明实施例的一种可选的文件分享系统整体流程的示意图,如图9所示,包括如下步骤:
144.s901:应用服务器将自身机器地址作为did的生成要素,在服务器内生成did和密钥对,服务器内存储私钥和did,公钥调用区块链网络上链背书存储;
145.s902:区块链网络上部署两个智能合约,一个是通用存证合约,用于存储ipfs文件hash和文件分享记录,另一个是数字身份合约,用于存储服务器生成的did文档,did文档包括:did公钥和服务器对外的ip路由地址等;
146.s903:应用服务器上传文件至其专属ipfs节点,该ipfs节点对应用服务器的机器地址绑定,仅对该服务器开放访问权限,文件上传之后会加密备份至ipfs集群内的其他节点,文件上传后,应用服务器会调用通用存证合约中的存储接口,将文件hash存储于链上,进行背书处理;
147.s904:应用服务器之间分享文件首先要对方提供did,同时根据did从链上获取对方的应用服务器地址,分享方将自身的did和对方的did上链进行验证,身份验证通过说明双方都是链上可信的身份,可以进行amop点对点通信,且分享记录会被链上记录,分享方在获取分享地址后,先在ipfs上获取文件hash,并建立私有通道,使用对方的did作为通道成员,然后通过区块链节点的任意节点传输至对方的服务器上;
148.s905:应用服务器收到分享链接后,通过自身的did和分享链接访问专属的ipfs节
点,然后ipfs节点判断did的通道权限,然后在通道内查询该分享链接的文件是否存在,如存在,则将文件获取返回至应用服务器,应用服务器获取并可下载该文件,也可以通过客户端直接预览文件;
149.s906:当分享方的文件发生变动时,会在ipfs节点上重新生成文件hash,该hash会重新上链,覆盖链上的值,同时更新的操作会通过调用通用存证合约记录下来,链上节点根据更新的hash值查找之前分享的记录,确定之前点对点通信的应用服务器,然后将更新的消息通过amop技术发送至所有相关的应用服务器上,通知应用服务器文件已更新,可通过之前的分享链接,进行文件的重新获取与下载。
150.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的基于区块链的文件分享方法。
151.根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的基于区块链的文件分享方法。
152.图10是根据本发明实施例的一种基于区块链的文件分享方法的电子设备(或移动设备)的硬件结构框图。如图10所示,电子设备可以包括一个或多个(图中采用102a、102b,
……
,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。
153.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
154.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
155.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
156.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
157.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
158.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上
或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
159.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献