CN115694841A - 基于区块链和ipfs网络的元数据流通方法、装置及存储介质 - Google Patents

基于区块链和ipfs网络的元数据流通方法、装置及存储介质 Download PDF

Info

Publication number
CN115694841A
CN115694841A CN202211399387.3A CN202211399387A CN115694841A CN 115694841 A CN115694841 A CN 115694841A CN 202211399387 A CN202211399387 A CN 202211399387A CN 115694841 A CN115694841 A CN 115694841A
Authority
CN
China
Prior art keywords
metadata
original
ipfs network
hash fingerprint
fingerprint
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.)
Granted
Application number
CN202211399387.3A
Other languages
English (en)
Other versions
CN115694841B (zh
Inventor
王海军
丁雷
董新燕
沈策
郑东海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Coal Industry Group Information Technology Co ltd
Original Assignee
China Coal Industry Group Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Coal Industry Group Information Technology Co ltd filed Critical China Coal Industry Group Information Technology Co ltd
Priority to CN202211399387.3A priority Critical patent/CN115694841B/zh
Publication of CN115694841A publication Critical patent/CN115694841A/zh
Application granted granted Critical
Publication of CN115694841B publication Critical patent/CN115694841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请关于一种基于区块链和IPFS网络的元数据流通方法、装置及存储介质。具体方案为:通过响应于监听到智能合约中元数据的修改事件,获取修改事件的修改信息和原始哈希指纹;根据原始哈希指纹,在梅克尔树中获取元数据的当前哈希指纹;基于当前哈希指纹,在星际文件***IPFS网络中获取与当前哈希指纹对应的原始元数据;基于修改信息和原始元数据,对IPFS网络修改原始元数据的操作和IPFS网络生成哈希指纹的操作进行预演,以得到修改后的元数据和新的哈希指纹;将修改后的元数据发送至IPFS网络。本申请提高了数据流通的灵活性。

Description

基于区块链和IPFS网络的元数据流通方法、装置及存储介质
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链和IPFS网络的元数据流通方法、装置及存储介质。
背景技术
相关技术中,现有的元数据存储方式通常是将元数据存放在IPFS网络中,IPFS节点客户端会根据元数据生成唯一的哈希指纹,将元数据同步给其他IPFS节点;智能合约管理者将该哈希指纹保存到运行在区块链上的智能合约中。如果存在对元数据修改的需求,那么无论对元数据进行任何的修改,元数据的哈希指纹将发生变化吗,将新的哈希指纹再次写入到智能合约中后,若用户没有及时更新哈希指纹,使用更新前的哈希指纹访问IPFS网络,则无法获取元数据,影响了数据的获取效率。
发明内容
为此,本申请提供一种基于区块链和IPFS网络的元数据流通方法、装置及存储介质。本申请的技术方案如下:
根据本申请实施例的第一方面,提供一种基于区块链和IPFS网络的元数据流通方法,应用于元数据流通中枢***,所述方法包括:
响应于监听到智能合约中元数据的修改事件,获取所述修改事件的修改信息和原始哈希指纹;
根据所述原始哈希指纹,在梅克尔树中获取所述元数据的当前哈希指纹;所述梅克尔树用于存储所述元数据的历史哈希指纹;
基于所述当前哈希指纹,在星际文件***IPFS网络中获取与所述当前哈希指纹对应的原始元数据;
基于所述修改信息和所述原始元数据,对所述IPFS网络修改所述原始元数据的操作进行预演以得到修改后的元数据,对所述IPFS网络生成哈希指纹的操作进行预演以得到新的哈希指纹;
将所述修改后的元数据发送至所述IPFS网络;所述修改后的元数据用于触发所述IPFS网络将所述原始元数据更新为所述修改后的元数据,并基于所述修改后的元数据将所述当前哈希指纹更新为所述新的哈希指纹。
根据本申请的一个实施例,所述基于所述修改信息和所述原始元数据,对所述IPFS网络修改所述原始元数据的操作进行预演以得到修改后的元数据,对所述IPFS网络生成哈希指纹的操作进行预演以得到新的哈希指纹,包括:
将所述修改信息和所述原始元数据输入至所述IPFS网络的客户端;所述IPFS网络的客户端设置于所述元数据流通中枢***中;
获取所述IPFS网络的客户端输出的修改后的元数据;所述修改后的元数据是所述IPFS网络的客户端根据所述修改信息和所述原始元数据,对所述原始元数据的修改进行预演得到的;
获取所述IPFS网络的客户端输出的新的哈希指纹;所述新的哈希指纹为所述IPFS网络的客户端基于所述修改后的元数据对生成哈希指纹进行预演得到的。
根据本申请的一个实施例,所述将所述修改后的元数据发送至IPFS网络,包括:
通过所述IPFS网络的客户端将所述修改后的元数据发送至所述IPFS网络。
根据本申请的一个实施例,在基于所述修改信息和所述原始元数据,对所述IPFS网络修改所述原始元数据的操作进行预演以得到修改后的元数据,对所述IPFS网络生成哈希指纹的操作进行预演以得到新的哈希指纹之后,还包括:
将所述新的哈希指纹添加至与所述元数据对应的所述梅克尔树中,以使所述新的哈希指纹与所述原始哈希指纹进行绑定映射。
根据本申请的一个实施例,所述根据所述原始哈希指纹,在梅克尔树中获取所述元数据的当前哈希指纹,包括:
根据所述修改信息,确定与所述元数据对应的梅克尔树;
在与所述元数据对应的梅克尔树中确定元数据的当前哈希指纹。
根据本申请的一个实施例,所述基于所述当前哈希指纹,在IPFS网络中获取与所述当前哈希指纹对应的原始元数据,包括:
基于所述当前哈希指纹,在IPFS网络的节点中查找是否存在与所述当前哈希指纹对应的原始元数据;
响应于当前IPFS网络的节点中存在所述原始元数据,获取所述原始元数据;
响应于当前IPFS网络的节点中未存在所述原始元数据,在IPFS网络的下一个节点中查找是否存在所述原始元数据,直至查找到所述原始元数据为止,获取所述原始元数据。
根据本申请实施例的第二方面,提供一种基于区块链和IPFS网络的元数据流通装置,应用于元数据流通中枢***,所述装置包括:
第一获取模块,用于响应于监听到智能合约中元数据的修改事件,获取所述修改事件的修改信息和原始哈希指纹;
第二获取模块,用于根据所述原始哈希指纹,在梅克尔树中获取所述元数据的当前哈希指纹;所述梅克尔树用于存储所述元数据的历史哈希指纹;
第三获取模块,用于基于所述当前哈希指纹,在IPFS网络中获取与所述当前哈希指纹对应的原始元数据;
预演模块,用于基于所述修改信息和所述原始元数据,对所述IPFS网络修改所述原始元数据的操作和所述IPFS网络生成哈希指纹的操作进行预演,以得到修改后的元数据和新的哈希指纹;
发送模块,用于将所述修改后的元数据发送至所述IPFS网络;所述修改后的元数据用于触发所述IPFS网络将所述原始元数据更新为所述修改后的元数据,并基于所述修改后的元数据将所述当前哈希指纹更新为所述新的哈希指纹。
根据本申请的一个实施例,所述预演模块包括:
输入子模块,用于将所述修改信息和所述原始元数据输入至所述IPFS网络的客户端;所述IPFS网络的客户端设置于所述第一服务器中;
第一获取子模块,用于获取所述IPFS网络的客户端输出的修改后的元数据;所述修改后的元数据是所述IPFS网络的客户端根据所述修改信息和所述原始元数据,对所述原始元数据的修改进行预演得到的;
第二获取子模块,用于获取所述IPFS网络的客户端输出的新的哈希指纹;所述新的哈希指纹为所述IPFS网络的客户端基于所述修改后的元数据对生成哈希指纹进行预演得到的。
根据本申请的一个实施例,所述发送模块,包括:
发送子模块,用于通过所述IPFS网络的客户端将所述修改后的元数据发送至所述IPFS网络。
根据本申请的一个实施例,所述装置还包括:
添加模块,用于将所述新的哈希指纹添加至与所述元数据对应的所述梅克尔树中,以使所述新的哈希指纹与所述原始哈希指纹进行绑定映射。
根据本申请的一个实施例,所述第二获取模块包括:
第一确定子模块,用于根据所述修改信息,确定与所述元数据对应的梅克尔树;
第二确定子模块,用于在与所述元数据对应的梅克尔树中确定元数据的当前哈希指纹。
根据本申请的一个实施例,所述第三获取模块包括:
查找子模块,用于基于所述当前哈希指纹,在IPFS网络的节点中查找是否存在与所述当前哈希指纹对应的原始元数据;
第三获取子模块,用于响应于当前IPFS网络的节点中存在所述原始元数据,获取所述原始元数据;
查找子模块,用于响应于当前IPFS网络的节点中未存在所述原始元数据,在IPFS网络的下一个节点中查找是否存在所述原始元数据,直至查找到所述原始元数据为止,获取所述原始元数据。
根据本申请实施例的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面中任一项所述的方法。
根据本申请实施例的第四方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一项所述的方法。
本申请的实施例提供的技术方案至少带来以下有益效果:
通过响应于监听到智能合约中元数据的修改事件,获取修改事件的修改信息和原始哈希指纹;根据原始哈希指纹,在梅克尔树中获取元数据的当前哈希指纹;基于当前哈希指纹,在星际文件***IPFS网络中获取与当前哈希指纹对应的原始元数据;基于修改信息和原始元数据,对IPFS网络修改原始元数据的操作和IPFS网络生成哈希指纹的操作进行预演,以得到修改后的元数据和新的哈希指纹;将修改后的元数据发送至IPFS网络。从而实现了通过原始哈希指纹在元数据流通中枢***中查找到新的哈希指纹,无需更新哈希指纹即可访问IPFS网络中的目标元数据,提高了数据流通的灵活性、及时性和准确性,避免了由于哈希指纹更新不及时到时数据无法访问的情况发生。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
图1为本申请实施例中的一种基于区块链和IPFS网络的元数据流通方法的流程图;
图2为本申请实施例中的一种基于区块链和IPFS网络的元数据流通装置的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,相关技术中,现有的元数据存储方式通常是将元数据存放在IPFS网络中,IPFS节点客户端会根据元数据生成唯一的哈希指纹,将元数据同步给其他IPFS节点;智能合约管理者将该哈希指纹保存到运行在区块链上的智能合约中。如果存在对元数据修改的需求,那么无论对元数据进行任何的修改,元数据的哈希指纹将发生变化吗,将新的哈希指纹再次写入到智能合约中后,若用户没有及时更新哈希指纹,使用更新前的哈希指纹访问IPFS网络,则无法获取元数据,影响了数据的获取效率。
基于上述问题,本申请提出了一种基于区块链和IPFS网络的元数据流通方法、装置及存储介质,可以实现通过响应于监听到智能合约中元数据的修改事件,获取修改事件的修改信息和原始哈希指纹;根据原始哈希指纹,在梅克尔树中获取元数据的当前哈希指纹;基于当前哈希指纹,在星际文件***IPFS网络中获取与当前哈希指纹对应的原始元数据;基于修改信息和原始元数据,对IPFS网络修改原始元数据的操作和IPFS网络生成哈希指纹的操作进行预演,以得到修改后的元数据和新的哈希指纹;将修改后的元数据发送至IPFS网络。从而实现了通过原始哈希指纹在元数据流通中枢***中查找到新的哈希指纹,无需更新哈希指纹即可快速访问IPFS网络中的目标元数据,提高了数据流通的灵活性、及时性和准确性,避免了由于哈希指纹更新不及时到时数据无法访问的情况发生。
下面首先对本申请涉及到的相关技术术语进行说明:
术语“区块链”,是一个共享的、不可篡改的账本,旨在促进业务网络中的交易记录和资产跟踪流程。资产可以是有形的(如房屋、汽车、现金、土地),也可以是无形的(如知识产权、专利、版权、品牌)。几乎任何有价值的东西都可以在区块链网络上进行跟踪和交易,从而降低各方面的风险和成本。区块链网络提供了智能合约的运行环境,将智能合约的运行结果以交易的形式打包进区块,区块链网络中的其他节点同步区块,使各个节点的状态达到一致。
术语“智能合约”,是一种运行在区块链上的程序,它不同于普通程序,智能合约要保证在区块链网络的每一个节点中运行的结果完全相同,从而使任何一个节点都可以验证区块的有效性。
术语“IPFS(Inter Planetary File System,星际文件***)”,是一种分布式Web,一种内容可寻址、版本化、点对点超媒体的分布式存储、传输协议。IPFS的网络里,是根据内容寻址,每一个上传到IPFS网络的文件、文件夹,都是以Qm开头的哈希指纹,无需知道文件存储在哪里,通过该哈希指纹就能够找到这个文件,这种方式叫内容寻址。IPFS网络用于元数据的保存,IPFS节点具有生成元数据的哈希指纹的功能,IPFS网络根据内容切块,将元数据进行保存,提供内容寻址的功能,将块组装成文件。
术语“智能合约”,是一种运行在区块链上的程序,它不同于普通程序,智能合约要保证在区块链网络的每一个节点中运行的结果完全相同,这样才能使任何一个节点都可以验证区块的有效性。
术语“元数据流通中枢***”,该***为多节点集群,有两个功能:1)以轮询的方式去监听区块链节点上的事件,其中就包括通过智能合约修改元数据的事件,对事件解析,明确待修改的元数据属性及修改值;2)内置了IPFS节点的客户端,将修改申请在客户端中进行预演,得到新的哈希指纹,并通过梅克尔树Merkle Tree的方式将新的哈希指纹和原始哈希指纹进行绑定映射,再向IPFS网络提交正式的修改申请。
图1为本申请实施例中的一种基于区块链和IPFS网络的元数据流通方法的流程图。需要说明的是,本申请实施例中的基于区块链和IPFS网络的元数据流通方法应用于元数据流通中枢***上,该元数据流通中枢***实现元数据的流通。此外,本申请实施例中的基于区块链和IPFS网络的元数据流通方法可用于本申请实施例中的基于区块链和IPFS网络的元数据流通装置,该装置可配置于电子设备。
如图1所示,该基于区块链和IPFS网络的元数据流通方法包括:
步骤110,响应于监听到智能合约中元数据的修改事件,获取修改事件的修改信息和原始哈希指纹。
需要说明的是,只有智能合约管理者才拥有元数据的修改权限,在多中心化的区块链网络中,可以将智能合约管理者设置为某一个超级节点,以确保智能合约管理者的权威性。
作为一种可能的示例,智能合约管理者在调用修改元数据的方法时,会直接将智能合约中的相关数据进行修改,同时,会生成一个元数据的修改事件,该事件封装了修改事件的修改信息和原始哈希指纹。其中,上述修改信息可以包括元数据属性的名称、修改的值。元数据流通中枢***以轮询的方式实时监听运行在区块链上的智能合约的事件情况,当合约管理者在调用修改元数据属性的方法生成了一个修改事件时,元数据流通中枢***会立刻监听到该修改事件,根据预先约定好的结构化数据格式解析提取到该修改事件的元数据待修改的属性和值,以及元数据对应的原始哈希指纹。
步骤120,根据原始哈希指纹,在梅克尔树中获取元数据的当前哈希指纹。
在本申请实施例中,梅克尔树Merkle Tree用于存储元数据的历史哈希指纹。
在本申请一些实施例中,步骤120具体包括:
步骤121,根据元数据修改信息,确定与元数据对应的梅克尔树。
步骤122,在与元数据对应的梅克尔树中确定元数据的当前哈希指纹。
作为一种可能的示例,元数据流通中枢***中维护了多棵Merkle Tree,每一棵Merkle Tree均维护了一个元数据的哈希指纹,原始哈希指纹可以是最左边的叶子节点。当元数据完成一次更新后,会生成一个新的哈希指纹,多次更新后则会形成多个新的哈希指纹,将这些哈希指纹通过Merkle Tree以平衡方式进行依次添加,每一层叶子节点的最大数量是256个,最后添加到Merkle Tree上的叶子节点记录了最新一次的元数据修改后所生成的哈希指纹。在Merkle Tree中找到最新一次的元数据修改后所生成的哈希指纹,该哈希指纹即为当前哈希指纹。
可选的,可以将新生成的Merkle Tree的Merkle Root梅克尔根以及Merkle Tree的节点保存至元数据流通中枢***本地的数据库集群中。
步骤130,基于当前哈希指纹,在IPFS网络中获取与当前哈希指纹对应的原始元数据。
在本申请一些实施例中,步骤130具体包括:
步骤131,基于当前哈希指纹,在IPFS网络的节点中查找是否存在与当前哈希指纹对应的原始元数据。
可以理解的是,IPFS网络中有多个节点,元数据流通中枢***基于当前哈希指纹,在IPFS网络的其中一个节点中查找是否存在与当前哈希指纹对应的原始元数据。
步骤132,响应于当前IPFS网络的节点中存在原始元数据,获取原始元数据。
步骤133,响应于当前IPFS网络的节点中未存在原始元数据,在IPFS网络的下一个节点中查找是否存在原始元数据,直至查找到原始元数据为止,获取原始元数据。
作为一种可能实施的示例,响应于当前IPFS网络的节点中存在原始元数据,元数据流通中枢***获取原始元数据;响应于当前IPFS网络的节点中未存在原始元数据,元数据流通中枢***在IPFS网络的下一个节点中查找是否存在原始元数据,直至查找到原始元数据为止,获取原始元数据。
步骤140,基于修改信息和原始元数据,对IPFS网络修改原始元数据的操作进行预演以得到修改后的元数据,对IPFS网络生成哈希指纹的操作进行预演以得到新的哈希指纹。
在本申请一些实施例中,步骤140具体包括:
步骤141,将修改信息和原始元数据输入至IPFS网络的客户端。
在本申请实施例中,IPFS网络的客户端设置于元数据流通中枢***中。
作为一种可能实施的示例,元数据流通中枢***中设置有IPFS网络的客户端,元数据流通中枢***将修改信息和原始元数据输入至IPFS网络的客户端中。
步骤142,获取IPFS网络的客户端输出的修改后的元数据。
在本申请实施例中,修改后的元数据是IPFS网络的客户端根据修改信息和原始元数据,对原始元数据的修改进行预演得到的。
作为一种可能实施的示例,IPFS网络的客户端根据修改信息和原始元数据对原始元数据的修改进行预演,生成修改后的元数据。
需要说明的是,上述IPFS网络的客户端根据修改信息和原始元数据,对原始元数据的修改进行预演为IPFS网络的现有功能,因此本申请中不做赘述。
步骤143,获取IPFS网络的客户端输出的新的哈希指纹。
在本申请实施例中,新的哈希指纹为IPFS网络的客户端基于修改后的元数据对生成哈希指纹进行预演得到的。
作为一种可能实施的示例,IPFS网络的客户端对修改后的元数据对进行切块计算,生成新的哈希指纹。
需要说明的是,上述IPFS网络的客户端对修改后的元数据对进行切块计算,生成新的哈希指纹为IPFS网络的现有功能,因此本申请中不做赘述。
步骤150,将新的哈希指纹添加至与元数据对应的梅克尔树中,以使新的哈希指纹与原始哈希指纹进行绑定映射。
作为一种可能实施的示例,元数据流通中枢***将新的哈希指纹添加至与元数据对应的梅克尔树中,新的哈希指纹存储在最后一个叶子节点上,从而与存储在梅克尔树最左侧的叶子节点上的原始哈希指纹进行绑定映射。
步骤160,将修改后的元数据发送至IPFS网络。
具体的,可以通过IPFS网络的客户端将修改后的元数据发送至IPFS网络。
在本申请实施例中,修改后的元数据用于触发IPFS网络将原始元数据更新为修改后的元数据,并基于修改后的元数据将当前哈希指纹更新为新的哈希指纹。
作为一种可能实施的示例,元数据流通中枢***通过IPFS网络的客户端将修改后的元数据发送至IPFS网络,IPFS网络在接收到修改后的元数据后,将原始元数据更新为修改后的元数据,并基于修改后的元数据生成新的哈希指纹。IPFS网络将当前节点生成的新的哈希指纹同步至其他IPFS网络节点。
作为有一种可能实施的示例,用户在获取目标元数据时,可以通过运行在区块链上的智能合约获取到目标元数据的原始哈希指纹,再根据该原始哈希指纹向元数据流通中枢***请求解析。元数据流通中枢***将该原始哈希指纹根据Merkle Tree解析出最新的哈希指纹,并根据最新的哈希指纹在IPFS网络中查找到目标元数据。
根据本申请实施例的基于区块链和IPFS网络的元数据流通方法,通过响应于监听到智能合约中元数据的修改事件,获取修改事件的修改信息和原始哈希指纹;根据原始哈希指纹,在梅克尔树中获取元数据的当前哈希指纹;基于当前哈希指纹,在星际文件***IPFS网络中获取与当前哈希指纹对应的原始元数据;基于修改信息和原始元数据,对IPFS网络修改原始元数据的操作和IPFS网络生成哈希指纹的操作进行预演,以得到修改后的元数据和新的哈希指纹;将修改后的元数据发送至IPFS网络。从而实现了通过原始哈希指纹在元数据流通中枢***中查找到新的哈希指纹,无需更新哈希指纹即可快速访问IPFS网络中的目标元数据,提高了数据流通的灵活性、及时性和准确性,避免了由于哈希指纹更新不及时到时数据无法访问的情况发生。
为了实现上述实施例,本申请提出了一种基于区块链和IPFS网络的元数据流通装置。
图2为本申请实施例中的一种基于区块链和IPFS网络的元数据流通装置的结构框图。该装置应用于元数据流通中枢***上。如图2所示,该装置包括:
第一获取模块201,用于响应于监听到智能合约中元数据的修改事件,获取修改事件的修改信息和原始哈希指纹;
第二获取模块202,用于根据原始哈希指纹,在梅克尔树中获取元数据的当前哈希指纹;梅克尔树用于存储元数据的历史哈希指纹;
第三获取模块203,用于基于当前哈希指纹,在IPFS网络中获取与当前哈希指纹对应的原始元数据;
预演模块204,用于基于修改信息和原始元数据,对IPFS网络修改原始元数据的操作进行预演以得到修改后的元数据,对IPFS网络生成哈希指纹的操作进行预演以得到新的哈希指纹;
发送模块205,用于将修改后的元数据发送至IPFS网络;修改后的元数据用于触发IPFS网络将原始元数据更新为修改后的元数据,并基于修改后的元数据将当前哈希指纹更新为新的哈希指纹。
根据本申请的一个实施例,预演模块204包括:
输入子模块,用于将修改信息和原始元数据输入至IPFS网络的客户端;IPFS网络的客户端设置于第一服务器中;
第一获取子模块,用于获取IPFS网络的客户端输出的修改后的元数据;修改后的元数据是IPFS网络的客户端根据修改信息和原始元数据,对原始元数据的修改进行预演得到的;
第二获取子模块,用于获取IPFS网络的客户端输出的新的哈希指纹;新的哈希指纹为IPFS网络的客户端基于修改后的元数据对生成哈希指纹进行预演得到的。
根据本申请的一个实施例,发送模块205,包括:
发送子模块,用于通过IPFS网络的客户端将修改后的元数据发送至IPFS网络。
根据本申请的一个实施例,装置还包括:
添加模块206,用于将新的哈希指纹添加至与元数据对应的梅克尔树中,以使新的哈希指纹与元数据原始哈希指纹进行绑定映射。
根据本申请的一个实施例,第二获取模块202包括:
第一确定子模块,用于根据元数据修改信息,确定与元数据对应的梅克尔树;
第二确定子模块,用于在与元数据对应的梅克尔树中确定元数据的当前哈希指纹。
根据本申请的一个实施例,第三获取模块203包括:
查找子模块,用于基于当前哈希指纹,在IPFS网络的节点中查找是否存在与当前哈希指纹对应的原始元数据;
第三获取子模块,用于响应于当前IPFS网络的节点中存在原始元数据,获取原始元数据;
查找子模块,用于响应于当前IPFS网络的节点中未存在原始元数据,在IPFS网络的下一个节点中查找是否存在原始元数据,直至查找到原始元数据为止,获取原始元数据。
根据本申请实施例的基于区块链和IPFS网络的元数据流通装置,通过响应于监听到智能合约中元数据的修改事件,获取修改事件的修改信息和原始哈希指纹;根据原始哈希指纹,在梅克尔树中获取元数据的当前哈希指纹;基于当前哈希指纹,在星际文件***IPFS网络中获取与当前哈希指纹对应的原始元数据;基于修改信息和原始元数据,对IPFS网络修改原始元数据的操作和IPFS网络生成哈希指纹的操作进行预演,以得到修改后的元数据和新的哈希指纹;将修改后的元数据发送至IPFS网络。从而实现了通过原始哈希指纹在元数据流通中枢***中查找到新的哈希指纹,无需更新哈希指纹即可快速访问IPFS网络中的目标元数据,提高了数据刘荣的灵活性、及时性和准确性,避免了由于哈希指纹更新不及时到时数据无法访问的情况发生。
本申请实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中消息处理方法的技术方案。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述实施例消息处理方法的技术方案。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,其存储在计算机可读存储介质中,至少一个处理器可以从计算机可读存储介质读取计算机程序,至少一个处理器执行计算机程序时可实现上述实施例中消息处理方法的技术方案。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (9)

1.一种基于区块链和IPFS网络的元数据流通方法,应用于元数据流通中枢***,其特征在于,所述方法包括:
响应于监听到智能合约中元数据的修改事件,获取所述修改事件的修改信息和原始哈希指纹;
根据所述原始哈希指纹,在梅克尔树中获取所述元数据的当前哈希指纹;所述梅克尔树用于存储所述元数据的历史哈希指纹;
基于所述当前哈希指纹,在星际文件***IPFS网络中获取与所述当前哈希指纹对应的原始元数据;
基于所述修改信息和所述原始元数据,对所述IPFS网络修改所述原始元数据的操作进行预演以得到修改后的元数据,对所述IPFS网络生成哈希指纹的操作进行预演以得到新的哈希指纹;
将所述修改后的元数据发送至所述IPFS网络;所述修改后的元数据用于触发所述IPFS网络将所述原始元数据更新为所述修改后的元数据,并基于所述修改后的元数据将所述当前哈希指纹更新为所述新的哈希指纹。
2.根据权利要求1所述的方法,其特征在于,所述基于所述修改信息和所述原始元数据,对所述IPFS网络修改所述原始元数据的操作进行预演以得到修改后的元数据,对所述IPFS网络生成哈希指纹的操作进行预演以得到新的哈希指纹,包括:
将所述修改信息和所述原始元数据输入至所述IPFS网络的客户端;所述IPFS网络的客户端设置于所述元数据流通中枢***中;
获取所述IPFS网络的客户端输出的所述修改后的元数据;所述修改后的元数据是所述IPFS网络的客户端根据所述修改信息和所述原始元数据,对所述原始元数据的修改进行预演得到的;
获取所述IPFS网络的客户端输出的新的哈希指纹;所述新的哈希指纹为所述IPFS网络的客户端基于所述修改后的元数据对生成哈希指纹进行预演得到的。
3.根据权利要求2所述的方法,其特征在于,所述将所述修改后的元数据发送至IPFS网络,包括:
通过所述IPFS网络的客户端将所述修改后的元数据发送至所述IPFS网络。
4.根据权利要求1所述的方法,其特征在于,在基于所述修改信息和所述原始元数据,对所述IPFS网络修改所述原始元数据的操作进行预演以得到修改后的元数据,对所述IPFS网络生成哈希指纹的操作进行预演以得到新的哈希指纹之后,还包括:
将所述新的哈希指纹添加至与所述元数据对应的所述梅克尔树中,以使所述新的哈希指纹与所述原始哈希指纹进行绑定映射。
5.根据权利要求4所述的方法,其特征在于,所述根据所述原始哈希指纹,在梅克尔树中获取所述元数据的当前哈希指纹,包括:
根据所述修改信息,确定与所述元数据对应的梅克尔树;
在与所述元数据对应的梅克尔树中确定所述元数据的当前哈希指纹。
6.根据权利要求1所述的方法,其特征在于,所述基于所述当前哈希指纹,在IPFS网络中获取与所述当前哈希指纹对应的原始元数据,包括:
基于所述当前哈希指纹,在IPFS网络的节点中查找是否存在与所述当前哈希指纹对应的原始元数据;
响应于当前IPFS网络的节点中存在所述原始元数据,获取所述原始元数据;
响应于当前IPFS网络的节点中未存在所述原始元数据,在IPFS网络的下一个节点中查找是否存在所述原始元数据,直至查找到所述原始元数据为止,获取所述原始元数据。
7.一种基于区块链和IPFS网络的元数据流通装置,应用于元数据流通中枢***,其特征在于,所述装置包括:
第一获取模块,用于响应于监听到智能合约中元数据的修改事件,获取所述修改事件的修改信息和原始哈希指纹;
第二获取模块,用于根据所述原始哈希指纹,在梅克尔树中获取所述元数据的当前哈希指纹;所述梅克尔树用于存储所述元数据的历史哈希指纹;
第三获取模块,用于基于所述当前哈希指纹,在IPFS网络中获取与所述当前哈希指纹对应的原始元数据;
预演模块,用于基于所述修改信息和所述原始元数据,对所述IPFS网络修改所述原始元数据的操作进行预演以得到修改后的元数据,对所述IPFS网络生成哈希指纹的操作进行预演以得到新的哈希指纹;
发送模块,用于将所述修改后的元数据发送至所述IPFS网络;所述修改后的元数据用于触发所述IPFS网络将所述原始元数据更新为所述修改后的元数据,并基于所述修改后的元数据将所述当前哈希指纹更新为所述新的哈希指纹。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-6中任一项所述的方法。
9.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法。
CN202211399387.3A 2022-11-09 2022-11-09 基于区块链和ipfs网络的元数据流通方法、装置及存储介质 Active CN115694841B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211399387.3A CN115694841B (zh) 2022-11-09 2022-11-09 基于区块链和ipfs网络的元数据流通方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211399387.3A CN115694841B (zh) 2022-11-09 2022-11-09 基于区块链和ipfs网络的元数据流通方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN115694841A true CN115694841A (zh) 2023-02-03
CN115694841B CN115694841B (zh) 2024-01-26

Family

ID=85050401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211399387.3A Active CN115694841B (zh) 2022-11-09 2022-11-09 基于区块链和ipfs网络的元数据流通方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN115694841B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111859422A (zh) * 2020-07-10 2020-10-30 郑州信大先进技术研究院 一种基于区块链的数字资产存证***
WO2020259629A1 (zh) * 2019-06-24 2020-12-30 深圳前海微众银行股份有限公司 一种基于区块链的数据检验方法及装置
CN114329529A (zh) * 2021-12-20 2022-04-12 中元众诚(北京)科技有限公司 一种基于区块链的资产数据管理方法及***
CN115033549A (zh) * 2022-06-20 2022-09-09 上海加密原生科技有限公司 基于区块链的文件链接存储方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020259629A1 (zh) * 2019-06-24 2020-12-30 深圳前海微众银行股份有限公司 一种基于区块链的数据检验方法及装置
CN111859422A (zh) * 2020-07-10 2020-10-30 郑州信大先进技术研究院 一种基于区块链的数字资产存证***
CN114329529A (zh) * 2021-12-20 2022-04-12 中元众诚(北京)科技有限公司 一种基于区块链的资产数据管理方法及***
CN115033549A (zh) * 2022-06-20 2022-09-09 上海加密原生科技有限公司 基于区块链的文件链接存储方法及装置

Also Published As

Publication number Publication date
CN115694841B (zh) 2024-01-26

Similar Documents

Publication Publication Date Title
US11914712B1 (en) Blockchain based secure naming and update verification
CN107943951B (zh) 一种区块链业务信息的检索方法及***
US10560544B2 (en) Data caching in a collaborative file sharing system
KR20210133289A (ko) 블록체인 네트워크에서 데이터 추출
CN110647503A (zh) 一种分布式存储方法及装置
US20070266029A1 (en) Recovery segment identification in a computing infrastructure
CN103019874B (zh) 基于数据同步实现异常处理的方法及装置
EP3709568A1 (en) Deleting user data from a blockchain
CN110764700A (zh) 数据存储方法、装置、计算机设备和存储介质
CN111258978B (zh) 一种数据存储的方法
CN111931220B (zh) 区块链网络的共识处理方法、装置、介质及电子设备
CN109923847A (zh) 调用链路的发现方法、装置、设备及存储介质
CN112364059B (zh) 多规则场景下关联匹配方法、装置、设备和存储介质
CN110795431B (zh) 环境监测数据处理方法、装置、设备及存储介质
US11728928B2 (en) Securely sharing public and private blockchain data
WO2022057525A1 (zh) 一种数据找回方法、装置、电子设备及存储介质
CN111159142B (zh) 一种数据处理方法及装置
CN113901131A (zh) 基于索引的链上数据查询方法及装置
EP4394619A1 (en) Data processing method and apparatus based on blockchain, and device and readable storage medium
CN110928923A (zh) 一种基于区块链的数据存储方法及***
CN115694841B (zh) 基于区块链和ipfs网络的元数据流通方法、装置及存储介质
CN111563083B (zh) 报表数据查询方法、装置及***
US11586643B2 (en) Enabling dynamic data capture with database objects
CN114860806A (zh) 区块链的数据查询方法、装置、计算机设备和存储介质
CN116107801A (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