掌桥专利:专业的专利平台
掌桥专利
首页

信息存储方法及装置

文献发布时间:2023-06-19 11:26:00


信息存储方法及装置

技术领域

本申请涉及数据处理技术领域,具体涉及一种信息存储方法及装置。

背景技术

区块链是一种基于消息加密和身份共识结合构建的点对点分布式的可信任账本,并以密码学方式及时间顺序保证了区块的不可篡改、不可伪造和可溯源。区块链的存储体系可基于一些数据库进行搭建,例如,Key/Value数据库(如LevelDB),可将大数据量或者大文件存储至区块中,但是,每一区块都对应有区块容量,该区块容量可指限定存储于区块中的字节数,由于区块大小限制无法存储上述大文件或者大数据量,而增加了区块存储的压力。

发明内容

本申请实施例提供一种信息存储方法及装置,有利于降低区块存储的压力。

本申请实施例第一方面提供了一种信息存储方法,应用于服务器,包括:

所述服务器获取目标文件,将所述目标文件上传至IPFS系统,通过所述IPFS系统生成所述目标文件对应的标识信息;

接收所述IFPS系统发送的所述标识信息,并将所述标识信息同步存入本地数据库;

将所述标识信息通过消息队列上传至区块链网络以完成上链操作。

本申请实施例第二方面提供了一种信息存储装置,应用于服务器,所述装置包括:生成单元、同步单元和上链操作单元,其中,

所述生成单元,用于获取目标文件,将所述目标文件上传至IPFS系统,通过所述IPFS系统生成所述目标文件对应的标识信息;

所述同步单元,用于接收所述IFPS系统发送的所述标识信息,并将所述标识信息同步存入本地数据库;

所述上链操作单元,用于将所述标识信息通过消息队列上传至区块链网络以完成上链操作。

本申请实施例的第三方面提供一种服务器,所述服务器包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行本申请实施例第一方面所述的方法。

本申请实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面所描述的部分或全部步骤。

本申请实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。

实施本申请实施例,至少具有如下有益效果:获取目标文件,将目标文件上传至IPFS系统,通过IPFS系统生成目标文件对应的标识信息;接收IFPS系统发送的标识信息,并将标识信息同步存入本地数据库;将标识信息通过消息队列上传至区块链网络以完成上链操作。如此,可在区块链中存储上述标识信息,在IPFS系统中存储上述目标文件,又由于标识信息占用区块内存空间较小,有利于减少区块存储的压力;结合区块链网络的不可篡改性以及IPFS系统的高吞吐数据存储,有利于提升信息存储的信任度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1A为本申请实施例提供了一种信息存储系统的架构示意图;

图1B为本申请实施例提供了一种信息存储方法的流程示意图;

图1C为本申请实施例提供了一种信息存储方法的时序示意图;

图2为本申请实施例提供了一种信息存储系统的架构示意图;

图3为本申请实施例提供了一种信息存储系统的架构示意图;

图4为本申请实施例提供了一种服务器的结构示意图;

图5为本申请实施例提供了一种信息存储装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。

为了能够更好地理解本申请实施例,下面将对应用本申请实施例的方法进行介绍。

本申请实施例中提到的服务器可以包括但不限于后台服务器、组件服务器、云端服务器、数据分配系统服务器或信息存储软件服务器等,上述仅是举例,而非穷举,包含但不限于上述装置。

请参见图1A,图1A是本申请实施例提供的一种信息存储系统的架构示意图,如图所示,该信息存储系统可包括多个应用服务器,消息队列、区块链网络、IPFS系统和用户,其中,该应用服务器即为本申请实施例中的服务器,在具体实现中,可包括多个应用服务器,每一应用服务器可对应一种业务需求,例如,可对应药品集采、项目招标、项目投标等等,在此不作限定,那么,其对应的服务器即为药品集采服务器、项目招标服务器、项目投标服务器等等。

其中,本申请实施例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。上述区块链网络可用于存储目标文件对应的标识信息,该目标文件可由应用服务器生成。

其中,上述IPFS(InterPlanetary File System,星际文件系统)系统是一个点对点的分布式文件系统,该系统用于存储上述目标文件,并基于该目标文件生成标识信息,以用于标记该目标文件,该标识信息还用于验证该目标文件是否被篡改。

其中,上述消息队列用于传输IPFS系统生成的标识信息到上述区块链网络,以用于完成标识信息的上链操作,并且,当上述目标文件被篡改时,该消息队列还可用于向用户发送提示信息,该提示信息用于提醒用户上述目标文件被篡改。

可以看出,采用本申请实施例,服务器可获取目标文件,将目标文件上传至IPFS系统,通过IPFS系统生成目标文件对应的标识信息;接收IFPS系统发送的标识信息,并将标识信息同步存入本地数据库;将标识信息通过消息队列上传至区块链网络以完成上链操作。如此,可在区块链中存储上述标识信息,在IPFS系统中存储上述目标文件,又由于标识信息占用区块内存空间较小,有利于减少区块存储的压力;结合区块链网络的不可篡改性以及IPFS系统的高吞吐数据存储,有利于提升信息存储的信任度。

请参见图1B,图1B是本申请实施例提供的一种信息存储方法的流程示意图,应用于服务器,上述方法包括以下步骤:

101、所述服务器获取目标文件,将所述目标文件上传至IPFS系统,通过所述IPFS系统生成所述目标文件对应的标识信息;

其中,上述服务器可包括应用服务器,该应用服务器可包括药品集采服务器、项目招标服务器等等,在此不作限定;上述IPFS(InterPlanetary File System,星际文件系统)是一个点对点的分布式文件系统,该系统对应的数据结构可基于Merkle DAG(Merkledirected acyclic graph,有向无环图)进行搭建,保证了基于内容寻址、防篡改和重复数据删除,并基于块交换策略、对象锁定、对象加密及版本控制保证了高吞吐量的数据存储分发、数据安全和历史版本追溯。

其中,在本申请实施例中,可应用于药品集采信息存储系统,上述目标文件可包括占用CPU内存超过一定大小的大内存文件,该目标文件可包括招标文件、投标文件等等;上述标识信息可包括以下至少一项:IPFS哈希值、自认证命名等等,在此不作限定。

具体实现中,服务器在获取上述目标文件以后,将目标文件上传至IPFS系统时,可携带该目标文件对应的文件名和项目编号等信息,进而,IPFS系统可基于上述文件名和项目编号以及该目标文件的内容信息,生成该目标文件对应的标识信息。

在一种可能的示例中,上述通过所述IPFS系统生成所述目标文件对应的标识信息,可包括如下步骤:通过所述ipfs系统对所述目标文件进行识别,得到所述目标文件中的内容信息;对所述内容信息进行拆分,得到多个子文件内容块;通过所述IPFS系统对所述多个子文件内容块进行处理,生成所述目标文件对应的标识信息。

其中,由于该目标文件是一个占用内存较大的大文件,该目标文件中可包括多个子文件,因此,可基于目标文件中的内容信息,实现对目标文件的拆分,以得到多个子文件内容块,进而,可对该子文件内容块进行处理,以生成用于识别该目标文件的标识信息。

在一种可能的示例中,上述通过所述IPFS系统对所述多个子文件内容块进行处理,生成所述目标文件对应的标识信息,可包括如下步骤:将所述多个子文件内容块对应存储到IPFS系统中包含的多个节点中;对所述多个子文件内容块中每一子文件内容块进行哈希编码,生成多个哈希值;将所述多个哈希值对应存储到IPFS系统的多个节点中,每一节点可对应一个哈希值,所述多个哈希值构成所述标识信息。

其中,上述IPFS系统中可包括多个节点,每一节点可对应存储一个哈希表,该哈希表中可对应存储有多个哈希值,每一哈希值可对应一个子文件内容块对应的哈希值。

其中,上述哈希表可用来记录目标文件存储所在的位置,将上述目标文件拆分为多个子文件内容块,并存储在IPFS系统的多个节点中,有利于节省区块的存储空间,并且,后续可基于IPFS系统的多个节点实现对于目标文件多个子文件内容块的查找,有利于提高文件的查询或者下载速度。

可选地,在上述对所述内容信息进行拆分,得到多个子文件内容块之后,还可包括如下步骤:建立所述多个子文件内容块与预设自认证命名集之间的映射关系,得到关系树结构,每一子文件内容块可对应一个预设自认证命名;将所述预设自认证命名集中的多个预设自认证命名与其分别对应的哈希值对应存储到所述IPFS系统中。

其中,上述预设自认证命名集中可包括多个预设自认证命名,该预设自认证命名可为数字、字母等等字符,在此不作限定。

其中,上述预设自认证命名集中的预设自认证命名也可作为标识信息,可为用户自认证命名得到。

其中,由于上述哈希值对用户不友好,难以理解,而自认证命名相对于哈希值来说对用户友好,比哈希值简短,容易理解,因此,也可以用自认证命名以区分不同的子文件内容。

具体实现中,可基于多个预设自认证命名对上述子文件内容进行标记,每一预设自认证命名可对应一个子文件内容块,可建立上述多个子文件内容块中每一子文件内容块与预设自认证命名集之间的映射关系,得到关系树结构,该关系树结构可对应于每一子文件内容块之间的映射关系。相应的,可将预设自认证命名集中的多个预设自认证命名与其分别对应的哈希值对应存储到上述IPFS系统中。

进而,在后续进行文件查找或者读取时,可基于上述预设自认证命名集实现自认证命名匹配,并查找到所需要的多个目标字符,并基于该多个目标自认证命名,从IPFS系统中提取其分别对应的子文件内容块,如此,有利于加快文件查找的效率。

可选地,当后续进行目标文件的查找或者读取时,具体实现中,可包括如下步骤:当接收用户发起的文件查找请求时,确定所述文件查找请求对应的待查找文件以及所述待查找文件对应的目标哈希值;基于所述目标哈希值,在所述IPFS系统中进行搜索,并得到索引地址;根据所述索引地址,获取所述待查找文件中多个待查找子文件块中每一待查找子文件块对应的节点位置,得到多个节点位置;基于所述多个节点位置,获取每一待查找子文件块对应的哈希值,得到多个子文件哈希值;根据所述多个子文件哈希值,确定所述待查找文件对应的目标自认证命名集;并基于所述目标自认证命名集与目标自认证命名集中每一目标自认证命名对应的目标子文件内容块,将所述每一目标自认证命名替换为其分别对应的目标子文件内容块;获取所述目标自认证命名集对应的目标关系树结构;基于所述目标关系树结构,对多个目标子文件内容块进行组装,得到所述待查找文件对应的目标文件。

此外,也可根据依据索引地址确定上述节点寻找的先后顺序,进而,得到多个目标子文件内容块,并将所述多个目标子文件内容块进行组装,并得到所述待查找文件对应的目标文件。

102、接收所述IFPS系统发送的所述标识信息,并将所述标识信息同步存入本地数据库;

其中,上述本地数据库可指上述服务器对应的数据库,在通过IPFS系统生成标识信息以后,为了保证数据的可靠性,以及保证上传到IPFS系统的目标文件中的信息与本地数据库一致,可将上述标识信息同步存储到本地数据库中,该标识信息可包括哈希表,该哈希表中可包括上述目标文件对应的多个子文件内容块中每一子文件内容块对应的哈希值。

103、将所述标识信息通过消息队列上传至区块链网络以完成上链操作。

其中,上述目标文件对应的标识信息可存储在区块链网络上创建的一个区块内,可通过区块链实现信息在不同平台之间的共享。该区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

其中,上述消息队列可为用户自行设置或者系统默认,在此不作限定;可通过消息队列上传上述标识信息,上述消息队列最终一致性保证上述IPFS系统发送于服务器的标识信息能够成功上链。并且,实现了异步操作,与其他应用业务解耦,提高了整个系统的性能,并解决了因网络等不确定因素导致的文件上传记录不一致问题。

在一种可能的示例中,上述将所述标识信息通过消息队列上传至区块链网络以完成上链操作,可包括如下步骤:获取所述目标文件对应的唯一文件名,并以所述唯一文件名作为区块索引信息,将所述标识信息记录为账本数据;将所述标识信息通过所述消息队列上传至所述区块链网络,并通过所述标识信息标识所述目标文件的上链操作。

其中,上述唯一文件名可用于标识每一上传到区块链中的文件,该唯一文件名可在上传文件时生成,例如,若该目标文件为招标文件,则其对应的唯一文件名可为“招投标项目编号+该文件名”;该唯一文件名只对应于目标文件,每一文件可对应唯一的唯一文件名;在将上述标识信息上传到区块链网络时,可将该唯一文件名作为区块索引信息,将上述标识信息记录为账本数据,从而在后续文件提取或者读取时,可基于该索引信息在IPFS系统中进行目标文件对应的子文件区块的查找。

可选地,在上述步骤103之后,可包括如下步骤:根据所述唯一文件名从所述区块链网络获取所述目标文件对应的第一标识信息,所述第一标识信息由所述IPFS系统上传;获取所述本地数据库中针对所述目标文件存储的第二标识信息,将所述第一标识信息与所述第二标识信息进行匹配;若所述第一标识信息和所述第二标识信息不一致,则确定所述目标文件被篡改。

其中,上述标识信息可为哈希值,由于IPFS系统上传标识信息到区块链时,同时也将上述标识信息同步保存到本地数据库中,因此,只需比对该目标文件在区块链上的标识信息与本地数据库最新版本的标识信息是否一致,即可知道该目标文件是否被篡改。

其中,上述第一标识信息可为区块链网络中存储的该目标文件所对应的标识信息,并且该第一标识信息可由IPFS生成并发送至该区块链网络;第二标识信息可为本地数据库中的第二标识信息,若区块链中存储的目标文件的第一标识信息与上述由IPFS系统持久化到本地数据库中的第二标识信息不一致,则可表明上述目标文件没有经过正常的集采流程存储上链,则表明该目标文件已被篡改。

可选地,在上述步骤103之后,还可包括以下步骤:在预设周期内,根据所述唯一文件名从所述区块链网络中检索区块,得到所述目标文件在所述区块链网络中当前账本交易记录,所述当前账本交易记录包括上传到所述IPFS系统的第一文件信息,所述第一文件信息包括第一哈希值集;获取所述本地数据库中的由所述IPFS系统上传到所述本地数据库的第二文件信息,所述第二文件信息包括第二哈希值集;对比所述第一哈希值集与所述第二哈希值集,若所述第一哈希值集与所述第二哈希值集不一致,则确定所述IPFS系统中的目标文件被篡改;生成所述目标文件被篡改的提示信息,并通过所述消息队列返回至用户,以告知用户所述目标文件已被篡改。

其中,上述预设周期可为用户自行设置或者系统默认,在此不作限定;上述第一哈希值集中可包括多个第一哈希值,上述第二哈希值集中可包括多个第二哈希值。

具体实现中,可在预设的时间周期内,服务器判断本地数据库中的第二标识信息中对应的文件信息与IPFS系统中存储的第二文件信息是否一致,来判断上述目标文件是否被篡改。

此外,在具体实现中,可比较上述第一哈希值集中每一第一哈希值与上述第二哈希值集中每一第二哈希值,若出现任意一个第一哈希值与上述多个第二哈希值不一致的情况,则可确定上述第一哈希值集与第二哈希值集不一致,进而,可确定该目标文件被篡改。

其中,上述提示信息用于警示用户以提醒文件被篡改;可在确定目标文件中被篡改以后,生成提示信息。

其中,上述提示消息可经上述消息队列推送到用户,如此,可事先异步操作,与系统中其他应用业务解耦,提高了系统性能,并解决了因网络等不确定因素导致的消息丢失问题。

如图1C所示,为本申请实施例提供的一种信息存储方法的时序示意图,其中,服务器可获取用户上传的目标文件,并将该目标文件上传至IPFS系统;IPFS系统可生成该目标文件对应的标识信息,并将该标识信息发送于上述服务器,并持久化同步到服务器对应的本地数据库中;上述服务器可接收上述IPFS系统发送的标识信息,并通过消息队列将该标识信息上传到区块链网络,以完成该标识信息的上链操作;如此,可结合区块链网络的不可篡改性以及IPFS系统的高吞吐数据存储,有利于提升信息存储的信任度,并通过异步操作,即通过消息队列并行上传上述标识信息,最终一致性保证上述IPFS系统发送于服务器的标识信息能够成功上链。

可以看出,本申请实施例中所描述的信息存储方法,应用于服务器,可获取目标文件,将目标文件上传至IPFS系统,通过IPFS系统生成目标文件对应的标识信息;接收IFPS系统发送的标识信息,并将标识信息同步存入本地数据库;将标识信息通过消息队列上传至区块链网络以完成上链操作。如此,可在区块链中存储上述标识信息,在IPFS系统中存储上述目标文件,又由于标识信息占用区块内存空间较小,有利于减少区块存储的压力;结合区块链网络的不可篡改性以及IPFS系统的高吞吐数据存储,有利于提升信息存储的信任度。

与上述一致地,请参阅图2,图2是本申请实施例公开的一种信息存储方法的流程示例图,应用于服务器,该信息存储方法可包括如下步骤:

201、获取目标文件,将所述目标文件上传至IPFS系统,通过所述IPFS系统对所述目标文件进行识别,得到所述目标文件中的内容信息。

202、对所述内容信息进行拆分,得到多个子文件内容块。

203、将所述多个子文件内容块对应存储到IPFS系统中包含的多个节点中。

204、对所述多个子文件内容块中每一子文件内容块进行哈希编码,生成多个哈希值。

205、将所述多个哈希值对应存储到IPFS系统的多个节点中,每一节点可对应一个哈希值,所述多个哈希值构成所述标识信息。

206、接收所述IFPS系统发送的所述标识信息,并将所述标识信息同步存入本地数据库。

207、将所述标识信息通过消息队列上传至区块链网络以完成上链操作。

其中,上述步骤201-步骤207所描述的信息存储方法可参考图1B所描述的表格矫正方法的对应步骤。

可以看出,本申请实施例所描述的信息存储方法,应用于服务器,可获取目标文件,将目标文件上传至IPFS系统,通过IPFS系统对目标文件进行识别,得到目标文件中的内容信息;对内容信息进行拆分,得到多个子文件内容块;将多个子文件内容块对应存储到IPFS系统中包含的多个节点中;对多个子文件内容块中每一子文件内容块进行哈希编码,生成多个哈希值;将多个哈希值对应存储到IPFS系统的多个节点中,每一节点可对应一个哈希值,多个哈希值构成标识信息;接收IFPS系统发送的标识信息,并将标识信息同步存入本地数据库;将标识信息通过消息队列上传至区块链网络以完成上链操作。如此,可基于目标文件对应的内容信息进行拆分,以得到多个子文件内容块,每一子文件内容块对应一个哈希值,有利于区分每一子文件内容块,并且有利于防止上述目标文件被篡改,以提高整个目标文件存储的安全性;进而,将上述将多个子文件内容块对应存储到IPFS系统中的多个节点中,可在区块链中存储上述标识信息,在IPFS系统中存储上述目标文件,又由于标识信息占用区块内存空间较小,有利于减少区块存储的压力。

与上述一致地,请参阅图3,图3是本申请实施例公开的一种信息存储方法的流程示例图,应用于服务器,该信息存储方法可包括如下步骤:

301、获取目标文件,将所述目标文件上传至IPFS系统,通过所述IPFS系统生成所述目标文件对应的标识信息。

302、接收所述IFPS系统发送的所述标识信息,并将所述标识信息同步存入本地数据库。

303、将所述标识信息通过消息队列上传至区块链网络以完成上链操作。

304、在预设周期内,根据所述唯一文件名从所述区块链网络中检索区块,得到所述目标文件在所述区块链网络中当前账本交易记录,所述当前账本交易记录包括上传到所述IPFS系统的第一文件信息,所述第一文件信息对应第一哈希值。

305、获取所述本地数据库中的由所述IPFS系统上传到所述本地数据库的第二文件信息,所述第二文件信息对应第二哈希值。

306、对比所述第一哈希值与所述第二哈希值,若所述第一哈希值与所述第二哈希值不一致,则确定所述IPFS系统中的目标文件被篡改。

307、生成所述目标文件被篡改的提示信息,并通过所述消息队列返回至用户,以告知用户所述目标文件已被篡改。

其中,上述步骤301-步骤307所描述的信息存储方法可参考图1B所描述的表格矫正方法的对应步骤。

可以看出,本申请实施例所描述的信息存储方法,应用于服务器,可获取目标文件,将目标文件上传至IPFS系统,通过IPFS系统生成目标文件对应的标识信息;接收IFPS系统发送的标识信息,并将标识信息同步存入本地数据库;将标识信息通过消息队列上传至区块链网络以完成上链操作。在预设周期内,根据唯一文件名从区块链网络中检索区块,得到目标文件在区块链网络中当前账本交易记录,当前账本交易记录包括上传到IPFS系统的第一文件信息,第一文件信息对应第一哈希值;获取本地数据库中的由IPFS系统上传到本地数据库的第二文件信息,第二文件信息对应第二哈希值;对比第一哈希值与第二哈希值,若第一哈希值与第二哈希值不一致,则确定IPFS系统中的目标文件被篡改;生成目标文件被篡改的提示信息,并通过消息队列返回至用户,以告知用户目标文件已被篡改。如此,可结合区块链网络的不可篡改性以及IPFS系统的高吞吐数据存储的特性,存储上述目标文件,有利于提升信息存储的信任度和高可用性。并在预设周期内,通过IPFS系统持久化到本地数据库的第二文件信息和IPFS系统中存储的第一文件信息,对该目标文件进行监测,若第一文件信息与第二文件信息不一致,则可确定该目标文件被篡改,并通过消息队列向用户发送提醒信息,有利于提升用户体验。

与上述一致地,请参阅图4,图4为本申请实施例提供的一种服务器的结构示意图,如图4所示,包括处理器、通信接口、存储器以及一个或多个程序,所述处理器、通信接口和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,上述一个或多个程序程序包括用于执行以下步骤的指令:

所述服务器获取目标文件,将所述目标文件上传至IPFS系统,通过所述IPFS系统生成所述目标文件对应的标识信息;

接收所述IFPS系统发送的所述标识信息,并将所述标识信息同步存入本地数据库;

将所述标识信息通过消息队列上传至区块链网络以完成上链操作。

可以看出,本申请实施例中所描述的服务器,可获取目标文件,将目标文件上传至IPFS系统,通过IPFS系统生成目标文件对应的标识信息;接收IFPS系统发送的标识信息,并将标识信息同步存入本地数据库;将标识信息通过消息队列上传至区块链网络以完成上链操作。如此,可在区块链中存储上述标识信息,在IPFS系统中存储上述目标文件,又由于标识信息占用区块内存空间较小,有利于减少区块存储的压力;结合区块链网络的不可篡改性以及IPFS系统的高吞吐数据存储,有利于提升信息存储的信任度。

在一个可能的示例中,在所述通过所述IPFS系统生成所述目标文件对应的标识信息方面,所述程序用于执行以下步骤的指令:

通过所述IPFS系统对所述目标文件进行识别,得到所述目标文件中的内容信息;

对所述内容信息进行拆分,得到多个子文件内容块;

通过所述IPFS系统对所述多个子文件内容块进行处理,生成所述目标文件对应的标识信息。

在一个可能的示例中,在所述通过所述IPFS系统对所述多个子文件内容块进行处理,生成所述目标文件对应的标识信息方面,所述程序用于执行以下步骤的指令:

将所述多个子文件内容块对应存储到IPFS系统中包含的多个节点中;

对所述多个子文件内容块中每一子文件内容块进行哈希编码,生成多个哈希值;

将所述多个哈希值对应存储到IPFS系统的多个节点中,每一节点可对应一个哈希值,所述多个哈希值构成所述标识信息。

在一个可能的示例中,在所述对所述内容信息进行拆分,得到多个子文件内容块之后,所述程序用于执行以下步骤的指令:

建立所述多个子文件内容块与预设自认证命名集之间的映射关系,得到关系树结构,每一子文件内容块可对应一个预设自认证命名;

将所述预设自认证命名集中的多个预设自认证命名与其分别对应的哈希值对应存储到所述IPFS系统中。

在一个可能的示例中,在所述将所述标识信息通过消息队列上传至区块链网络以完成上链操作方面,所述程序用于执行以下步骤的指令:

获取所述目标文件对应的唯一文件名,并以所述唯一文件名作为区块索引信息,将所述标识信息记录为账本数据;

将所述标识信息通过所述消息队列上传至所述区块链网络,并通过所述标识信息标识所述目标文件的上链操作。

在一个可能的示例中,所述程序还用于执行以下步骤的指令:

根据所述唯一文件名从所述区块链网络获取所述目标文件对应的第一标识信息,所述第一标识信息由所述IPFS系统上传;

获取所述本地数据库中针对所述目标文件存储的第二标识信息,将所述第一标识信息与所述第二标识信息进行匹配;

若所述第一标识信息和所述第二标识信息不一致,则确定所述目标文件被篡改。

在一个可能的示例中,所述程序还用于执行以下步骤的指令:

在预设周期内,根据所述唯一文件名从所述区块链网络中检索区块,得到所述目标文件在所述区块链网络中当前账本交易记录,所述当前账本交易记录包括上传到所述IPFS系统的第一文件信息,所述第一文件信息包括第一哈希值集;

获取所述本地数据库中的由所述IPFS系统上传到所述本地数据库的第二文件信息,所述第二文件信息包括第二哈希值集;

对比所述第一哈希值集与所述第二哈希值集,若所述第一哈希值集与所述第二哈希值集不一致,则确定所述IPFS系统中的目标文件被篡改;

生成所述目标文件被篡改的提示信息,并通过所述消息队列返回至用户,以告知用户所述目标文件已被篡改。

上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对服务器进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

与上述一致地,请参阅图5,图5是本申请实施例公开的一种信息存储装置的结构示意图,应用于服务器,该装置包括:生成单元501、同步单元502和上链操作单元503,其中,

所述生成单元501,用于获取目标文件,将所述目标文件上传至IPFS系统,通过所述IPFS系统生成所述目标文件对应的标识信息;

所述同步单元502,用于接收所述IFPS系统发送的所述标识信息,并将所述标识信息同步存入本地数据库;

所述上链操作单元503,用于将所述标识信息通过消息队列上传至区块链网络以完成上链操作。

可以看出,本申请实施例中所描述的信息存储装置,应用于服务器,可获取目标文件,将目标文件上传至IPFS系统,通过IPFS系统生成目标文件对应的标识信息;接收IFPS系统发送的标识信息,并将标识信息同步存入本地数据库;将标识信息通过消息队列上传至区块链网络以完成上链操作。如此,可在区块链中存储上述标识信息,在IPFS系统中存储上述目标文件,又由于标识信息占用区块内存空间较小,有利于减少区块存储的压力;结合区块链网络的不可篡改性以及IPFS系统的高吞吐数据存储,有利于提升信息存储的信任度。

在一种可能的示例中,在所述通过所述IPFS系统生成所述目标文件对应的标识信息方面,所述生成单元501用于执行以下步骤:

通过所述IPFS系统对所述目标文件进行识别,得到所述目标文件中的内容信息;

对所述内容信息进行拆分,得到多个子文件内容块;

通过所述IPFS系统对所述多个子文件内容块进行处理,生成所述目标文件对应的标识信息。

在一个可能的示例中,在所述通过所述IPFS系统对所述多个子文件内容块进行处理,生成所述目标文件对应的标识信息方面,所述生成单元501还用于执行以下步骤:

将所述多个子文件内容块对应存储到IPFS系统中包含的多个节点中;

对所述多个子文件内容块中每一子文件内容块进行哈希编码,生成多个哈希值;

将所述多个哈希值对应存储到IPFS系统的多个节点中,每一节点可对应一个哈希值,所述多个哈希值构成所述标识信息。

在一个可能的示例中,在所述将所述标识信息通过消息队列上传至区块链网络以完成上链操作方面,所述上链操作单元503用于执行以下步骤:

获取所述目标文件对应的唯一文件名,并以所述唯一文件名作为区块索引信息,将所述标识信息记录为账本数据;

将所述标识信息通过所述消息队列上传至所述区块链网络,并通过所述标识信息标识所述目标文件的上链操作。

本申请实施例还提供一种计算机可读存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种信息存储方法的部分或全部步骤。

本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种信息存储方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

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

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

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、ROM、RAM、磁盘或光盘等。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 基因信息存储装置、基因信息检索装置、基因信息存储程序、基因信息检索程序、基因信息存储方法、基因信息检索方法以及基因信息检索系统
  • 模组信息存储方法、模组信息检索方法、模组信息存储装置和测试设备
技术分类

06120112923260