CN112445769B - 基于区块链的链上存储方法、装置、终端设备及介质 - Google Patents
基于区块链的链上存储方法、装置、终端设备及介质 Download PDFInfo
- Publication number
- CN112445769B CN112445769B CN202011330857.1A CN202011330857A CN112445769B CN 112445769 B CN112445769 B CN 112445769B CN 202011330857 A CN202011330857 A CN 202011330857A CN 112445769 B CN112445769 B CN 112445769B
- Authority
- CN
- China
- Prior art keywords
- file
- stored
- hash value
- compressed
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000003860 storage Methods 0.000 title claims description 57
- 238000004590 computer program Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 8
- 230000006835 compression Effects 0.000 claims description 7
- 238000007906 compression Methods 0.000 claims description 6
- 230000006837 decompression Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 238000012217 deletion Methods 0.000 abstract 1
- 230000037430 deletion Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于区块链技术领域,尤其涉及一种基于区块链的链上存储方法、装置、终端设备及介质。该方法通过对用户的业务信息及对应上传的至少一个待存储文件进行处理得到待存储文件的文件信息,再将至少一个待存储文件进行压缩得到压缩文件,将每个待存储文件的文件信息、业务信息、压缩文件的第一哈希值上传至区块链节点,将压缩文件的第一哈希值上传,可以避免单个文件的哈希值上传造成的文件之间关联关系缺失的问题,用户可以通过业务信息下的压缩文件实现对所有待存储文件的管理,并通过每个待存储文件的文件信息可以较为清楚展示待存储文件的文件信息,便于更好地实现对待存储文件的管理。
Description
技术领域
本申请属于区块链技术领域,尤其涉及一种基于区块链的链上存储方法、装置、终端设备及介质。
背景技术
将重要的文件存储后存在着被篡改的风险,为了知晓存储文件是否存在被篡改的情况,一般采用区块链技术,将存储文件的文件哈希值进行上链,但是在存储文件为相关联的多个文件构成时,由于每个文件的哈希值之间不具备关联关系,将每个文件的哈希值分别进行单独上链之后,容易导致后续的管理或查询均是针对单个的文件进行,不便于存储文件管理。
发明内容
本申请实施例提供了一种基于区块链的链上存储方法、装置、终端设备及介质,可以解决现有的基于区块链的文件存储方法不便于管理的问题。
第一方面,本申请实施例提供了一种基于区块链的链上存储方法,所述链上存储方法包括:
获取用户上传的至少一个待存储文件以及所述至少一个待存储文件对应的业务信息;
获取每个待存储文件的文件信息;
对所述至少一个待存储文件进行压缩,得到压缩文件;
获取所述压缩文件的第一哈希值;
将所述每个待存储文件的文件信息、所述业务信息和所述压缩文件的第一哈希值上传至区块链节点。
第二方面,本申请实施例提供了一种基于区块链的链上存储装置,所述链上存储装置包括:
第一获取模块,用于获取用户上传的至少一个待存储文件以及所述至少一个待存储文件对应的业务信息;
第二获取模块,用于获取每个待存储文件的文件信息;
压缩处理模块,用于对所述至少一个待存储文件进行压缩,得到压缩文件;
第三获取模块,用于获取所述压缩文件的第一哈希值;
存储上链模块,用于将所述每个待存储文件的文件信息、所述业务信息和所述压缩文件的第一哈希值上传至区块链节点。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的链上存储方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的链上存储方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面所述的链上存储方法。
本申请实施例与现有技术相比存在的有益效果是:本申请通过对用户的业务信息及对应上传的至少一个待存储文件进行处理得到待存储文件的文件信息,再将至少一个待存储文件进行压缩得到压缩文件,将每个待存储文件的文件信息、业务信息、压缩文件的第一哈希值上传至区块链节点,将压缩文件的第一哈希值上传,可以避免单个文件的哈希值上传造成的文件之间关联关系缺失的问题,用户可以通过业务信息下的压缩文件实现对所有待存储文件的管理,并通过每个待存储文件的文件信息可以较为清楚展示待存储文件的文件信息,便于更好地实现对待存储文件的管理。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一的提供的一种基于区块链的链上存储方法的流程示意图;
图2是本申请实施例二的提供的一种基于区块链的链上存储方法的流程示意图;
图3是本申请实施例三提供的一种基于区块链的链上存储装置的结构示意图;
图4是本申请实施例四提供的一种终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的一种基于区块链的链上存储方法可以应用于掌上电脑、桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、云端服务器、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
参见图1,是本申请实施例一提供的一种基于区块链的链上存储方法的流程示意图,该链上存储方法可用于基于区块链的链上存储装置,链上存储装置连接数据库和区块链节点,如图所示,该链上存储方法可以包括以下步骤:
步骤S101,获取用户上传的至少一个待存储文件以及至少一个待存储文件对应的业务信息。
其中,待存储文件可以是指一种文件、文档等,例如,Word文件,业务信息可以是指用户在上传待存储文件时待存储文件所属的业务情况,待存储文件与业务信息具有对应关系,例如,将招投标行业的文件作为待存储文件进行上传时,业务数据可以是指招投标的人员信息、评标人员信息、评标类型等;如果将医疗领域的病例文件作为待存储文件进行上传时,业务数据可以是指病历的患者信息、病历类型等。
步骤S102,获取每个待存储文件的文件信息。
其中,待存储文件自身的基础信息可以作为待存储文件的文件信息,例如,文件名称、文件类型等,文件信息可以用于对待存储文件的解释,在将文件信息展示出后,用户可以较准确地了解该待存储文件。
步骤S103,对至少一个待存储文件进行压缩,得到压缩文件。
其中,压缩文件可以是经过压缩软件压缩的文件,压缩的原理是把文件的二进制代码压缩,以减少待存储文件的空间;至少一个待存储文件进行压缩可以是将该至少一个待存储文件一起压缩至一个压缩文件中。
步骤S104,获取压缩文件的第一哈希值。
其中,哈希值是使用哈希函数计算得到的值,哈希函数是从任何一种数据中创建小的数字“指纹”的方法,压缩文件的内容若没有发生改变,则压缩文件对应的哈希值不会发生变化。
步骤S105,将每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值上传至区块链节点。
其中,区块链节点为区块链应用技术中处理信息的基本单位,将每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值上传至区块链节点可以实现上述信息的上链,可以实现对上述信息的记录。
本申请实施例通过对用户的业务信息及对应上传的至少一个待存储文件进行处理得到待存储文件的文件信息,再将至少一个待存储文件进行压缩得到压缩文件,将每个待存储文件的文件信息、业务信息、压缩文件的第一哈希值上传至区块链节点,将压缩文件的第一哈希值上传,可以避免单个文件的哈希值上传造成的文件之间关联关系缺失的问题,用户可以通过业务信息下的压缩文件实现对所有待存储文件的管理,并通过每个待存储文件的文件信息可以较为清楚展示待存储文件的文件信息,便于更好地实现对待存储文件的管理。
参见图2,是本申请实施例二提供的一种基于区块链的链上存储方法的流程示意图,该链上存储方法可用于终端设备,如图所示,该链上存储方法可以包括以下步骤:
步骤S201,获取用户上传的至少一个待存储文件以及至少一个待存储文件对应的业务信息。
步骤S202,获取每个待存储文件的文件信息。
其中,步骤S201、步骤S202与上述步骤S101和步骤S102的内容相同,可参考步骤S101和步骤S102的描述,在此不再赘述。
步骤S203,获取每个待存储文件的第一哈希值。
其中,每个待存储文件的哈希值依然可以通过哈希函数计算得到,一个待存储文件对应一个第一哈希值。
步骤S204,将每个待存储文件的第一哈希值与对应的文件信息关联,生成配置文件。
其中,步骤S202已经获取到每个待存储文件的文件信息,将每个待存储文件的文件信息与对应待存储文件的第一哈希值关联,即待存储文件的文件信息与该待存储文件的第一哈希值对应,通过该待存储文件的文件信息可以知晓其第一哈希值,同样的,通过该待存储文件的第一哈希值可以知道其文件信息;该配置文件可以是一种表格,表格中的一行为一个待存储文件的文件信息和第一哈希值。
步骤S205,对至少一个待存储文件和配置文件进行压缩,得到压缩文件。
步骤S206,获取压缩文件的第一哈希值。
其中,步骤S206与上述步骤S104的内容相同,可参考步骤S104的描述,在此不再赘述。
步骤S207,将每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值上传至区块链节点,将压缩文件存储至云盘。
其中,将每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值上传至区块链节点与上述步骤S105的内容相同,将压缩文件存储至云盘,实现压缩文件的存储,同时避免将压缩文件存储于区块链节点,减少区块链存储的压力。
可选的是,每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值上传至区块链节点之后,还包括:
获取针对压缩文件的下载指令;
根据下载指令,从云盘中获取压缩文件,且从区块链节点中获取压缩文件的第一哈希值;
根据从云盘获取的压缩文件,计算压缩文件的第二哈希值;
将压缩文件的第二哈希值与压缩文件的第一哈希值进行比较;
若压缩文件的第二哈希值与压缩文件的第一哈希值不相同,则判定压缩文件被篡改;
若压缩文件的第二哈希值与压缩文件的第一哈希值相同,则对压缩文件进行解压,得到至少一个待存储文件和配置文件;
根据配置文件,判断至少一个待存储文件中是否存在被篡改的待存储文件;
若至少一个待存储文件中存在被篡改的待存储文件,则输出篡改提示,篡改提示用于提示用户被篡改的待存储文件的信息。
其中,下载指令可以是指下载压缩文件的指令,根据下载指令从云盘中获取压缩文件,实现压缩文件的下载,并从区块链节点中获取该压缩文件的第一哈希值,对下载的压缩文件计算对应的第二哈希值,将第一哈希值与第二哈希值进行比较,哈希值不同说明压缩文件已被篡改。
若第一哈希值与第二哈希值相同,则对压缩文件进行解压,可以获得压缩文件中的待存储文件和配置文件,根据配置文件中包含的信息与每个待存储文件再次计算的哈希值,可以判断待存储文件是否被篡改。
可选的是,根据配置文件,判断至少一个待存储文件中是否存在被篡改的待存储文件包括:
从配置文件中,获取每个待存储文件的第一哈希值;
根据解压后得到的至少一个待存储文件,计算至少一个待存储文件各自的第二哈希值;
将至少一个待存储文件中每个待存储文件的第二哈希值与第一哈希值进行比较;
若至少一个待存储文件中存在第二哈希值与第一哈希值不相同的待存储文件,则确定至少一个待存储文件中存在被篡改的待存储文件;
若至少一个待存储文件中不存在第二哈希值与第一哈希值不相同的待存储文件,则确定至少一个待存储文件中不存在被篡改的待存储文件。
其中,配置文件中包含每个待存储文件的第一哈希值,该第一哈希值是为步骤S203计算的哈希值,针对每个待存储文件再次计算哈希值为每个待存储文件的第二哈希值,将此时的第一哈希值与第二哈希值进行比较可以判断待存储文件是否被篡改,当一个待存储文件的第一哈希值与第二哈希值不同时,确定该待存储文件为被篡改的待存储文件。
可选的是,在对至少一个待存储文件进行压缩,得到压缩文件之后,还包括:
将每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值上传至数据库;
相应地,在获取针对压缩文件的下载指令之后,还包括:
根据下载指令,获取数据库中存储的每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值,以及区块链节点中存储的每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值;
判断从数据库中获取的每个待存储文件的文件信息与从区块链节点中获取的该待存储文件的文件信息是否相同、从数据库中获取的业务信息与从区块链节点中获取的业务信息是否相同,以及从数据库中获取的压缩文件的第一哈希值与从区块链节点中获取的压缩文件的第一哈希值是否相同;
若每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值中存在不相同的项,且至少一个待存储文件中所有待存储文件均未被篡改,则将不相同的项在数据库中的内容替换为在区块链节点中的内容。
其中,将每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值上传至数据库,可以方便用户从数据库中查询待存储文件,另外,由于区块链节点中的每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值不会被篡改,因此,根据区块链节点的信息可以对数据库中的信息进行甄别,以判断数据库中的信息是否正确,当数据库中信息与区块链节点的信息不同时,通过区块链节点的信息对数据库中相应的信息进行校正。
可选的是,获取针对压缩文件的下载指令包括:
获取针对压缩文件的查看指令;
根据查看指令,展示数据库中所有待存储文件的文件信息,所有待存储文件的文件信息用于提示用户触发针对压缩文件的下载指令。
其中,查看指令可以是指用户查看压缩文件的指令,将查看指令发送至数据库,获取数据库中压缩文件下待存储文件的文件信息进行展示,将待存储文件的文件信息展示之后用户可以针对待存储文件触发下载指令,该下载指令用于将待存储文件所对应的压缩文件进行下载。
本申请实施例通过将每个待存储文件的第一哈希值与对应的文件信息关联,生成配置文件,将配置文件与至少一个待存储文件进行压缩,通过压缩文件的第一哈希值可以判断压缩文件是否被篡改,在通过配置文件判断每个待存储文件是否被篡改,使得对待存储文件是否被篡改的判断更加准确。
对应于上文实施例的基于区块链的链上存储方法,图3示出了本申请实施例三提供的基于区块链的链上存储装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参见图3,该链上存储装置包括:
第一获取模块31,用于获取用户上传的至少一个待存储文件以及至少一个待存储文件对应的业务信息;
第二获取模块32,用于获取每个待存储文件的文件信息;
压缩处理模块33,用于对至少一个待存储文件进行压缩,得到压缩文件;
第三获取模块34,用于获取压缩文件的第一哈希值;
存储上链模块35,用于将每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值上传至区块链节点。
可选的是,该链上存储装置还包括:
云盘存储模块,用于将压缩文件存储至云盘。
可选的是,该链上存储装置还包括:
第四获取模块,用于获取每个待存储文件的第一哈希值;
配置生产模块,用于将每个待存储文件的第一哈希值与对应的文件信息关联,生成配置文件;
相应地,压缩处理模块33具体用于:
对至少一个待存储文件和配置文件进行压缩,得到压缩文件。
可选的是,该链上存储装置还包括:
指令获取模块,用于获取针对压缩文件的下载指令;
第五获取模块,用于根据下载指令,从云盘中获取压缩文件,且从区块链节点中获取压缩文件的第一哈希值;
哈希值计算模块,用于根据从云盘获取的压缩文件,计算压缩文件的第二哈希值;
比较模块,用于将压缩文件的第二哈希值与压缩文件的第一哈希值进行比较;
第一判定模块,用于若压缩文件的第二哈希值与压缩文件的第一哈希值不相同,则判定压缩文件被篡改;
解压模块,用于若压缩文件的第二哈希值与压缩文件的第一哈希值相同,则对压缩文件进行解压,得到至少一个待存储文件和配置文件;
第一判断模块,用于根据配置文件,判断至少一个待存储文件中是否存在被篡改的待存储文件;
输出模块,用于若至少一个待存储文件中存在被篡改的待存储文件,则输出篡改提示,篡改提示用于提示用户被篡改的待存储文件的信息。
可选的是,该第一判断模块包括:
哈希值获取单元,用于从配置文件中,获取每个待存储文件的第一哈希值;
哈希值计算单元,用于根据解压后得到的至少一个待存储文件,计算至少一个待存储文件各自的第二哈希值;
比较单元,用于将至少一个待存储文件中每个待存储文件的第二哈希值与第一哈希值进行比较;
第一确定单元,用于若至少一个待存储文件中存在第二哈希值与第一哈希值不相同的待存储文件,则确定至少一个待存储文件中存在被篡改的待存储文件;
第二确定单元,用于若至少一个待存储文件中不存在第二哈希值与第一哈希值不相同的待存储文件,则确定至少一个待存储文件中不存在被篡改的待存储文件。
可选的是,该链上存储装置还包括:
数据库上传模块,用于将每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值上传至数据库;
相应地,在获取针对压缩文件的下载指令之后,该链上存储装置还包括:
第六获取模块,用于根据下载指令,获取数据库中存储的每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值,以及区块链节点中存储的每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值;
第二判断模块,用于判断从数据库中获取的每个待存储文件的文件信息与从区块链节点中获取的该待存储文件的文件信息是否相同、从数据库中获取的业务信息与从区块链节点中获取的业务信息是否相同,以及从数据库中获取的压缩文件的第一哈希值与从区块链节点中获取的压缩文件的第一哈希值是否相同;
替换模块,用于若每个待存储文件的文件信息、业务信息和压缩文件的第一哈希值中存在不相同的项,且至少一个待存储文件中所有待存储文件均未被篡改,则将不相同的项在数据库中的内容替换为在区块链节点中的内容。
可选的是,该指令获取模块包括:
指令获取单元,用于获取针对压缩文件的查看指令;
展示单元,用于根据查看指令,展示数据库中所有待存储文件的文件信息,所有待存储文件的文件信息用于提示用户触发针对压缩文件的下载指令。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图4为本申请实施例四提供的一种终端设备的结构示意图。如图4所示,该实施例的终端设备4包括:至少一个处理器40(图4中仅示出一个)处理器、存储器41以及存储在存储器41中并可在至少一个处理器40上运行的计算机程序42,处理器40执行计算机程序42时实现上述任意各个基于区块链的链上存储方法实施例中的步骤。
该终端设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端设备4的举例,并不构成对终端设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等;又如,RGB相机、机械臂等终端设备实体中需要设置的部件。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),该处理器40还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器41在一些实施例中可以是终端设备4的内部存储单元,例如终端设备4的硬盘或内存。存储器41在另一些实施例中也可以是终端设备4的外部存储设备,例如终端设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器41还可以既包括终端设备4的内部存储单元也包括外部存储设备。存储器41用于存储操作***、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (8)
1.一种基于区块链的链上存储方法,其特征在于,所述链上存储方法包括:
获取用户上传的至少一个待存储文件以及所述至少一个待存储文件对应的业务信息;所述业务信息为用户在上传待存储文件时待存储文件所属的业务情况;
获取每个待存储文件的文件信息;
获取每个待存储文件的第一哈希值;
将所述每个待存储文件的第一哈希值与对应的文件信息关联,生成配置文件;
对所述至少一个待存储文件进行压缩,得到压缩文件,包括:对所述至少一个待存储文件和所述配置文件进行压缩,得到压缩文件;
获取所述压缩文件的第一哈希值;
将所述每个待存储文件的文件信息、所述业务信息和所述压缩文件的第一哈希值上传至区块链节点;
获取针对所述压缩文件的下载指令;
根据所述下载指令,从云盘中获取所述压缩文件,且从所述区块链节点中获取所述压缩文件的第一哈希值;
根据从所述云盘获取的所述压缩文件,计算所述压缩文件的第二哈希值;
将所述压缩文件的第二哈希值与所述压缩文件的第一哈希值进行比较;
若所述压缩文件的第二哈希值与所述压缩文件的第一哈希值不相同,则判定所述压缩文件被篡改;
若所述压缩文件的第二哈希值与所述压缩文件的第一哈希值相同,则对所述压缩文件进行解压,得到所述至少一个待存储文件和所述配置文件;
根据所述配置文件,判断所述至少一个待存储文件中是否存在被篡改的待存储文件;
若所述至少一个待存储文件中存在被篡改的待存储文件,则输出篡改提示,所述篡改提示用于提示用户被篡改的待存储文件的信息。
2.如权利要求1所述的链上存储方法,其特征在于,在所述对所述至少一个待存储文件进行压缩,得到压缩文件之后,还包括:
将所述压缩文件存储至云盘。
3.如权利要求1所述的链上存储方法,其特征在于,所述根据所述配置文件,判断所述至少一个待存储文件中是否存在被篡改的待存储文件包括:
从所述配置文件中,获取每个待存储文件的第一哈希值;
根据解压后得到的所述至少一个待存储文件,计算所述至少一个待存储文件各自的第二哈希值;
将所述至少一个待存储文件中每个待存储文件的第二哈希值与第一哈希值进行比较;
若所述至少一个待存储文件中存在第二哈希值与第一哈希值不相同的待存储文件,则确定所述至少一个待存储文件中存在被篡改的待存储文件;
若所述至少一个待存储文件中不存在第二哈希值与第一哈希值不相同的待存储文件,则确定所述至少一个待存储文件中不存在被篡改的待存储文件。
4.如权利要求1或3所述的链上存储方法,其特征在于,在所述对所述至少一个待存储文件进行压缩,得到压缩文件之后,还包括:
将所述每个待存储文件的文件信息、所述业务信息和所述压缩文件的第一哈希值上传至数据库;
相应地,在所述获取针对所述压缩文件的下载指令之后,还包括:
根据所述下载指令,获取所述数据库中存储的所述每个待存储文件的文件信息、所述业务信息和所述压缩文件的第一哈希值,以及所述区块链节点中存储的所述每个待存储文件的文件信息、所述业务信息和所述压缩文件的第一哈希值;
判断从所述数据库中获取的所述每个待存储文件的文件信息与从所述区块链节点中获取的该待存储文件的文件信息是否相同、从所述数据库中获取的所述业务信息与从所述区块链节点中获取的所述业务信息是否相同,以及从所述数据库中获取的所述压缩文件的第一哈希值与从所述区块链节点中获取的所述压缩文件的第一哈希值是否相同;
若所述每个待存储文件的文件信息、所述业务信息和所述压缩文件的第一哈希值中存在不相同的项,且所述至少一个待存储文件中所有待存储文件均未被篡改,则将所述不相同的项在所述数据库中的内容替换为在所述区块链节点中的内容。
5.如权利要求4所述的链上存储方法,其特征在于,所述获取针对所述压缩文件的下载指令包括:
获取针对所述压缩文件的查看指令;
根据所述查看指令,展示所述数据库中所有待存储文件的文件信息,所述所有待存储文件的文件信息用于提示用户触发针对所述压缩文件的下载指令。
6.一种基于区块链的链上存储装置,其特征在于,所述链上存储装置包括:
第一获取模块,用于获取用户上传的至少一个待存储文件以及所述至少一个待存储文件对应的业务信息;所述业务信息为用户在上传待存储文件时待存储文件所属的业务情况;
第二获取模块,用于获取每个待存储文件的文件信息;
第四获取模块,用于获取每个待存储文件的第一哈希值;
配置生产模块,用于将每个待存储文件的第一哈希值与对应的文件信息关联,生成配置文件;
压缩处理模块,用于对所述至少一个待存储文件进行压缩,得到压缩文件,包括:对至少一个待存储文件和配置文件进行压缩,得到压缩文件;
第三获取模块,用于获取所述压缩文件的第一哈希值;
存储上链模块,用于将所述每个待存储文件的文件信息、所述业务信息和所述压缩文件的第一哈希值上传至区块链节点;
指令获取模块,用于获取针对压缩文件的下载指令;
第五获取模块,用于根据下载指令,从云盘中获取压缩文件,且从区块链节点中获取压缩文件的第一哈希值;
哈希值计算模块,用于根据从云盘获取的压缩文件,计算压缩文件的第二哈希值;
比较模块,用于将压缩文件的第二哈希值与压缩文件的第一哈希值进行比较;
第一判定模块,用于若压缩文件的第二哈希值与压缩文件的第一哈希值不相同,则判定压缩文件被篡改;
解压模块,用于若压缩文件的第二哈希值与压缩文件的第一哈希值相同,则对压缩文件进行解压,得到至少一个待存储文件和配置文件;
第一判断模块,用于根据配置文件,判断至少一个待存储文件中是否存在被篡改的待存储文件;
输出模块,用于若至少一个待存储文件中存在被篡改的待存储文件,则输出篡改提示,篡改提示用于提示用户被篡改的待存储文件的信息。
7.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的链上存储方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的链上存储方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011330857.1A CN112445769B (zh) | 2020-11-24 | 2020-11-24 | 基于区块链的链上存储方法、装置、终端设备及介质 |
PCT/CN2020/138079 WO2022110405A1 (zh) | 2020-11-24 | 2020-12-21 | 基于区块链的链上存储方法、装置、终端设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011330857.1A CN112445769B (zh) | 2020-11-24 | 2020-11-24 | 基于区块链的链上存储方法、装置、终端设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445769A CN112445769A (zh) | 2021-03-05 |
CN112445769B true CN112445769B (zh) | 2024-06-25 |
Family
ID=74738387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011330857.1A Active CN112445769B (zh) | 2020-11-24 | 2020-11-24 | 基于区块链的链上存储方法、装置、终端设备及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112445769B (zh) |
WO (1) | WO2022110405A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468118B (zh) * | 2021-05-11 | 2023-09-22 | 深圳前海移联科技有限公司 | 一种基于区块链的文件增量存储方法、装置及存储介质 |
CN114172689B (zh) * | 2021-11-11 | 2023-11-28 | 卓尔智联(武汉)研究院有限公司 | 一种信息处理方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109493048A (zh) * | 2018-11-19 | 2019-03-19 | 金蝶软件(中国)有限公司 | 基于区块链的财务记账方法、装置、设备及存储介质 |
CN109922049A (zh) * | 2019-02-02 | 2019-06-21 | 立旃(上海)科技有限公司 | 基于区块链的验证装置及方法 |
CN110032581A (zh) * | 2019-01-18 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务文件存储方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198862A (zh) * | 2018-11-19 | 2020-05-26 | 中移(杭州)信息技术有限公司 | 一种基于区块链的文件存储方法、装置、终端设备和介质 |
JP6626228B1 (ja) * | 2019-03-19 | 2019-12-25 | 株式会社スカイコム | 管理サーバ、文書ファイル管理システム、文書ファイル管理方法、および文書ファイル管理プログラム |
CN110083606B (zh) * | 2019-04-25 | 2021-06-08 | 深圳市豪斯莱科技有限公司 | 跨链存储方法、终端及存储介质 |
CN111552676A (zh) * | 2020-04-26 | 2020-08-18 | 北京众享比特科技有限公司 | 基于区块链的存证方法、装置、设备及介质 |
-
2020
- 2020-11-24 CN CN202011330857.1A patent/CN112445769B/zh active Active
- 2020-12-21 WO PCT/CN2020/138079 patent/WO2022110405A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109493048A (zh) * | 2018-11-19 | 2019-03-19 | 金蝶软件(中国)有限公司 | 基于区块链的财务记账方法、装置、设备及存储介质 |
CN110032581A (zh) * | 2019-01-18 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务文件存储方法及装置 |
CN109922049A (zh) * | 2019-02-02 | 2019-06-21 | 立旃(上海)科技有限公司 | 基于区块链的验证装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112445769A (zh) | 2021-03-05 |
WO2022110405A1 (zh) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112445769B (zh) | 基于区块链的链上存储方法、装置、终端设备及介质 | |
CN111026367B (zh) | 微服务编排方法、装置、终端设备及存储介质 | |
CN111343267B (zh) | 一种配置的管理方法及*** | |
CN112163412A (zh) | 数据校验方法、装置、电子设备及存储介质 | |
CN112488297B (zh) | 一种神经网络剪枝方法、模型生成方法及装置 | |
CN110995273A (zh) | 电力数据库的数据压缩方法、装置、设备及介质 | |
CN112068874B (zh) | 软件项目持续集成方法、装置、终端设备和存储介质 | |
CN110046505B (zh) | 容器安全加固方法、***及存储介质 | |
CN111798969A (zh) | 医学药品匹配方法、装置、电子设备及存储介质 | |
CN108804561B (zh) | 数据同步方法及装置 | |
CN116932072A (zh) | 服务配置方法、装置、计算机可读存储介质及终端设备 | |
CN107832021B (zh) | 一种电子证据固定方法、终端设备及存储介质 | |
CN116662904A (zh) | 数据类型的变异检测方法、装置、计算机设备及介质 | |
CN111158994B (zh) | 一种压测性能测试方法及装置 | |
CN107690057B (zh) | 会议视频数据交互方法及装置 | |
CN116088922A (zh) | 一种项目依赖关系管理方法、装置、终端设备及存储介质 | |
US20130016917A1 (en) | Image Compression | |
CN111222739B (zh) | 核电站的任务分配方法及核电站的任务分配*** | |
CN113672574A (zh) | 日志处理方法、电子设备和计算机可读存储介质 | |
CN114218175A (zh) | 一种资源跨平台共享方法、装置、终端设备及存储介质 | |
CN113159952A (zh) | 基于区块链存储数字资产的方法、***、设备及存储介质 | |
CN111611056A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN111581207B (zh) | Azkaban项目的文件生成方法、装置及终端设备 | |
CN111967240B (zh) | 文本解析方法、装置、终端设备及计算机可读存储介质 | |
CN118094450B (zh) | 一种故障预警方法及相关设备 |
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 |