基于区块链的文件处理系统、方法、设备及存储介质与流程

文档序号:21779121发布日期:2020-08-07 19:53阅读:151来源:国知局
基于区块链的文件处理系统、方法、设备及存储介质与流程

本发明涉及区块链技术领域,尤其涉及一种基于区块链的文件处理系统、方法、设备及存储介质。



背景技术:

随着区块链技术的广泛应用,在区块链上进行数据存储已经成为一种趋势。然而,实践中发现,由于区块链不具备海量大文件存储的能力,如果将所有的数据都保存在区块链上,将会耗费区块链大量的存储空间,此外,所有的用户均可以对区块链上的所有文件进行操作,使得文件操作的安全得不到保障。



技术实现要素:

鉴于以上内容,有必要提供一种基于区块链的文件处理系统、方法、设备及存储介质,能够支持海量大文件的存储,节省区块链上的存储空间,同时,还可以提高文件操作的安全性。

本发明的第一方面提供一种基于区块链的文件处理系统,所述文件处理系统包括客户端节点、区块链节点以及文件系统节点;

所述客户端节点,用于向所述区块链节点发送文件交易请求,所述文件交易请求携带有第一文件参数;

所述区块链节点,用于调用数据验证合约校验所述文件交易请求的发起者是否具备文件交易权限;若所述文件交易请求的发起者具备文件交易权限,将所述第一文件参数暂存至区块链上;

所述客户端节点,还用于向所述文件系统节点发送文件操作请求,所述文件操作请求携带有第二文件参数;

所述文件系统节点,用于校验所述第二文件参数与所述区块链上暂存的所述第一文件参数是否一致;若所述第二文件参数与所述区块链上暂存的所述第一文件参数一致,响应所述文件操作请求。

在一种可能的实现方式中,所述文件系统节点,还用于在所述第二文件参数与所述区块链上暂存的所述第一文件参数一致时,向所述区块链节点发送参数删除交易请求;

所述区块链节点,还用于响应所述参数删除交易请求,删除所述区块链上暂存的所述第一文件参数。

在一种可能的实现方式中,所述文件操作请求为文件上传请求,所述文件系统节点,还用于在文件上传成功后,向所述区块链节点发送携带有所述文件系统节点的文件元数据的文件写入交易请求;

所述区块链节点,还用于响应所述文件写入交易请求,将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中。

在一种可能的实现方式中,所述文件操作请求包括文件下载请求或文件删除请求。

本发明的第二方面提供一种基于区块链的文件处理方法,应用于区块链节点,所述方法包括:

接收客户端节点发送的文件交易请求,所述文件交易请求携带有第一文件参数;

调用数据验证合约校验所述文件交易请求的发起者是否具备文件交易权限;

若所述文件交易请求的发起者具备文件交易权限,将所述第一文件参数暂存至区块链上。

在一种可能的实现方式中,所述方法还包括:

接收文件系统节点发送的参数删除交易请求;

响应所述参数删除交易请求,删除所述区块链上暂存的所述第一文件参数。

在一种可能的实现方式中,所述方法还包括:

接收文件系统节点发送的携带有所述文件系统节点的文件元数据的文件写入交易请求;

响应所述文件写入交易请求,将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中。

在一种可能的实现方式中,所述文件交易权限为文件删除权限,所述方法还包括:

若所述文件交易请求的发起者具备文件删除权限,删除元文件数据库中存储的文件系统节点的节点编号,所述文件系统节点用于存储与所述第一文件参数匹配的文件。

本发明的第三方面提供一种计算机设备,所述计算机设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的基于区块链的文件处理方法。

本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于区块链的文件处理方法。

由以上技术方案,本发明中,所有的海量大文件均存储在分布式的文件系统节点中,而区块链节点只是用于暂存每次文件的操作记录,当文件系统节点校验文件操作的相关信息合法后,才会执行文件操作请求,同时,区块链节点可以删除暂存的文件操作记录。通过将区块链与分布式的文件系统相结合,不仅可以支持海量大文件的存储,节省区块链上的存储空间,同时,还可以提高文件操作的安全性。

附图说明

图1是本发明公开的一种基于区块链的文件处理系统的结构示意图。

图2是本发明公开的一种基于区块链的文件处理方法的流程示意图。

图3是本发明公开的另一种基于区块链的文件处理方法的流程示意图。

图4是本发明公开的另一种基于区块链的文件处理方法的流程示意图。

图5是本发明公开的另一种基于区块链的文件处理方法的流程示意图。

图6是本发明公开的另一种基于区块链的文件处理方法的流程示意图。

图7是本发明公开的一种文件处理装置的较佳实施例的功能模块图。

图8是本发明实现基于区块链的文件处理方法的较佳实施例的计算机设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。

此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

请参见图1,图1是本发明公开的一种基于区块链的文件处理系统的结构示意图。如图1所示,所述文件处理系统包括客户端节点、区块链节点以及文件系统节点。

其中,每个客户端节点可以跟文件系统节点进行通信,也可以跟区块链节点进行通信。客户端节点主要用于为用户提供便捷的文件上传/下载/删除请求功能。其中,客户端节点可以包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理pda等。

其中,区块链节点可以保存文件的操作记录,比如文件上传/下载/删除记录等,以确保文件系统节点上的文件不被篡改,同时,还可以提供文件上传/下载/删除的权限控制。此外,区块链的元文件数据库(即metafiles.db)中还可以存储文件元数据信息,主要包括:文件名称、数据摘要、用户标识以及文件系统节点的节点编号。

其中,多个文件系统节点组成了分布式文件系统,该分布式文件系统支持海量大文件的存储,同时,还支持文件操作的权限控制。

在图1所示的文件处理系统中,当用户需要在区块链上进行文件交易时,可以通过客户端节点向所述区块链节点发送文件交易请求,所述文件交易请求携带有第一文件参数,所述文件交易请求可以包括文件上传交易请求、文件下载交易请求以及文件删除交易请求,所述第一文件参数可以包括但不限于文件名称、数据摘要、文件密码以及用户标识中的至少一种,其中,用户标识可以为用户在区块链上的账户标识,其中,文件密码可以是用户设定的一串字符,也可以是一串字符的哈希值,文件密码主要用于校验。

区块链节点接收到该文件交易请求之后,可以执行所述数据校验合约,并校验文件交易请求的发起者是否具备文件交易权限,若所述文件交易请求的发起者具备文件交易权限,区块链节点可以将所述第一文件参数暂存至区块链上;优选的,区块链节点可以将所述第一文件参数组成key-value的形式记录在区块链上,其中,key为fs_<tx_hash>,value为encode(文件名称,数据摘要,文件密码,用户标识),其中tx_hash表示文件密码。

之后,所述客户端节点还可以向所述文件系统节点发送文件操作请求,所述文件操作请求携带有第二文件参数;所述文件操作请求可以包括文件上传请求、文件下载请求以及文件删除请求,所述第二文件参数可以包括但不限于文件名称、数据摘要、文件密码以及用户标识中的至少一种。所述文件系统节点接收到所述文件操作请求之后,可以校验所述第二文件参数与所述区块链上暂存的所述第一文件参数是否一致,若所述第二文件参数与所述区块链上暂存的所述第一文件参数一致,表明当前的文件操作是合法的,文件系统节点可以响应所述文件操作请求,比如开始上传/下载/删除文件等。

同时,所述文件系统节点还可以在所述第二文件参数与所述区块链上暂存的所述第一文件参数一致时,向所述区块链节点发送参数删除交易请求,以便区块链节点能够响应所述参数删除交易请求,删除所述区块链上暂存的所述第一文件参数,从而节省区块链上的存储空间,降低区块链的存储成本。

当所述文件操作请求为文件上传请求时,为了后续其他用户能够更好地查询到文件上传的位置,所述文件系统节点还可以在文件上传成功后,调用所述文件元数据存储合约,向所述区块链节点发送携带有所述文件系统节点的文件元数据的文件写入交易请求,以便所述区块链节点能够响应所述文件写入交易请求,将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中,这有利于后续的用户可以从区块链中直接查询到文件位于哪个文件系统节点中,尽快快速地找到文件,提高文件查找的效率。

请参见图2,图2是本发明公开的一种基于区块链的文件处理方法的流程示意图。其中,该方法应用于文件上传场景。如图2所示,所述方法包括:

s21、客户端节点向所述区块链节点发送文件上传交易请求,所述文件上传交易请求携带有第一文件参数。

其中,第一文件参数可以包括文件名称、数据摘要、文件密码以及用户标识(比如区块链上的账户标识)。

s22、区块链节点调用数据验证合约校验所述文件上传交易请求的发起者是否具备文件上传权限;若所述文件上传请求的发起者具备文件上传权限,将所述第一文件参数暂存至区块链上。

其中,数据校验合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,能够允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。

其中,所述数据校验合约上指定了哪些用户具备在区块链上进行文件交易的权限,哪些用户不具备在区块链上进行文件交易的权限。区块链节点可以调用数据验证合约校验所述文件交易请求的发起者是否具备文件交易权限,如果所述文件交易请求的发起者具备文件交易权限,表明所述调用者为所述数据校验合约上指定的具备文件交易权限的用户,所述调用者可以在区块链上进行文件交易。

本发明中,区块链上不存储海量的文件内容,区块链节点只用于记录每个文件的操作记录以及相关的参数信息。

当区块链节点通过所述数据校验合约校验所述文件交易请求的发起者具备文件交易权限,区块链节点可以将所述第一文件参数暂存至区块链上。具体的,可以以key-value的形式记录在区块链上。以文件上传交易请求为例,key为fs_<tx_hash>,value为encode(文件名称,数据摘要,hash(密码),用户标识),其中,tx_hash为文件密码。

其中,区块链节点只是暂时性的保存所述第一文件参数,后续在文件系统节点校验文件操作请求的相关数据合法后,会触发区块链节点删除之前暂存的所述第一文件参数。

s23、客户端节点向所述文件系统节点发送文件上传请求,所述文件上传请求携带有第二文件参数。

其中,第二文件参数可以包括文件名称、数据摘要、文件密码以及用户标识(比如区块链上的账户标识)。

本发明中,当用户需要向文件系统节点进行文件上传时,可以通过客户端节点调用文件元数据存储合约,向所述文件系统节点发送文件上传请求。其中,文件元数据存储合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,能够允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。

s24、文件系统节点校验所述第二文件参数与所述区块链上暂存的所述第一文件参数是否一致;若所述第二文件参数与所述区块链上暂存的所述第一文件参数一致,响应所述文件上传请求。

本发明中,由于区块链节点和文件系统节点是两个独立部署的节点,区块链节点只是用于记录文件操作的相关数据,文件系统节点才用于存储文件内容。因此,为了防止非法用户肆意篡改文件,文件系统节点在进行文件操作之前,需要先校验所述第二文件参数与区块链上暂存的第一文件参数是否一致,具体的,需要将所述第二文件参数中的每个参数(比如文件名称、文件密码、用户标识)与区块链上暂存的第一文件参数中的每个参数(比如文件名称、文件密码、用户标识)均分别进行校验,如果存在任何一个参数不一致,则可以确定所述第二文件参数与区块链上暂存的第一文件参数不一致,即必须是所有的参数均完全一致的情况下,才认为所述第二文件参数与区块链上暂存的第一文件参数一致。

在确定所述第二文件参数与区块链上暂存的第一文件参数一致之后,文件系统节点即可执行文件上传。

s25、文件系统节点在文件上传成功后,调用所述文件元数据存储合约,向所述区块链节点发送携带有所述文件系统节点的文件元数据的文件写入交易请求。

当用户将文件成功上传至文件系统节点上之后,文件系统节点还需要调用文件元数据存储合约,向区块链节点发送携带有所述文件系统节点的文件元数据的文件写入交易请求,以便所述区块链节点将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中,这有利于后续用户可以在区块链上便利地查找到文件的存储位置。

s26、所述区块链节点响应所述文件写入交易请求,将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中,并结束本流程。

s27、文件系统节点校验所述第二文件参数与所述区块链上暂存的所述第一文件参数一致时,向所述区块链节点发送参数删除交易请求。

当文件系统节点确定所述第二文件参数与区块链上暂存的第一文件参数一致时,表明当前用户的文件操作是合法的,没有篡改文件,因此,之前暂存在区块链上的第一文件参数就不需要了,文件系统节点可以向区块链节点发送参数删除交易请求,以便所述区块链节点能够删除暂存的所述第一文件参数,从而节省区块链上的存储空间。

s28、区块链节点响应所述参数删除交易请求,删除所述区块链上暂存的所述第一文件参数。

在图2所描述的方法流程中,可以节省区块链的存储空间,同时,还能够确保文件上传的安全性。

请参见图3,图3是本发明公开的一种基于区块链的文件处理方法的流程示意图。其中,该方法适用于文件下载场景,如图3所示,所述方法包括:

s31、客户端节点向所述区块链节点发送文件下载交易请求,所述文件下载交易请求携带有第一文件参数。

其中,第一文件参数可以包括文件名称、文件密码以及用户标识(比如区块链上的账户标识)。

s32、区块链节点调用数据验证合约校验所述文件下载交易请求的发起者是否具备文件下载权限;若所述文件下载请求的发起者具备文件下载权限,将所述第一文件参数暂存至区块链上。

其中,步骤s32与上文步骤s22类似,可以参考上文相关描述,在此不再赘述。

s33、客户端节点向所述文件系统节点发送文件下载请求,所述文件下载请求携带有第二文件参数。

其中,第二文件参数可以包括文件名称、文件密码以及用户标识(比如区块链上的账户标识)。

s34、文件系统节点校验所述第二文件参数与所述区块链上暂存的所述第一文件参数是否一致;若所述第二文件参数与所述区块链上暂存的所述第一文件参数一致,响应所述文件下载请求,并结束本流程。

其中,步骤s34与上文步骤s24类似,可以参考上文相关描述,在此不再赘述。

s35、文件系统节点校验所述第二文件参数与所述区块链上暂存的所述第一文件参数一致时,向所述区块链节点发送参数删除交易请求。

其中,步骤s35与上文步骤s27类似,可以参考上文相关描述,在此不再赘述。

s36、区块链节点响应所述参数删除交易请求,删除所述区块链上暂存的所述第一文件参数。

在图3所描述的方法流程中,可以节省区块链的存储空间,同时,还能够确保文件下载的安全性。

请参见图4,图4是本发明公开的一种基于区块链的文件处理方法的流程示意图。其中,该方法适用于文件删除场景,如图4所示,所述方法包括:

s41、客户端节点向所述区块链节点发送文件删除交易请求,所述文件删除交易请求携带有第一文件参数。

其中,第一文件参数可以包括文件名称、文件密码以及用户标识(比如区块链上的账户标识)。

s42、区块链节点调用数据验证合约校验所述文件删除交易请求的发起者是否具备文件删除权限;若所述文件删除请求的发起者具备文件删除权限,将所述第一文件参数暂存至区块链上,以及删除元文件数据库中存储的文件系统节点的节点编号,所述文件系统节点用于存储与所述第一文件参数匹配的文件。

其中,区块链解决校验所述文件删除交易请求的发起者是否具备文件删除权限的方式具体可以参考上文步骤s22,在此不再赘述。

当用户需要删除一个文件时,客户端节点向区块链节点发送的是文件删除交易请求,区块链节点就需要校验调用所述文件交易请求的发起者是否具备文件删除权限,若所述文件交易请求的发起者具备文件删除权限,表明所述调用者可以直接删除存储在所述文件系统节点上与所述第一文件参数匹配的文件,此时,存储在区块链上的元文件数据库中存储的文件系统节点的节点编号就不需要了,区块链节点可以直接删除元文件数据库中存储的文件系统节点的节点编号。

s43、客户端节点向所述文件系统节点发送文件删除请求,所述文件删除请求携带有第二文件参数。

其中,第二文件参数可以包括文件名称、文件密码以及用户标识(比如区块链上的账户标识)。

s44、文件系统节点校验所述第二文件参数与所述区块链上暂存的所述第一文件参数是否一致;若所述第二文件参数与所述区块链上暂存的所述第一文件参数一致,响应所述文件删除请求,并结束本流程。

其中,步骤s44与上文步骤s24类似,可以参考上文相关描述,在此不再赘述。

s45、文件系统节点校验所述第二文件参数与所述区块链上暂存的所述第一文件参数一致时,向所述区块链节点发送参数删除交易请求。

其中,步骤s45与上文步骤s27类似,可以参考上文相关描述,在此不再赘述。

s46、区块链节点响应所述参数删除交易请求,删除所述区块链上暂存的所述第一文件参数。

在图4所描述的方法流程中,可以节省区块链的存储空间,同时,还能够确保文件删除的安全性。

请参见图5,图5是本发明公开的一种基于区块链的文件处理方法的流程示意图。其中,所述基于区块链的文件处理方法,应用于区块链节点,其中,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

s51、区块链节点接收客户端节点发送的文件交易请求,所述文件交易请求携带有第一文件参数。

其中,所述文件交易请求可以包括文件上传交易请求、文件下载交易请求以及文件删除交易请求,当所述文件交易请求为文件上传交易请求时,第一文件参数可以包括文件名称、数据摘要、文件密码以及用户标识(比如区块链上的账户标识),当所述文件交易请求为文件下载交易请求或文件删除交易请求时,第一文件参数可以包括文件名称、文件密码以及用户标识(比如区块链上的账户标识)。

s52、区块链节点调用数据验证合约校验所述文件交易请求的发起者是否具备文件交易权限。

其中,所述数据校验合约上指定了哪些用户具备在区块链上进行文件交易的权限,哪些用户不具备在区块链上进行文件交易的权限。区块链节点可以执行所述数据校验合约,调用数据验证合约校验所述文件交易请求的发起者是否具备文件交易权限,如果所述文件交易请求的发起者具备文件交易权限,表明所述调用者为所述数据校验合约上指定的具备文件交易权限的用户,所述调用者可以在区块链上进行文件交易。

s53、若所述文件交易请求的发起者具备文件交易权限,区块链节点将所述第一文件参数暂存至区块链上。

本发明中,区块链上不存储海量的文件内容,区块链节点只用于记录每个文件的操作记录以及相关的参数信息。

当区块链节点通过所述数据校验合约校验所述文件交易请求的发起者具备文件交易权限,区块链节点可以将所述第一文件参数暂存至区块链上。具体的,可以以key-value的形式记录在区块链上。以文件上传交易请求为例,key为fs_<tx_hash>,value为encode(文件名称,数据摘要,hash(密码),用户标识)。

其中,区块链节点只是暂时性的保存所述第一文件参数,后续在文件系统节点校验文件操作请求的相关数据合法后,会触发区块链节点删除之前暂存的所述第一文件参数。

作为一种可选的实施方式,所述方法还包括:

接收文件系统节点发送的参数删除交易请求;

响应所述参数删除交易请求,删除所述区块链上暂存的所述第一文件参数。

在该可选的实施方式中,当文件系统节点校验上传文件的相关数据合法后,或,当文件系统节点校验下载请求的相关数据合法后,或,当文件系统节点校验删除文件请求的相关数据合法后,文件系统节点会向区块链节点删除之前暂存的所述第一文件参数,这样能够节省区块链节点上的存储空间。

作为一种可选的实施方式,所述方法还包括:

接收文件系统节点发送的携带有所述文件系统节点的文件元数据的文件写入交易请求;

响应所述文件写入交易请求,将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中。

在该可选的实施方式中,当用户要上传一个文件时,在文件上传至文件系统节点之后,文件系统节点会向区块链节点发送携带有所述文件系统节点的文件元数据的文件写入交易请求,以便区块链节点响应所述文件写入交易请求,将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中。这样,有利于后续用户能够直接从区块链上查找到文件存储在哪个文件系统节点中了。

作为一种可选的实施方式,所述文件交易请求为文件删除请求,则相应的,区块链节点需要判断文件交易请求的发起者是否具备文件删除权限,所述方法还包括:

若所述文件交易请求的发起者具备文件删除权限,删除元文件数据库中存储的文件系统节点的节点编号,所述文件系统节点用于存储与所述第一文件参数匹配的文件。

在该可选的实施方式中,当用户需要删除一个文件时,客户端节点向区块链节点发送的是文件删除交易请求,区块链节点就需要校验调用所述文件交易请求的发起者是否具备文件删除权限,若所述文件交易请求的发起者具备文件删除权限,表明所述调用者可以直接删除存储在所述文件系统节点上与所述第一文件参数匹配的文件,此时,存储在区块链上的元文件数据库中存储的文件系统节点的节点编号就不需要了,区块链节点可以直接删除元文件数据库中存储的文件系统节点的节点编号。

在图5所描述的方法流程中,区块链节点可以提供文件上传/下载/删除的文件交易权限控制,当接收到客户端节点发送的文件交易请求时,区块链节点可以对调用者进行校验,若满足文件交易权限,则将文件交易的相关信息暂存在区块链上,而不存储海量的文件内容,从而可以节省区块链的存储空间,同时,还能够确保文件操作的安全性。

请参见图6,图6是本发明公开的另一种基于区块链的文件处理方法的流程示意图。其中,所述基于区块链的文件处理方法,应用于文件系统节点,其中,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

s61、文件系统节点接收客户端节点发送的文件操作请求,所述文件操作请求携带有第二文件参数。

其中,文件操作请求可以包括文件上传请求、文件下载请求以及文件删除请求。

当所述文件操作请求为文件上传请求时,第二文件参数可以包括文件名称、数据摘要、文件密码以及用户标识(比如区块链上的账户标识),当所述文件操作请求为文件下载请求或文件删除请求时,第二文件参数可以包括文件名称、文件密码以及用户标识(比如区块链上的账户标识)。

本发明中,当用户需要向文件系统节点进行文件操作时,可以通过客户端节点调用文件元数据存储合约,向所述文件系统节点发送文件操作请求。其中,文件元数据存储合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,能够允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。

s62、文件系统节点校验所述第二文件参数与区块链上暂存的第一文件参数是否一致。

本发明中,由于区块链节点和文件系统节点是两个独立部署的节点,区块链节点只是用于记录文件操作的相关数据,文件系统节点才用于存储文件内容。因此,为了防止非法用户肆意篡改文件,文件系统节点在进行文件操作之前,需要先校验所述第二文件参数与区块链上暂存的第一文件参数是否一致,具体的,需要将所述第二文件参数中的每个参数(比如文件名称、文件密码、用户标识)与区块链上暂存的第一文件参数中的每个参数(比如文件名称、文件密码、用户标识)均分别进行校验,如果存在任何一个参数不一致,则可以确定所述第二文件参数与区块链上暂存的第一文件参数不一致,即必须是所有的参数均完全一致的情况下,才认为所述第二文件参数与区块链上暂存的第一文件参数一致。

s63、若所述第二文件参数与区块链上暂存的第一文件参数一致,文件系统节点响应所述文件操作请求。

在确定所述第二文件参数与区块链上暂存的第一文件参数一致之后,文件系统节点即可响应所述文件操作请求,比如开始上传文件、开始下载文件、开始删除文件等等。

作为一种可选的实施方式,所述方法还包括:

若所述第二文件参数与区块链上暂存的第一文件参数一致,向区块链节点发送参数删除交易请求,所述参数删除交易请求用于请求所述区块链节点删除暂存的所述第一文件参数。

在该可选的实施方式中,当文件系统节点确定所述第二文件参数与区块链上暂存的第一文件参数一致时,表明当前用户的文件操作是合法的,没有篡改文件,因此,之前暂存在区块链上的第一文件参数就不需要了,文件系统节点可以向区块链节点发送参数删除交易请求,以便所述区块链节点能够删除暂存的所述第一文件参数,从而节省区块链上的存储空间。

作为一种可选的实施方式,所述文件操作请求为文件上传请求,所述方法还包括:

在文件上传成功后,调用文件元数据存储合约,向区块链节点发送携带有所述文件系统节点的文件元数据的文件写入交易请求,所述文件写入交易请求用于请求所述区块链节点将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中。

在该可选的实施方式中,当用户将文件成功上传至文件系统节点上之后,文件系统节点还需要调用文件元数据存储合约,向区块链节点发送携带有所述文件系统节点的文件元数据的文件写入交易请求,以便所述区块链节点将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中,这有利于后续用户可以在区块链上便利地查找到文件的存储位置。

在图6所描述的方法流程中,多个文件系统节点组成了分布式文件系统,可以指出海量大文件的存储,同时,文件系统节点还可以校验当前进行的文件操作的相关数据与暂存在区块链上的记录数据是否一致,如果一致,才允许执行文件操作,从而能够有效地避免其他人肆意篡改文件,提高文件操作的安全性。

以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。

请参见图7,图7是本发明公开的一种文件处理装置的较佳实施例的功能模块图。

在一些实施例中,所述文件处理装置运行于区块链节点中。所述文件处理装置可以包括多个由程序代码段所组成的功能模块。所述文件处理装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图2-6所描述的基于区块链的文件处理方法中的部分或全部步骤。

本实施例中,所述文件处理装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块701、校验模块702、存储模块703。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。

接收模块701,用于接收客户端节点发送的文件交易请求,所述文件交易请求携带有第一文件参数。

其中,数据校验合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,能够允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。

其中,所述文件交易请求可以包括文件上传交易请求、文件下载交易请求以及参数删除交易请求,当所述文件交易请求为文件上传交易请求时,第一文件参数可以包括文件名称、数据摘要、文件密码以及用户标识(比如区块链上的账户标识),当所述文件交易请求为文件下载交易请求或参数删除交易请求时,第一文件参数可以包括文件名称、文件密码以及用户标识(比如区块链上的账户标识)。

校验模块702,用于调用数据验证合约校验所述文件交易请求的发起者是否具备文件交易权限。

其中,所述数据校验合约上指定了哪些用户具备在区块链上进行文件交易的权限,哪些用户不具备在区块链上进行文件交易的权限。区块链节点可以执行所述数据校验合约,调用数据验证合约校验所述文件交易请求的发起者是否具备文件交易权限,如果调用所述文件交易请求的发起者具备文件交易权限,表明所述调用者为所述数据校验合约上指定的具备文件交易权限的用户,所述调用者可以在区块链上进行文件交易。

存储模块703,用于若所述文件交易请求的发起者具备文件交易权限,将所述第一文件参数暂存至区块链上。

本发明中,区块链上不存储海量的文件内容,区块链节点只用于记录每个文件的操作记录以及相关的参数信息。

当区块链节点通过所述数据校验合约校验所述文件交易请求的发起者具备文件交易权限,区块链节点可以将所述第一文件参数暂存至区块链上。具体的,可以以key-value的形式记录在区块链上。以文件上传交易请求为例,key为fs_<tx_hash>,value为encode(文件名称,数据摘要,hash(密码),用户标识)。

其中,区块链节点只是暂时性的保存所述第一文件参数,后续在文件系统节点校验文件操作请求的相关数据合法后,会触发区块链节点删除之前暂存的所述第一文件参数。

可选的,所述接收模块701,还用于接收文件系统节点发送的参数删除交易请求;

所述文件处理装置还包括:

执行模块,用于响应所述参数删除交易请求,删除所述区块链上暂存的所述第一文件参数。

在该可选的实施方式中,当文件系统节点校验上传文件的相关数据合法后,或,当文件系统节点校验下载请求的相关数据合法后,或,当文件系统节点校验删除文件请求的相关数据合法后,文件系统节点会向区块链节点删除之前暂存的所述第一文件参数,这样能够节省区块链节点上的存储空间。

可选的,所述接收模块701,还用于接收文件系统节点发送的携带有所述文件系统节点的文件元数据的文件写入交易请求;

所述执行模块,还用于响应所述文件写入交易请求,将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中。

在该可选的实施方式中,当用户要上传一个文件时,在文件上传至文件系统节点之后,文件系统节点会向区块链节点发送携带有所述文件系统节点的文件元数据的文件写入交易请求,以便区块链节点响应所述文件写入交易请求,将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中。这样,有利于后续用户能够直接从区块链上查找到文件存储在哪个文件系统节点中了。

可选的,所述文件交易权限为文件删除权限,所述执行模块,还用于若所述文件交易请求的发起者具备文件删除权限,删除元文件数据库中存储的文件系统节点的节点编号,所述文件系统节点用于存储与所述第一文件参数匹配的文件。

在该可选的实施方式中,当用户需要删除一个文件时,客户端节点向区块链节点发送的是参数删除交易请求,区块链节点就需要校验调用所述文件交易请求的发起者是否具备文件删除权限,若所述文件交易请求的发起者具备文件删除权限,表明所述调用者可以直接删除存储在所述文件系统节点上与所述第一文件参数匹配的文件,此时,存储在区块链上的元文件数据库中存储的文件系统节点的节点编号就不需要了,区块链节点可以直接删除元文件数据库中存储的文件系统节点的节点编号。

在图7所描述的文件处理装置中,区块链节点可以提供文件上传/下载/删除的文件交易权限控制,当接收到客户端节点发送的文件交易请求时,区块链节点可以对调用者进行校验,若满足文件交易权限,则将文件交易的相关信息暂存在区块链上,而不存储海量的文件内容,从而可以节省区块链的存储空间,同时,还能够确保文件操作的安全性。

如图8所示,图8是本发明实现基于区块链的文件处理方法的较佳实施例的计算机设备的结构示意图。所述计算机设备8包括存储器81、至少一个处理器82、存储在所述存储器81中并可在所述至少一个处理器82上运行的计算机程序83及至少一条通讯总线84。

本领域技术人员可以理解,图8所示的示意图仅仅是所述计算机设备8的示例,并不构成对所述计算机设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备8还可以包括输入输出设备、网络接入设备等。

所述至少一个处理器82可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器82可以是微处理器或者该处理器82也可以是任何常规的处理器等,所述处理器82是所述计算机设备8的控制中心,利用各种接口和线路连接整个计算机设备8的各个部分。

所述存储器81可用于存储所述计算机程序83和/或模块/单元,所述处理器82通过运行或执行存储在所述存储器81内的计算机程序和/或模块/单元,以及调用存储在存储器81内的数据,实现所述计算机设备8的各种功能。所述存储器81可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备8的使用所创建的数据(比如音频数据)等。此外,存储器81可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。

结合图2-5,所述计算机设备8中的所述存储器81存储多个指令以实现一种基于区块链的文件处理方法,所述处理器82可执行所述多个指令从而实现:

接收客户端节点发送的文件交易请求,所述文件交易请求携带有第一文件参数;

调用数据验证合约校验所述文件交易请求的发起者是否具备文件交易权限;

若所述文件交易请求的发起者具备文件交易权限,将所述第一文件参数暂存至区块链上。

在一种可选的实施方式中,所述处理器82可执行所述多个指令从而实现:

接收文件系统节点发送的参数删除交易请求;

响应所述参数删除交易请求,删除所述区块链上暂存的所述第一文件参数。

在一种可选的实施方式中,所述处理器82可执行所述多个指令从而实现:

接收文件系统节点发送的携带有所述文件系统节点的文件元数据的文件写入交易请求;

响应所述文件写入交易请求,将所述文件系统节点的文件元数据写入所述区块链节点的元文件数据库中。

在一种可选的实施方式中,所述文件交易权限为文件删除权限,所述处理器82可执行所述多个指令从而实现:

若所述文件交易请求的发起者具备文件删除权限,删除元文件数据库中存储的文件系统节点的节点编号,所述文件系统节点用于存储与所述第一文件参数匹配的文件。

具体地,所述处理器82对上述指令的具体实现方法可参考图2对应实施例中相关步骤的描述,在此不赘述。

具体地,所述处理器82对上述指令的具体实现方法可参考图2-5对应实施例中相关步骤的描述,在此不赘述。

在图8所描述的计算机设备8中,所有的海量大文件均存储在分布式的文件系统节点中,而区块链节点只是用于暂存每次文件的操作记录,当文件系统节点校验文件操作的相关信息合法后,才会执行文件操作请求,同时,区块链节点可以删除暂存的文件操作记录。通过将区块链与分布式的文件系统相结合,不仅可以支持海量大文件的存储,节省区块链上的存储空间,同时,还可以提高文件操作的安全性。

所述计算机设备8集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器以及只读存储器(rom,read-onlymemory)。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1