CN115599800A - 数据存储方法、装置、系统、存储介质及程序产品 - Google Patents
数据存储方法、装置、系统、存储介质及程序产品 Download PDFInfo
- Publication number
- CN115599800A CN115599800A CN202111319262.0A CN202111319262A CN115599800A CN 115599800 A CN115599800 A CN 115599800A CN 202111319262 A CN202111319262 A CN 202111319262A CN 115599800 A CN115599800 A CN 115599800A
- Authority
- CN
- China
- Prior art keywords
- data
- media data
- data storage
- storage
- resource pool
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据存储方法、装置、系统、存储介质及程序产品,属于数据存储技术领域。本申请实施例针对基于区块链的多源跨域媒体数据存储提供了一个数据存储系统,该数据存储系统为多个客户端提供数据存储接口,客户端可通过调用该数据存储接口以请求上链存储。该数据存储系统可对接并服务于多个区块链系统。且该数据存储系统还包括该多个客户端共享的存储资源池,以共享存储资源,减少了区块链参与者自行管理存储资源中易出现的问题,如数据易出错、存储资源扩展成本高。简单来说,本方案无需区块链参与者自行编排客户端、区块链系统与数据存储之间的逻辑,提升了区块链系统的易用性和普适性,提高了数据存储的安全性。
Description
本申请实施例要求于2021年7月8日提交的申请号为202110770872.6、发明名称为“数据存储方法、装置、服务器及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请实施例中。
技术领域
本申请实施例涉及数据存储技术领域,特别涉及一种数据存储方法、装置、系统、存储介质及程序产品。
背景技术
区块链是分布式数据存储、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中利用链式数据结构来验证和存储数据,利用分布式节点共识算法来生成和更新数据区块,利用密码学的方式保证数据传输和访问的安全,利用由自动化脚本代码组成的智能合约来编程和操作数据。当前,基于区块链的数据存储受到越来越多的重视和应用。
随着区块链业务与应用领域的泛化,多源跨域媒体数据的存储将是应用区块链技术解决行业问题的关键难题之一。其中,多源是指待存储的数据可能来源于不同的组织、节点或应用平台,跨域是指待存储的数据广泛存在于金融、能源、航空、农业、民生、物流等领域,另外,多源跨域媒体数据的模态也越来越丰富,如包括文本、音频、图像、视频等模态。
发明内容
本申请实施例提供了一种数据存储方法、装置、系统、存储介质及程序产品,能够基于区块链对多源跨域媒体数据进行存储,提升区块链系统的易用性和普适性,提高数据存储的安全性。所述技术方案如下:
第一方面,提供了一种数据存储方法,该方法由第一客户端执行,第一客户端为数据存储系统所包括的多个客户端中的任意一个,数据存储系统还包括该多个客户端所共享的存储资源池,且数据存储系统向该多个客户端提供有数据存储接口,存储资源池用于存储多源跨域媒体数据,该多个客户端为接入多个区块链系统的客户端,该方法包括:
第一客户端获取数据存储请求,该数据存储请求携带待存储的第一媒体数据;第一客户端调用数据存储接口,通过数据存储接口发送该数据存储请求,该数据存储请求用于指示将第一交易数据存储至区块链,以及将第一媒体数据存储至存储资源池,第一交易数据为第一媒体数据的交易数据。
本申请实施例针对基于区块链的多源跨域媒体数据存储提供了一个数据存储系统,该数据存储系统为多个客户端提供数据存储接口,客户端可通过调用该数据存储接口以请求上链存储。该数据存储系统可对接并服务于多个区块链系统。且该数据存储系统还包括该多个客户端共享的存储资源池,以共享存储资源,减少了区块链参与者自行管理存储资源中易出现的问题,如数据易出错、存储资源扩展成本高。也即是,本方案无需区块链参与者自行编排客户端、区块链系统与数据存储之间的逻辑,提升了区块链系统的易用性和普适性,提高了数据存储的安全性。
可选地,该数据存储请求还携带第一校验信息;第一客户端通过数据存储接口发送该数据存储请求,包括:第一客户端基于第一校验信息,通过数据存储接口验证第一媒体数据;在第一媒体数据验证通过的情况下,第一客户端通过数据存储接口发送该数据存储请求。也即是,数据存储接口内包含数据验证逻辑,以供客户端进行数据验证,保证数据的准确性。
可选地,该数据存储请求还携带第一签名信息,第一签名信息是根据第一私钥对第一媒体数据进行签名得到;第一客户端通过数据存储接口发送该数据存储请求,包括:第一客户端根据第一公钥,通过数据存储接口验证第一签名信息;在第一签名信息验证通过的情况下,第一客户端通过数据存储接口发送该数据存储请求。也即是,数据存储接口内包含签名验证逻辑,以供客户端进行签名验证,保证数据的真实性。
可选地,数据存储系统还包括多个服务端和服务管理端;第一客户端通过数据存储接口发送该数据存储请求,包括:第一客户端通过数据存储接口向服务管理端发送该数据存储请求,该数据存储请求还用于指示服务管理端从该多个服务端中确定第一服务端,并将该数据存储请求发送给第一服务端。也即是,数据存储系统提供多计算节点,以提升服务端的性能。
可选地,数据存储系统还向该多个客户端提供有数据查询接口;该方法还包括:第一客户端获取待查询的第二媒体数据的源信息;第一客户端调用数据查询接口,通过数据查询接口发送数据获取请求,该数据获取请求携带第二媒体数据的源信息;第一客户端通过数据查询接口接收第一查询结果,第一查询结果基于第二媒体数据的源信息得到。也即是,该数据存储系统为多个客户端提供数据查询接口,客户端可通过调用该数据查询接口以获取媒体数据。
可选地,第二媒体数据的源信息包括第二校验信息,第一查询结果携带查询到的第二媒体数据;第一客户端通过数据查询接口接收第一查询结果之后,还包括:第一客户端基于第二校验信息,通过数据查询接口验证查询到的第二媒体数据。也即是,数据查询接口内包含数据验证逻辑,以供客户端进行数据验证,保证获取到的媒体数据的准确性。
第二方面,提供了一种数据存储方法,该方法由第一服务端执行,第一服务端为数据存储系统所包括的至少一个服务端中的一个,数据存储系统还包括多个客户端以及该多个客户端共享的存储资源池,存储资源池用于存储多源跨域媒体数据,该多个客户端为接入多个区块链系统的客户端,该方法包括:
第一服务端接收数据存储请求,该数据存储请求携带待存储的第一媒体数据;第一服务端确定第一交易数据,将第一交易数据存储至区块链,以及将第一媒体数据存储至存储资源池,第一交易数据为第一媒体数据的交易数据。
本申请实施例针对基于区块链的多源跨域媒体数据存储提供了一个数据存储系统,无需客户端直接对接区块链系统进行上链存储,而是由服务端对接多个区块链系统以进行上链存储。该数据存储系统包括多个客户端共享的存储资源池,以共享存储资源,减少了区块链参与者自行管理存储资源中易出现的问题,如数据易出错、存储资源扩展成本高。也即是,本方案无需区块链参与者自行编排客户端、区块链系统与数据存储之间的逻辑,提升了区块链系统的易用性和普适性,提高了数据存储的安全性。
可选地,该数据存储请求还携带第一校验信息;第一服务端确定第一交易数据,包括:第一服务端基于第一校验信息验证第一媒体数据;在第一媒体数据验证通过的情况下,第一服务端确定第一交易数据。也即是,在上链存储的过程中,服务端能够进行数据验证,保证数据的准确性。
可选地,该数据存储请求还携带第一签名信息,第一签名信息是根据第一私钥对第一媒体数据进行签名得到;第一服务端确定第一交易数据,包括:第一服务端根据第一公钥验证第一签名信息;在第一签名信息验证通过的情况下,第一服务端确定第一交易数据。也即是,在上链存储的过程中,服务端能够进行签名验证,保证数据的真实性。
可选地,数据存储系统包括多个服务端和服务管理端,第一服务端由服务管理端从该多个服务端中确定;第一服务端接收数据存储请求,包括:第一服务端接收服务管理端发送的数据存储请求,服务管理端接收到的数据存储请求由第一客户端发送,第一客户端为多个客户端中的一个。也即是,数据存储系统提供多计算节点,以提升服务端的性能。
可选地,存储资源池包括多个存储节点,该多个存储节点用于分类存储多源跨域媒体数据;第一服务端将第一媒体数据存储至存储资源池,包括:第一服务端根据第一媒体数据的属性信息,对第一媒体数据进行分类,以得到分类结果;第一服务端按照分类结果从多个存储节点中确定第一存储节点,将第一媒体数据存储至第一存储节点。也即是,服务端能够根据媒体数据的属性进行分类存储,合理存储以减少存储空间的浪费,提升存储性能。
可选地,该方法还包括:第一服务端接收数据获取请求,该数据获取请求携带待查询的第三媒体数据的源信息;第一服务端基于第三媒体数据的源信息从存储资源池中查询第三媒体数据,以得到第二查询结果;第一服务端发送第二查询结果。也即是,服务端还具备数据查询能力。
可选地,第三媒体数据的源信息包括第三校验信息;第一服务端基于第三媒体数据的源信息从存储资源池查询中第三媒体数据,以得到第二查询结果,包括:第一服务端基于第三媒体数据的源信息从存储资源池中查询第三媒体数据;第一服务端基于第三校验信息验证查询到的第三媒体数据;在查询到的第三媒体数据验证通过的情况下,第一服务端获得第二查询结果,第二查询结果携带查询到的第三媒体数据。也即是,服务端能够对查询到的媒体数据进行数据验证,以保证查询到的媒体数据的准确性。
可选地,第三媒体数据的源信息包括第三校验信息,存储资源池包括主资源池和备资源池;第一服务端基于第三媒体数据的源信息从存储资源池中查询第三媒体数据,以得到第二查询结果,包括:第一服务端基于第三媒体数据的源信息从主资源池中查询第三媒体数据,基于第三校验信息验证从主资源池所查询到的第三媒体数据;在从主资源池查询到的第三媒体数据验证不通过的情况下,或者在从主资源池未查询到第三媒体数据的情况下,第一服务端基于第三媒体数据的源信息从备资源池中查询第三媒体数据,基于第三校验信息验证从备资源池查询到的第三媒体数据;在从备资源池查询到的第三媒体数据验证通过的情况下,第一服务端得到第二查询结果,第二查询结果携带从备资源池查询到的第三媒体数据。也即是,存储资源池具备自动灾备能力,提升数据存储系统的可靠性。
第三方面,提供了一种数据存储装置,所述数据存储装置具有实现上述第一方面中数据存储方法行为的功能。所述数据存储装置包括一个或多个模块,该一个或多个模块用于实现上述第一方面所提供的数据存储方法。
也即是,提供了一种数据存储装置,该装置用于第一客户端,第一客户端为数据存储系统所包括的多个客户端中的任意一个,数据存储系统还包括该多个客户端所共享的存储资源池,且数据存储系统向该多个客户端提供有数据存储接口,存储资源池用于存储多源跨域媒体数据,该多个客户端为接入多个区块链系统的客户端,该装置包括:
第一获取模块,用于获取数据存储请求,该数据存储请求携带待存储的第一媒体数据;
第一处理模块,用于调用数据存储接口,通过数据存储接口发送该数据存储请求,该数据存储请求用于指示将第一交易数据存储至区块链,以及将第一媒体数据存储至存储资源池,第一交易数据为第一媒体数据的交易数据。
可选地,该数据存储请求还携带第一校验信息;
第一处理模块包括:
第一验证子模块,用于基于第一校验信息,通过数据存储接口验证第一媒体数据;
发送子模块,用于在第一媒体数据验证通过的情况下,通过数据存储接口发送该数据存储请求。
可选地,该数据存储请求还携带第一签名信息,第一签名信息是根据第一私钥对第一媒体数据进行签名得到;
第一处理模块包括:
第二验证子模块,用于第一客户端根据第一公钥,通过数据存储接口验证第一签名信息;
发送子模块,用于在第一签名信息验证通过的情况下,通过数据存储接口发送该数据存储请求。
可选地,数据存储系统还包括多个服务端和服务管理端;
第一处理模块包括:
发送子模块,用于通过数据存储接口向服务管理端发送该数据存储请求,该数据存储请求还用于指示服务管理端从该多个服务端中确定第一服务端,并将该数据存储请求发送给第一服务端。
可选地,数据存储系统还向该多个客户端提供有数据查询接口;该装置还包括:
第二获取模块,用于获取待查询的第二媒体数据的源信息;
第二处理模块,用于调用数据查询接口,通过数据查询接口发送数据获取请求,该数据获取请求携带第二媒体数据的源信息;
接收模块,用于通过数据查询接口接收第一查询结果,第一查询结果基于第二媒体数据的源信息得到。
可选地,第二媒体数据的源信息包括第二校验信息,第一查询结果携带查询到的第二媒体数据;
该装置还包括:
验证模块,用于基于第二校验信息,通过数据查询接口验证查询到的第二媒体数据。
第四方面,提供了一种数据存储装置,所述数据存储装置具有实现上述第二方面中数据存储方法行为的功能。所述数据存储装置包括一个或多个模块,该一个或多个模块用于实现上述第二方面所提供的数据存储方法。
也即是,提供了一种数据存储装置,该装置用于第一服务端,第一服务端为数据存储系统所包括的至少一个服务端中的一个,数据存储系统还包括多个客户端以及该多个客户端共享的存储资源池,存储资源池用于存储多源跨域媒体数据,该多个客户端为接入多个区块链系统的客户端,该装置包括:
第一接收模块,用于接收数据存储请求,该数据存储请求携带待存储的第一媒体数据;
上链存储模块,用于确定第一交易数据,将第一交易数据存储至区块链,以及将第一媒体数据存储至存储资源池,第一交易数据为第一媒体数据的交易数据。
可选地,该数据存储请求还携带第一校验信息;
上链存储模块包括:
第一验证子模块,用于基于第一校验信息验证第一媒体数据;
确定子模块,用于在第一媒体数据验证通过的情况下,确定第一交易数据。
可选地,该数据存储请求还携带第一签名信息,第一签名信息是根据第一私钥对第一媒体数据进行签名得到;
上链存储模块包括:
第二验证子模块,用于根据第一公钥验证第一签名信息;
确定子模块,用于在第一签名信息验证通过的情况下,确定第一交易数据。
可选地,数据存储系统包括多个服务端和服务管理端,第一服务端由服务管理端从该多个服务端中确定;
第一接收模块包括:
接收子模块,用于接收服务管理端发送的数据存储请求,服务管理端接收到的数据存储请求由第一客户端发送,第一客户端为多个客户端中的一个。
可选地,存储资源池包括多个存储节点,该多个存储节点用于分类存储多源跨域媒体数据;
上链存储模块包括:
分类子模块,用于根据第一媒体数据的属性信息,对第一媒体数据进行分类,以得到分类结果;
存储子模块,用于按照分类结果从多个存储节点中确定第一存储节点,将第一媒体数据存储至第一存储节点。
可选地,该装置还包括:
第二接收模块,用于接收数据获取请求,该数据获取请求携带待查询的第三媒体数据的源信息;
查询模块,用于基于第三媒体数据的源信息从存储资源池中查询第三媒体数据,以得到第二查询结果;
发送模块,用于第一服务端发送第二查询结果。
可选地,第三媒体数据的源信息包括第三校验信息;
查询模块包括:
第一查询子模块,用于基于第三媒体数据的源信息从存储资源池中查询第三媒体数据;
第三验证子模块,用于基于第三校验信息验证查询到的第三媒体数据;
第一获得子模块,用于在查询到的第三媒体数据验证通过的情况下,获得第二查询结果,第二查询结果携带查询到的第三媒体数据。
可选地,第三媒体数据的源信息包括第三校验信息,存储资源池包括主资源池和备资源池;
查询模块包括:
第一处理子模块,用于基于第三媒体数据的源信息从主资源池中查询第三媒体数据,基于第三校验信息验证从主资源池所查询到的第三媒体数据;
第二处理子模块,用于在从主资源池查询到的第三媒体数据验证不通过的情况下,或者在从主资源池未查询到第三媒体数据的情况下,基于第三媒体数据的源信息从备资源池中查询第三媒体数据,基于第三校验信息验证从备资源池查询到的第三媒体数据;
第二获得子模块,用于在从备资源池查询到的第三媒体数据验证通过的情况下,得到第二查询结果,第二查询结果携带从备资源池查询到的第三媒体数据。
第五方面,提供了一种数据存储系统,该数据存储系统包括多个客户端和至少一个服务端,第一客户端为该多个客户端中的一个,第一服务端为该至少一个服务端中的一个,该数据存储系统还包括该多个客户端所共享的存储资源池,且该数据存储系统向该多个客户端提供有数据存储接口,存储资源池用于存储多源跨域媒体数据,该多个客户端为接入多个区块链系统的客户端;第一客户端,用于实现上述第一方面所述的数据存储方法;第一服务端,用于实现上述第二方面所述的数据存储方法。
第六方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器用于存储执行上述第一方面或第二方面所提供的数据存储方法的程序,以及存储用于实现上述第一方面或第二方面所提供的数据存储方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的数据存储方法。
第八方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的数据存储方法。
上述第三方面、第四方面、第五方面、第六方面、第七方面和第八方面所获得的技术效果与第一方面或第二方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请实施例提供的技术方案至少能够带来以下有益效果:
本申请实施例针对基于区块链的多源跨域媒体数据存储提供了一个数据存储系统,该数据存储系统为多个客户端提供数据存储接口,各个客户端可通过调用该数据存储接口以请求上链存储。其中,该多个客户端为接入多个区块链系统的客户端,即该数据存储系统可对接并服务于多个区块链系统。且该数据存储系统还包括该多个客户端共享的存储资源池,以共享存储资源,减少了区块链参与者自行管理存储资源中易出现的问题,如数据易出错、存储资源扩展成本高。简单来说,本方案无需区块链参与者自行编排客户端、区块链系统与数据存储之间的逻辑,提升了区块链系统的易用性和普适性,提高了数据存储的安全性。
附图说明
图1是本申请实施例提供的一种数据存储方法所涉及的系统架构图;
图2是本申请实施例提供的一种数据存储系统的架构图;
图3是本申请实施例提供的一种计算机设备的结构示意图;
图4是本申请实施例提供的一种数据存储方法的流程图;
图5是本申请实施例提供的另一种数据存储方法所涉及的系统架构图;
图6是本申请实施例提供的一种数据上链存储的方法流程图;
图7是本申请实施例提供的一种数据查询方法的流程图;
图8是本申请实施例提供的另一种数据查询方法的流程图;
图9是本申请实施例提供的一种数据存储装置的结构示意图;
图10是本申请实施例提供的另一种数据存储装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先需要说明的是,本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
图1是本申请实施例提供的一种数据存储方法所涉及的系统架构图。参见图1,该系统架构包括多个客户端、至少一个服务端和存储资源池。可选地,该系统称为数据存储系统。数据存储系统向该多个客户端提供有数据存储接口(也称为数据上链接口)。存储资源池供该多个客户端共享。该多个客户端为接入一个或多个区块链系统的客户端,可认为本申请实施例提供的数据存储系统对接一个或多个区块链系统。
其中,该多个客户端中的任一客户端用于实现本申请实施例提供的数据存储方法中客户端相应的功能。示例性地,第一客户端接收某个区块链参与者提交的数据存储请求,调用数据存储接口,通过数据存储接口发送数据存储请求,数据存储请求指示进行上链存储。第一客户端为数据存储系统所包括的多个客户端中的任意一个。
可选地,该多个客户端中的一个客户端供一个或多个区块链参与者使用。也即是,区块链参与者可单独使用某个客户端,或者,也可以共享某个客户端。
如果数据存储系统包括一个服务端,则客户端用于通过数据存储接口将数据存储请求发送给该服务端。如果数据存储系统包括多个服务端,则该数据存储系统还包括服务管理端,客户端用于通过数据存储接口将数据存储请求发送给服务管理端。服务管理端用于从该多个服务端中确定一个服务端,将数据存储请求发送给所确定的服务端。例如,服务管理端按照负载均衡策略从多个服务端中确定一个服务端。
该至少一个服务端中的任一服务端用于实现本申请实施例提供的数据存储方法中服务端相应的功能。示例性地,服务端接收数据存储请求,将交易数据存储至区块链,将媒体数据存储至存储资源池。
存储资源池用于存储多源跨域媒体数据(也称为多源跨域媒体大数据),以供该多个客户端共享,也即供区块链参与者共享。在本申请实施例中,存储资源池包括多个存储节点,该多个存储节点用于分类存储多源跨域媒体数据。可选地,该存储资源池为云存储资源池。
可选地,为了提升数据存储的安全性和准确性,客户端和/或服务端还用于对数据存储请求所携带的媒体数据进行验证,包括准确性验证(如摘要验证)和/或真实性验证(签名验证),在验证通过的情况下执行后续操作。
可选地,该数据存储系统还向该多个客户端提供有数据查询接口(也称为数据获取接口)。该多个客户端中的任一客户端还用于调用数据查询接口,以请求查询媒体数据。服务端还用于根据客户端的数据查询请求,从存储资源池中查询媒体数据,反馈查询结果。可选地,存储资源池包括主资源池和备资源池。备资源池用于存储灾备数据。可选地,为了提升数据存储的安全性和准确性,客户端和/或服务端还用于对查询到的媒体数据进行验证,包括准确性验证(如摘要验证),在验证通过的情况下执行后续操作。
由上述可知,本方案提供的数据存储系统可对接多个区块链系统,可认为该数据存储系统具备多租的能力。该数据存储系统为各个区块链参与者所用的客户端提供统一的数据存储接口和数据查询接口,无需用户自行组织客户端、区块链系统与存储之间的交互逻辑,提升了区块链系统的适用性和易用性,避免了用户自行编写代码引起的逻辑错误问题。这样就在一定程度上避免了自行编排逻辑易出现上链出错等问题,提高了客户端网络、传输网络以及存储网络的稳定性和安全性。本方案提供的存储资源池由区块链参与者共享,并由服务端管理,所有与存储资源的交互均需通过服务端。这样就在一定程度上避免了存储资源由区块链参与者各自管理所带来的存储资源分散、数据已丢失、易被篡改和不可访问等问题。且存储资源池便于扩展,降低了用户扩展存储资源的成本。存储资源池的分类存储,提升了存储性能,降低了存储资源的浪费。存储资源池设计为主备架构,以具备自动灾备能力。另外,客户端和服务端均能够进行数据验证,以保证数据不易被篡改。在媒体数据上链存储的过程以及媒体数据获取的过程均进行数据验证,二次验证提高了安全性和可靠性。
换句话说,本方案提供了一种面向区块链的富媒体数据存储系统。区块链系统可与该富媒体存储系统进行对接集成,来增强区块链系统的存储能力,弥补原有区块链系统无法管理富媒体数据的缺失。从用户视角看,使用对接了该系统的区块链系统,在使用上与原有区块链系统没有区别,用户可以不感知普通数据上链与富媒体数据上链在后台处理流程上的差异,无需用户(如公有云用户)自行管理富媒体数据存储,且该富媒体数据存储系统具有防篡改、数据管理、容灾、成本优化等能力。
在本申请实施例中,任一客户端为用户终端或者本地服务器。客户端也称为区块链客户端。任一服务端为一台云服务器,服务端也称为计算节点或云计算节点,服务端包括云计算引擎,云计算引擎用于实现本申请实施例提供的数据存储方法中服务端相应的功能。服务管理端为一台云服务器。
图2是本申请实施例提供的一种数据存储系统的架构图。参见图2,该数据存储系统包括客户侧和服务侧。客户侧包括多个客户端,即该多个客户端包括接入多个区块链系统的区块链客户端。服务侧包括多个服务端,每个服务端包括一个跨域媒体大数据云计算引擎(简称为云计算引擎)。区块链客户端用于获取待存储的跨域媒体大数据(简称为媒体数据)。可选地,客户端对媒体数据进行验证计算以确保数据的准确性。在验证通过的情况下,客户端发送数据存储请求。云计算引擎接收到数据存储请求后,对媒体数据进行验证计算。在验证通过的情况下,云计算引擎将媒体数据存储至存储资源池,即云版本化存储资源池。另外,在验证通过的情况下,云计算引擎将交易数据存储至区块链,即上链交易。
请参考图3,图3是根据本申请实施例示出的一种计算机设备的结构示意图。可选地,该计算机设备为图1或图2中所示的服务端。或者,该计算机设备为图1或图2所示的客户端。该计算机设备包括一个或多个处理器301、通信总线302、存储器303以及一个或多个通信接口304。
处理器301为一个通用中央处理器(central processing unit,CPU)、网络处理器(network processing,NP)、微处理器、或者为一个或多个用于实现本申请方案的集成电路,例如,专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。可选地,上述PLD为复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线302用于在上述组件之间传送信息。可选地,通信总线302分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选地,存储器303为只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、光盘(包括只读光盘(compact disc read-only memory,CD-ROM)、压缩光盘、激光盘、数字通用光盘、蓝光光盘等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器303独立存在,并通过通信总线302与处理器301相连接,或者,存储器303与处理器301集成在一起。
通信接口304使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口304包括有线通信接口,可选地,还包括无线通信接口。其中,有线通信接口例如以太网接口等。可选地,以太网接口为光接口、电接口或其组合。无线通信接口为无线局域网(wireless local area networks,WLAN)接口、蜂窝网络通信接口或其组合等。
可选地,在一些实施例中,计算机设备包括多个处理器,如图3中所示的处理器301和处理器305。这些处理器中的每一个为一个单核处理器,或者一个多核处理器。可选地,这里的处理器指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还包括输出设备306和输入设备307。输出设备306和处理器301通信,能够以多种方式来显示信息。例如,输出设备306为液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备307和处理器301通信,能够以多种方式接收用户的输入。例如,输入设备307是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器303用于存储执行本申请方案的程序代码310,处理器301能够执行存储器303中存储的程序代码310。该程序代码中包括一个或多个软件模块,该计算机设备能够通过处理器301以及存储器303中的程序代码310,来实现下文图4实施例提供的数据存储方法。
图4是本申请实施例提供的一种数据存储方法的流程图。该方法应用于数据存储系统,该数据存储系统为如图1或图2所示的数据存储系统。该数据存储系统包括多个客户端和至少一个服务端,以及该多个客户端所共享的存储资源池,且该数据存储系统向该多个客户端提供有数据存储接口,存储资源池用于存储多源跨域媒体数据。请参考图4,该方法包括如下步骤。
步骤401:第一客户端获取数据存储请求,该数据存储请求携带待存储的第一媒体数据。
其中,第一客户端为数据存储系统所包括的多个客户端中的任意一个。
由前述可知,数据存储系统对接一个或多个区块链系统,数据存储系统中的各个客户端可接收区块链参与者提交的数据存储请求,以进行媒体数据的上链存储。该数据存储系统是针对基于区块链的多源跨域媒体数据存储所设计的系统。该多个客户端可获取多源跨域媒体数据,以根据本申请实施例提供的数据存储方法进行上链存储。
接下来以该多个客户端中的第一客户端为例进行介绍。该多个客户端中除第一客户端之外的其他客户端获取数据存储请求,以进行媒体数据的上链存储的实现方式,与第一客户端相应的实现方式相类似,可参照对第一客户端的相关介绍。
在本申请实施例中,第一客户端获取数据存储请求,该数据存储请求携带待存储的第一媒体数据。示例性地,第一客户端接收第一数据源提交的数据存储请求,第一数据源为向第一客户端提交该数据存储请求的一个区块链参与者。
步骤402:第一客户端调用数据存储系统向区块链参与者提供的数据存储接口,通过该数据存储接口发送该数据存储请求。
在本申请实施例中,第一客户端在获取到数据存储请求之后,调用数据存储接口,通过该数据存储接口发送该数据存储请求。需要说明的是,该数据存储接口为数据存储系统向区块链参与者所用的客户端提供的统一的数据存储接口。第一客户端发送的数据存储请求用于指示将第一交易数据存储至区块链,以及将第一媒体数据存储至存储资源池。其中,第一交易数据为第一媒体数据的交易数据。
可选地,该数据存储请求还携带第一校验信息。第一客户端基于第一校验信息,通过数据存储接口验证第一媒体数据。在第一媒体数据验证通过的情况下,第一客户端通过数据存储接口发送该数据存储请求。可选地,在第一媒体数据验证不通过的情况下,第一客户端重新获取数据存储请求。也即是,为了保证数据准确性,第一客户端在发送该数据存储请求之前,对第一媒体数据进行验证。示例性地,第一客户端采用验证编码算法计算第一媒体数据的可验证编码(如摘要、循环冗余(cyclic redundancy check)CRC校验码、奇偶校验码等),将所计算的可验证编码与第一校验信息进行对比,如果对比一致,则第一客户端确定第一媒体数据验证通过。其中,验证编码算法也可以称为校验算法,验证编码算法可以为一种摘要算法(如哈希算法)或CRC校验算法或奇偶校验算法或其他的算法,本申请实施例对比不作限定。需要说明的是,第一客户端所采用的验证编码算法与确定第一校验信息所用的算法一致。
可选地,第一校验信息为经第一数据源签名的第一数据的校验信息,第一数据源为向第一客户端提交该数据存储请求的一个区块链参与者。也即是,第一数据源在提交第一媒体数据到第一客户端时携带使用数据源证书签名过的可验证编码(即第一校验信息),以便于第一客户端进行数据验证。
可选地,该数据存储请求还携带第一签名信息,第一签名信息是根据第一私钥对第一媒体数据进行签名得到。第一客户端根据第一公钥,通过数据存储接口验证第一签名信息。在第一签名信息验证通过的情况下,第一客户端通过数据存储接口发送该数据存储请求。可选地,在第一签名信息验证不通过的情况下,第一客户端重新获取数据存储请求。其中,第一签名信息由第一数据源根据第一私钥对第一媒体数据进行签名得到。需要说明的是,第一私钥与第一公钥是匹配的,第一公钥由第一数据源共享给第一客户端,以便于签名验证。第一客户端采用非对称加密方式验证第一签名信息确实由第一数据源签名得到。其中,第一客户端根据第一公钥通过数据存储接口验证第一签名信息的实现方式有很多,本申请实施例对此不作限定。
需要说明的是,安全验证(包括签名验证和/或数据验证)对第一客户端来说是可选地。换句话说,数据存储接口内可包含安全验证逻辑,也可不包含安全验证逻辑。可选地,在数据存储接口内包含签名验证逻辑和数据验证逻辑的情况下,第一客户端可以先通过签名验证逻辑来验证第一签名信息,以保证数据的真实性。在第一签名信息验证通过的情况下,第一客户端再通过数据验证逻辑验证第一媒体数据,以保证数据的准确性。
由前述可知,数据存储系统包括一个服务端或多个服务端。在数据存储系统包括一个服务端的情况下,第一客户端通过数据存储接口向该服务端发送数据存储请求,该服务端即第一服务端。在数据存储系统包括多个服务端的情况下,该数据存储系统还包括服务管理端。第一客户端通过该数据存储接口向服务管理端发送该数据存储请求,该数据存储请求还用于指示服务管理端从多个服务端中确定第一服务端,并将数据存储请求发送给第一服务端。其中,第一服务端为数据存储系统所包括的至少一个服务端中的一个。示例性地,服务管理端按照负载均衡策略从该多个服务端中确定第一服务端。
图5是本申请实施例提供的另一种数据存储方法所涉及的系统架构图。参见图5,假设本申请实施例提供的数据存储系统面向各个云用户出租,云用户为多个区块链系统的参与者。在租户区,区块链参与者通过区块链客户端与数据存储系统的服务端对接,区块链客户端A、区块链客户端B、区块链客户端C等通过调用数据存储接口以请求上链存储,或调用数据查询接口以请求获取媒体数据。在服务区(也可称为管理区),按照负载均衡策略通过各个服务端来处理区块链客户端的请求,服务端包括引擎A、引擎B、引擎C、引擎D、引擎E等。需要说明的是,该系统架构还包括存储资源池,以供租户共享存储资源。
步骤403:第一服务端接收该数据存储请求。
在本申请实施例中,在数据存储系统包括一个服务端的情况下,第一服务端接收第一客户端发送的数据存储请求。在数据存储系统包括多个服务端的情况下,第一服务端接收服务管理端发送的数据存储请求。由前述可知,服务管理端接收到的数据存储请求由第一客户端发送,第一服务端由服务管理端从多个服务端中确定。
步骤404:第一服务端确定第一交易数据,将第一交易数据存储至区块链,以及将第一媒体数据存储至存储资源池,该存储资源池用于存储多源跨域媒体数据。
在本申请实施例中,第一服务端在接收到该数据存储请求之后,确定第一交易数据,将第一交易数据存储至区块链,也即交易上链。第一服务端还将第一媒体数据存储至存储资源池。其中,第一交易数据为第一媒体数据的交易数据。
可选地,交易数据可称为日志数据。在一种实现方式中,第一交易数据包括第一校验信息(如数据摘要)。或者,若第一校验信息为一个数据摘要(如哈希值),则第一交易数据包括第一校验信息,若第一校验信息不是数据摘要,则第一交易数据包括第一媒体数据的摘要,第一媒体数据的摘要由第一服务端基于第一媒体数据确定。另外,第一交易数据还包括第一媒体数据的数据源信息、第一时间戳、第一媒体数据的存储位置、第一媒体数据的属性信息等。其中,第一时间戳可以根据第一数据源提交数据存储请求的系统时间确定。
由前述可知,该数据存储请求还携带第一校验信息。为了保证数据准确性,可选地,第一服务端在确定第一交易数据之前,基于第一校验信息验证第一媒体数据。在第一媒体数据验证通过的情况下,第一服务端确定第一交易数据。可选地,在第一媒体数据验证不通过的情况下,第一服务端向第一客户端发送存储失败的指示信息。也即是,第一服务端也可进行数据验证。示例性地,第一服务端使用验证编码算法计算第一媒体数据的可验证编码,将计算得到的可验证编码与第一校验信息进行对比,如果对比一致,则第一服务端确定第一媒体数据验证通过。其中,验证编码算法与确定第一校验信息所用的算法一致,具体可参照前述对第一客户端所采用的验证编码算法的相关介绍,这里不再赘述。
可选地,该数据存储请求还携带第一签名信息,第一签名信息是根据第一私钥对第一媒体数据进行签名得到。为了保证数据真实性,可选地,第一服务端在确定第一交易数据之前,根据第一公钥验证第一签名信息。在第一签名信息验证通过的情况下,第一服务端确定第一交易数据。可选地,在第一签名信息验证不通过的情况下,第一服务端向第一客户端发送存储失败的指示信息。也即是,第一服务端也可以进行签名验证。需要说明的是,第一私钥与第一公钥是匹配的,第一公钥由第一数据源共享给第一服务端,以便于签名验证。第一服务端采用非对称加密方式验证第一签名信息确实由第一数据源签名得到。其中,第一服务端根据第一公钥验证第一签名信息的实现方式有很多,本申请实施例对此不作限定。
需要说明的是,安全验证(包括签名验证和/或数据验证)对第一服务端来说也是可选地。可选地,第一服务端可以先验证第一签名信息,以保证数据的真实性。在第一签名信息验证通过的情况下,第一服务端再验证第一媒体数据,以保证数据的准确性。
在本申请实施例中,存储资源池包括多个存储节点,该多个存储节点用于分类存储多源跨域媒体数据。可选地,第一服务端根据第一媒体数据的属性信息,对第一媒体数据进行分类,以得到分类结果。第一服务端按照该分类结果从该多个存储节点中确定第一存储节点,将第一媒体数据存储至第一存储节点。
可选地,第一服务端从数据存储请求中获取第一媒体数据的属性信息的部分或全部。可选地,第一服务端从第一媒体数据中提取数据特征,所提取的数据特征可作为第一媒体数据的属性信息的一部分。
可选地,第一媒体数据的属性信息包括第一媒体数据的所属领域、来源组织或平台、冷热程度、数据特征等等。可见本方案能够根据多源跨域媒体大数据特点进行媒体的归类存储,减少存储空间的浪费,能够满足高性能的存储需求,提升存储性能。另外,存储资源池具备自动灾备以及与其他模块解耦的云存储服务,实现了可扩展的大数据存储能力。
可选地,第一服务端对第一媒体数据进行版本化存储,即每次存储不覆盖媒体数据的历史版本。第一服务端记录第一媒体数据以及第一媒体数据的版本信息,以便于记录和查询历史版本。由服务端记录交互历史,能够提升数据的安全性、可访问性和操作可追溯性。
可选地,第一服务端将第一交易数据存储至区块链,以及将第一媒体数据存储至存储资源池之后,向第一客户端反馈存储成功的指示信息。若第一服务端未成功上链交易数据或未成功存储第一媒体数据,则第一服务端向第一客户端反馈存储失败的指示信息。例如,在第一服务端验证第一媒体数据和/或第一签名信息不通过的情况下,第一服务端向第一客户端反馈存储失败的指示信息,以指示第一客户端重新获取数据存储请求。
需要说明的是,由前述可知,数据存储系统可对接多个区块链系统,即数据存储系统中的多个客户端为接入多个区块链系统的客户端,那么第一服务端将第一交易数据存储至第一区块链,第一区块链为第一客户端所接入的区块链系统中的区块链。
图6是本申请实施例提供的一种数据上链存储的方法流程图。参见图6,区块链客户端(简称客户端)通过调用数据上链接口(即数据存储接口)进行多源跨域媒体数据的上链存储。当某个区块链客户端接收到数据存储请求时,该客户端调用数据上链接口,数据上链接口内的逻辑将对媒体数据进行验证计算。其中,数据存储请求携带待存储的媒体数据和该媒体数据的摘要。例如,该客户端使用一种验证编码算法计算所接收到的媒体数据的可验证编码(如摘要),将计算得到的可验证编码与数据存储请求携带的校验信息进行比较,以验证该媒体数据的准确性,以防该媒体数据被篡改或在传输路径上出错。在该媒体数据验证通过后,该客户端向服务管理端发送该数据存储请求。服务管理端按照负载均衡策略分配计算节点,即从多个服务端中确定一个服务端。所分配的计算节点(即某个云计算引擎)对该媒体数据进行验证计算,在验证通过后,根据该媒体数据的哈希键值(即摘要)和属性信息(包括提取的数据特征)生成交易数据,将交易数据存储至区块链。在验证通过后,所分配的计算节点还根据该媒体数据的属性信息将该媒体数据分类存储至云版本化的存储资源池中。
综上所述,本申请实施例针对基于区块链的多源跨域媒体数据存储提供了一个数据存储系统,该数据存储系统为多个客户端提供数据存储接口,各个客户端可通过调用该数据存储接口以请求上链存储。其中,该多个客户端为接入多个区块链系统的客户端,即该数据存储系统可对接并服务于多个区块链系统。且该数据存储系统还包括该多个客户端共享的存储资源池,以共享存储资源,减少了区块链参与者自行管理存储资源中易出现的问题,如数据易出错、存储资源扩展成本高。简单来说,本方案无需区块链参与者自行编排客户端、区块链系统与数据存储之间的逻辑,提升了区块链系统的易用性和普适性,提高了数据存储的安全性。
由前述可知,该数据存储系统还向该多个客户端提供有数据查询接口,以便客户端查询媒体数据。接下来以第一客户端请求查询第二媒体数据为例进行介绍。
图7是本申请实施例提供的一种数据查询方法的流程图。该方法应用于数据存储系统,该数据存储系统为如图1或图2所示的数据存储系统。请参考图7,该数据查询方法包括如下步骤。
步骤701:第一客户端获取待查询的第二媒体数据的源信息。
在本申请实施例中,第一客户端获取待查询的第二媒体数据的源信息,以便查询第二媒体数据。示例性地,第一客户端存储有已上链的媒体数据的校验信息(如摘要)以及属性信息,第一客户端接收第二数据源提交的数据查询请求后,从存储的已上链的媒体数据的校验信息以及属性信息中获取第二媒体数据的源信息。其中,第二数据源为向第一客户端提交该数据查询请求的一个区块链参与者。第二数据源和上述第一数据源可以为同一个。第二媒体数据的源信息包括第二校验信息以及第二媒体数据的属性信息等,第二校验信息为第二媒体数据的校验信息。
步骤702:第一客户端调用数据存储系统向多个客户端提供的数据查询接口,通过该数据查询接口发送数据获取请求,该数据获取请求携带第二媒体数据的源信息。
在本申请实施例中,第一客户端调用数据查询接口,通过该数据查询接口发送数据获取请求,该数据获取请求携带第二媒体数据的源信息。
可选地,在该数据存储系统包括一个服务端的情况下,第一客户端通过数据查询接口向该服务端发送数据获取请求,该服务端即第二服务端。在该数据存储系统包括多个服务端和服务管理端的情况下,第一客户端通过数据查询接口向服务管理端发送数据获取请求,服务管理端从该多个服务端中确定第二服务端后,将该数据获取请求发送给第二服务端。其中,服务管理端可以按照负载均衡策略从该多个服务端中确定第二服务端。第二服务端与上述第一服务端可以为同一个,或者为不同的服务端。
步骤703:第二服务端接收该数据获取请求,基于第二媒体数据的源信息从存储资源池中查询第二媒体数据,以得到第一查询结果。
在本申请实施例中,第二服务端接收到该数据获取请求之后,基于第二媒体数据的源信息从存储资源池中查询第二媒体数据,以得到第一查询结果。示例性地,第二服务端接收到该数据获取请求之后,基于第二媒体数据的源信息,从区块链中查询第二媒体数据的交易数据,以得到第二交易数据。第二交易数据为第二媒体数据的交易数据。之后,第二服务端解析第二交易数据,以得到第二媒体数据的存储位置。第二服务端基于第二媒体数据的存储位置,从存储资源池中查询第二媒体数据。
可选地,第二服务端基于第二媒体数据的源信息从存储资源池中查询第二媒体数据,之后,第二服务端基于第二校验信息验证查询到的第二媒体数据。在查询到的第二媒体数据验证通过的情况下,第二服务端获得第一查询结果,第一查询结果携带查询到的第二媒体数据。可选地,在查询到的第二媒体数据验证不通过的情况下,第二服务端得到第一查询结果,第一查询结果携带获取失败的指示信息。其中,第二校验信息为数据获取请求携带的校验信息,或者说,第二校验信息为第二交易数据中的校验信息。数据获取请求携带的校验信息与第二交易数据中的校验信息是相同的。示例性地,假设第二校验信息为第二数据摘要,第二服务端使用验证编码算法计算查询到的第二媒体数据的摘要,将计算得到的摘要与第二数据摘要进行对比,以验证查询到的第二媒体数据的准确性。
可选地,为了提高存储可靠性,在本申请实施例中,存储资源池包括主资源池和备资源池,以提供灾备服务。相应地,第二服务端在接收到数据获取请求之后,先基于第二媒体数据的源信息从主资源池中查询第二媒体数据,基于第二校验信息验证从主资源池所查询到的第二媒体数据。在从主资源池查询到的第二媒体数据验证不通过的情况下,或者在从主资源池未查询到第二媒体数据的情况下,第二服务端再基于第二媒体数据的源信息从备资源池中查询第二媒体数据,基于第二校验信息验证从备资源池查询到的第二媒体数据。在从备资源池查询到的第二媒体数据验证通过的情况下,第二服务端得到第一查询结果,第一查询结果携带从备资源池查询到的第二媒体数据。可选地,在从备资源池查询到的第二媒体数据验证不通过的情况下,第二服务端得到第一查询结果,第一查询结果携带获取失败的指示信息。
需要说明的是,备资源池用于存储灾备数据,也称为备份数据。备资源池中存储的数据与主资源池中存储的数据是一致的。
由前述可知,服务端可以对媒体数据进行版本化存储,也即是,存储资源池中存储有媒体数据的最新版本以及历史版本。可选地,第二服务端先基于第二媒体数据的源信息从存储资源池中获取第二媒体数据的最新版本,并验证该最新版本,在该最新版本验证不通过的情况下,第二服务端再从存储资源池中查询第二媒体数据的上一个版本,并继续基于链上交易数据验证查询到的第二媒体数据的上一个版本,在验证通过后,第二服务端确定第一查询结果,第一查询结果携带查询到的第二媒体数据的上一个版本以及版本指示信息。
步骤704:第二服务端发送第一查询结果。
在本申请实施例中,第二服务端得到第一查询结果后,向第一客户端发送第一查询结果。或者,在数据存储系统包括多个服务端和服务管理端的情况下,第二服务端将第一查询结果发送给服务管理端,由服务管理端将第一查询结果转发给第一客户端。
步骤705:第一客户端通过数据查询接口接收第一查询结果。
在本申请实施例中,第一客户端可通过数据查询接口接收第一查询结果。
在第一查询结果携带查询到的第二媒体数据的情况下,为了确保查询到的第二媒体数据的准确性,第一客户端可以对接收到的第二媒体数据进行验证。也即是,第一客户端基于第二校验信息,通过数据查询接口验证查询到的第二媒体数据。示例性地,假设第二校验信息为第二数据摘要,第一客户端使用验证编码算法计算查询到的第二媒体数据的摘要,将计算得到的摘要与第二数据摘要进行对比,以验证查询到的第二媒体数据的准确性。
可选地,在第一查询结果携带获取失败的指示信息的情况下,第一客户端重新获取待查询的第二媒体数据的源信息。
以上以第一客户端请求查询第二媒体数据为例,对本申请实施例中数据查询方法的实现过程进行了介绍。接下来以第一服务端接收到某个客户端的数据查询请求为例,再次对本申请实施例中数据查询方法的实现过程进行示例性介绍,详细的实现过程可参照前述实施例。该数据查询方法包括下述步骤1至步骤5。
1.第二客户端获取待查询的第三媒体数据的源信息,第二客户端为数据存储系统中的一个客户端。
2.第二客户端调用数据查询接口,通过数据查询接口发送数据获取请求,该数据获取请求携带第三媒体数据的源信息。
3.第一服务端接收该数据获取请求。
4.第一服务端基于第三媒体数据的源信息从存储资源池中查询第三媒体数据,以得到第二查询结果,并发送第二查询结果。
可选地,第三媒体数据的源信息包括第三校验信息。第一服务端基于第三媒体数据的源信息从存储资源池中查询第三媒体数据。第一服务端基于第三校验信息验证查询到的第三媒体数据。在查询到的第三媒体数据验证通过的情况下,第一服务端获得第二查询结果,第二查询结果携带查询到的第三媒体数据。也即是,第一服务端可以验证查询到的媒体数据,以确保数据不被存储节点篡改或在传输路径上出错。
可选地,第三媒体数据的源信息包括第三校验信息,存储资源池包括主资源池和备资源池。相应地,第一服务端基于第三媒体数据的源信息从主资源池中查询第三媒体数据,基于第三校验信息验证从主资源池所查询到的第三媒体数据。在从主资源池查询到的第三媒体数据验证不通过的情况下,或者在从主资源池未查询到第三媒体数据的情况下,第一服务端基于第三媒体数据的源信息从备资源池中查询第三媒体数据,基于第三校验信息验证从备资源池查询到的第三媒体数据。在从备资源池查询到的第三媒体数据验证通过的情况下,第一服务端得到第二查询结果,第二查询结果携带从备资源池查询到的第三媒体数据。也即是,本方案提供灾备服务,以提高数据存储的可靠性。
5.第二客户端通过数据查询接口接收第二查询结果,第二查询结果基于第三媒体数据的源信息得到。
可选地,第三媒体数据的源信息包括第三校验信息,第二查询结果携带查询到的第三媒体数据。第二客户端通过数据查询接口接收第二查询结果之后,基于第三校验信息,通过数据查询接口验证查询到的第三媒体数据。
图8是本申请实施例提供的另一种数据查询方法的流程图。参见图8,客户端获取存储的待查询的媒体数据的哈希键值和属性信息,通过调用数据查询接口来请求查询该媒体数据的交易数据。其中,哈希键值为一种校验信息。服务端接收到该客户端的请求后,根据该媒体数据的哈希键值和数据属性读取链上交易数据,即从区块链获取该媒体数据的交易数据。服务端解析该交易数据,以得到链上存储的该媒体数据的存储地址,根据该存储地址从存储资源池读取媒体数据。服务端对读取的媒体数据进行数据验证,如进行哈希对比验证。在所读取的媒体数据验证通过的情况下,服务端向客户端反馈获取的媒体数据以及交易数据。在所读取的媒体数据验证不通过的情况下,服务端向客户端返回错误。或者,在存储资源池包括主资源池和备资源池的情况下,服务端先从主资源池读取媒体数据,对读取的媒体数据进行数据验证。在从主资源池读取的媒体数据验证不通过的情况下,服务端从备资源池读取媒体数据,对读取的媒体数据进行数据验证。在从备资源池读取的媒体数据验证通过的情况下,服务端向客户端反馈交易数据以及从备资源池读取的媒体数据。在从备资源池读取的媒体数据验证不通过的情况下,服务端向客户端返回错误。
综上所述,本申请实施例针对基于区块链的多源跨域媒体数据存储提供了一个数据存储系统,该数据存储系统为多个客户端提供数据存储接口和数据查询接口,各个客户端可通过调用该数据存储接口以请求上链存储,调用该数据查询接口以请求获取媒体数据。其中,该多个客户端为接入多个区块链系统的客户端,即该数据存储系统可对接并服务于多个区块链系统。且该数据存储系统还包括该多个客户端共享的存储资源池,以共享存储资源,减少了区块链参与者自行管理存储资源中易出现的问题,如数据易出错、存储资源扩展成本高。简单来说,本方案无需区块链参与者自行编排客户端、区块链系统与数据存储之间的逻辑,提升了区块链系统的易用性和普适性,提高了数据存储的安全性。
图9是本申请实施例提供的一种数据存储装置900的结构示意图,该数据存储装置900可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为图1至图8实施例中的客户端。在本申请实施例中,该装置900用于第一客户端,第一客户端为数据存储系统所包括的多个客户端中的任意一个,数据存储系统还包括该多个客户端所共享的存储资源池,且数据存储系统向该多个客户端提供有数据存储接口,存储资源池用于存储多源跨域媒体数据,该多个客户端为接入多个区块链系统的客户端。参见图9,该装置900包括:第一获取模块901和第一处理模块902。
第一获取模块901,用于获取数据存储请求,该数据存储请求携带待存储的第一媒体数据;
第一处理模块902,用于调用数据存储接口,通过数据存储接口发送该数据存储请求,该数据存储请求用于指示将第一交易数据存储至区块链,以及将第一媒体数据存储至存储资源池,第一交易数据为第一媒体数据的交易数据。
可选地,该数据存储请求还携带第一校验信息;
第一处理模块902包括:
第一验证子模块,用于基于第一校验信息,通过数据存储接口验证第一媒体数据;
发送子模块,用于在第一媒体数据验证通过的情况下,通过数据存储接口发送该数据存储请求。
可选地,该数据存储请求还携带第一签名信息,第一签名信息是根据第一私钥对第一媒体数据进行签名得到;
第一处理模块902包括:
第二验证子模块,用于第一客户端根据第一公钥,通过数据存储接口验证第一签名信息;
发送子模块,用于在第一签名信息验证通过的情况下,通过数据存储接口发送该数据存储请求。
可选地,数据存储系统还包括多个服务端和服务管理端;
第一处理模块902包括:
发送子模块,用于通过数据存储接口向服务管理端发送该数据存储请求,该数据存储请求还用于指示服务管理端从该多个服务端中确定第一服务端,并将该数据存储请求发送给第一服务端。
可选地,数据存储系统还向该多个客户端提供有数据查询接口;该装置900还包括:
第二获取模块,用于获取待查询的第二媒体数据的源信息;
第二处理模块,用于调用数据查询接口,通过数据查询接口发送数据获取请求,该数据获取请求携带第二媒体数据的源信息;
接收模块,用于通过数据查询接口接收第一查询结果,第一查询结果基于第二媒体数据的源信息得到。
可选地,第二媒体数据的源信息包括第二校验信息,第一查询结果携带查询到的第二媒体数据;
该装置900还包括:
验证模块,用于基于第二校验信息,通过数据查询接口验证查询到的第二媒体数据。
本申请实施例针对基于区块链的多源跨域媒体数据存储提供了一个数据存储系统,该数据存储系统为多个客户端提供数据存储接口,客户端可通过调用该数据存储接口以请求上链存储。该数据存储系统可对接并服务于多个区块链系统。且该数据存储系统还包括该多个客户端共享的存储资源池,以共享存储资源,减少了区块链参与者自行管理存储资源中易出现的问题,如数据易出错、存储资源扩展成本高。简单来说,本方案无需区块链参与者自行编排客户端、区块链系统与数据存储之间的逻辑,提升了区块链系统的易用性和普适性,提高了数据存储的安全性。
需要说明的是:上述实施例提供的数据存储装置在存储数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据存储装置与数据存储方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图10是本申请实施例提供的一种数据存储装置1000的结构示意图,该数据存储装置1000可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为图1至图8实施例中的服务端。在本申请实施例中,该装置用于第一服务端,第一服务端为数据存储系统所包括的至少一个服务端中的一个,数据存储系统还包括多个客户端以及该多个客户端共享的存储资源池,存储资源池用于存储多源跨域媒体数据,该多个客户端为接入多个区块链系统的客户端。参见图10,该装置1000包括:第一接收模块1001和上链存储模块1002。
第一接收模块1001,用于接收数据存储请求,该数据存储请求携带待存储的第一媒体数据;
上链存储模块1002,用于确定第一交易数据,将第一交易数据存储至区块链,以及将第一媒体数据存储至存储资源池,第一交易数据为第一媒体数据的交易数据。
可选地,该数据存储请求还携带第一校验信息;
上链存储模块1002包括:
第一验证子模块,用于基于第一校验信息验证第一媒体数据;
确定子模块,用于在第一媒体数据验证通过的情况下,确定第一交易数据。
可选地,该数据存储请求还携带第一签名信息,第一签名信息是根据第一私钥对第一媒体数据进行签名得到;
上链存储模块1002包括:
第二验证子模块,用于根据第一公钥验证第一签名信息;
确定子模块,用于在第一签名信息验证通过的情况下,确定第一交易数据。
可选地,数据存储系统包括多个服务端和服务管理端,第一服务端由服务管理端从该多个服务端中确定;
第一接收模块1001包括:
接收子模块,用于接收服务管理端发送的数据存储请求,服务管理端接收到的数据存储请求由第一客户端发送,第一客户端为多个客户端中的一个。
可选地,存储资源池包括多个存储节点,该多个存储节点用于分类存储多源跨域媒体数据;
上链存储模块1002包括:
分类子模块,用于根据第一媒体数据的属性信息,对第一媒体数据进行分类,以得到分类结果;
存储子模块,用于按照分类结果从多个存储节点中确定第一存储节点,将第一媒体数据存储至第一存储节点。
可选地,该装置1000还包括:
第二接收模块,用于接收数据获取请求,该数据获取请求携带待查询的第三媒体数据的源信息;
查询模块,用于基于第三媒体数据的源信息从存储资源池中查询第三媒体数据,以得到第二查询结果;
发送模块,用于第一服务端发送第二查询结果。
可选地,第三媒体数据的源信息包括第三校验信息;
查询模块包括:
第一查询子模块,用于基于第三媒体数据的源信息从存储资源池中查询第三媒体数据;
第三验证子模块,用于基于第三校验信息验证查询到的第三媒体数据;
第一获得子模块,用于在查询到的第三媒体数据验证通过的情况下,获得第二查询结果,第二查询结果携带查询到的第三媒体数据。
可选地,第三媒体数据的源信息包括第三校验信息,存储资源池包括主资源池和备资源池;
查询模块包括:
第一处理子模块,用于基于第三媒体数据的源信息从主资源池中查询第三媒体数据,基于第三校验信息验证从主资源池所查询到的第三媒体数据;
第二处理子模块,用于在从主资源池查询到的第三媒体数据验证不通过的情况下,或者在从主资源池未查询到第三媒体数据的情况下,基于第三媒体数据的源信息从备资源池中查询第三媒体数据,基于第三校验信息验证从备资源池查询到的第三媒体数据;
第二获得子模块,用于在从备资源池查询到的第三媒体数据验证通过的情况下,得到第二查询结果,第二查询结果携带从备资源池查询到的第三媒体数据。
本申请实施例针对基于区块链的多源跨域媒体数据存储提供了一个数据存储系统,该数据存储系统为多个客户端提供数据存储接口,客户端可通过调用该数据存储接口以请求上链存储。该数据存储系统可对接并服务于多个区块链系统。且该数据存储系统还包括该多个客户端共享的存储资源池,以共享存储资源,减少了区块链参与者自行管理存储资源中易出现的问题,如数据易出错、存储资源扩展成本高。简单来说,本方案无需区块链参与者自行编排客户端、区块链系统与数据存储之间的逻辑,提升了区块链系统的易用性和普适性,提高了数据存储的安全性。
需要说明的是:上述实施例提供的数据存储装置在存储数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据存储装置与数据存储方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,DVD))或半导体介质(例如:固态硬盘(solid state disk,SSD))等。值得注意的是,本申请实施例提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (31)
1.一种数据存储方法,其特征在于,所述方法由第一客户端执行,所述第一客户端为数据存储系统所包括的多个客户端中的任意一个,所述数据存储系统还包括所述多个客户端所共享的存储资源池,且所述数据存储系统向所述多个客户端提供有数据存储接口,所述存储资源池用于存储多源跨域媒体数据,所述多个客户端为接入多个区块链系统的客户端,所述方法包括:
所述第一客户端获取数据存储请求,所述数据存储请求携带待存储的第一媒体数据;
所述第一客户端调用所述数据存储接口,通过所述数据存储接口发送所述数据存储请求,所述数据存储请求用于指示将第一交易数据存储至区块链,以及将所述第一媒体数据存储至所述存储资源池,所述第一交易数据为所述第一媒体数据的交易数据。
2.如权利要求1所述的方法,其特征在于,所述数据存储请求还携带第一校验信息;
所述第一客户端通过所述数据存储接口发送所述数据存储请求,包括:
所述第一客户端基于所述第一校验信息,通过所述数据存储接口验证所述第一媒体数据;
在所述第一媒体数据验证通过的情况下,所述第一客户端通过所述数据存储接口发送所述数据存储请求。
3.如权利要求1或2所述的方法,其特征在于,所述数据存储请求还携带第一签名信息,所述第一签名信息是根据第一私钥对所述第一媒体数据进行签名得到;
所述第一客户端通过所述数据存储接口发送所述数据存储请求,包括:
所述第一客户端根据第一公钥,通过所述数据存储接口验证所述第一签名信息;
在所述第一签名信息验证通过的情况下,所述第一客户端通过所述数据存储接口发送所述数据存储请求。
4.如权利要求1-3任一所述的方法,其特征在于,所述数据存储系统还包括多个服务端和服务管理端;
所述第一客户端通过所述数据存储接口发送所述数据存储请求,包括:
所述第一客户端通过所述数据存储接口向所述服务管理端发送所述数据存储请求,所述数据存储请求还用于指示所述服务管理端从所述多个服务端中确定第一服务端,并将所述数据存储请求发送给所述第一服务端。
5.如权利要求1-4任一所述的方法,其特征在于,所述数据存储系统还向所述多个客户端提供有数据查询接口;所述方法还包括:
所述第一客户端获取待查询的第二媒体数据的源信息;
所述第一客户端调用所述数据查询接口,通过所述数据查询接口发送数据获取请求,所述数据获取请求携带所述第二媒体数据的源信息;
所述第一客户端通过所述数据查询接口接收第一查询结果,所述第一查询结果基于所述第二媒体数据的源信息得到。
6.如权利要求5所述的方法,其特征在于,所述第二媒体数据的源信息包括第二校验信息,所述第一查询结果携带查询到的第二媒体数据;
所述第一客户端通过所述数据查询接口接收第一查询结果之后,还包括:
所述第一客户端基于所述第二校验信息,通过所述数据查询接口验证所述查询到的第二媒体数据。
7.一种数据存储方法,其特征在于,所述方法由第一服务端执行,所述第一服务端为数据存储系统所包括的至少一个服务端中的一个,所述数据存储系统还包括多个客户端以及所述多个客户端共享的存储资源池,所述存储资源池用于存储多源跨域媒体数据,所述多个客户端为接入多个区块链系统的客户端,所述方法包括:
所述第一服务端接收数据存储请求,所述数据存储请求携带待存储的第一媒体数据;
所述第一服务端确定第一交易数据,将所述第一交易数据存储至区块链,以及将所述第一媒体数据存储至所述存储资源池,所述第一交易数据为所述第一媒体数据的交易数据。
8.如权利要求7所述的方法,其特征在于,所述数据存储请求还携带第一校验信息;
所述第一服务端确定第一交易数据,包括:
所述第一服务端基于所述第一校验信息验证所述第一媒体数据;
在所述第一媒体数据验证通过的情况下,所述第一服务端确定所述第一交易数据。
9.如权利要求7或8所述的方法,其特征在于,所述数据存储请求还携带第一签名信息,所述第一签名信息是根据第一私钥对所述第一媒体数据进行签名得到;
所述第一服务端确定第一交易数据,包括:
所述第一服务端根据第一公钥验证所述第一签名信息;
在所述第一签名信息验证通过的情况下,所述第一服务端确定所述第一交易数据。
10.如权利要求7-9任一所述的方法,其特征在于,所述数据存储系统包括多个服务端和服务管理端,所述第一服务端由所述服务管理端从所述多个服务端中确定;
所述第一服务端接收数据存储请求,包括:
所述第一服务端接收所述服务管理端发送的数据存储请求,所述服务管理端接收到的数据存储请求由第一客户端发送,所述第一客户端为所述多个客户端中的一个。
11.如权利要求7-10任一所述的方法,其特征在于,所述存储资源池包括多个存储节点,所述多个存储节点用于分类存储多源跨域媒体数据;
所述第一服务端将所述第一媒体数据存储至所述存储资源池,包括:
所述第一服务端根据所述第一媒体数据的属性信息,对所述第一媒体数据进行分类,以得到分类结果;
所述第一服务端按照所述分类结果从所述多个存储节点中确定第一存储节点,将所述第一媒体数据存储至所述第一存储节点。
12.如权利要求7-11任一所述的方法,其特征在于,所述方法还包括:
所述第一服务端接收数据获取请求,所述数据获取请求携带待查询的第三媒体数据的源信息;
所述第一服务端基于所述第三媒体数据的源信息从所述存储资源池中查询所述第三媒体数据,以得到第二查询结果;
所述第一服务端发送所述第二查询结果。
13.如权利要求12所述的方法,其特征在于,所述第三媒体数据的源信息包括第三校验信息;
所述第一服务端基于所述第三媒体数据的源信息从所述存储资源池查询中所述第三媒体数据,以得到第二查询结果,包括:
所述第一服务端基于所述第三媒体数据的源信息从所述存储资源池中查询所述第三媒体数据;
所述第一服务端基于所述第三校验信息验证查询到的第三媒体数据;
在所述查询到的第三媒体数据验证通过的情况下,所述第一服务端获得所述第二查询结果,所述第二查询结果携带所述查询到的第三媒体数据。
14.如权利要求12所述的方法,其特征在于,所述第三媒体数据的源信息包括第三校验信息,所述存储资源池包括主资源池和备资源池;
所述第一服务端基于所述第三媒体数据的源信息从所述存储资源池中查询所述第三媒体数据,以得到第二查询结果,包括:
所述第一服务端基于所述第三媒体数据的源信息从所述主资源池中查询所述第三媒体数据,基于所述第三校验信息验证从所述主资源池所查询到的第三媒体数据;
在从所述主资源池查询到的第三媒体数据验证不通过的情况下,或者在从所述主资源池未查询到所述第三媒体数据的情况下,所述第一服务端基于所述第三媒体数据的源信息从所述备资源池中查询所述第三媒体数据,基于所述第三校验信息验证从所述备资源池查询到的第三媒体数据;
在从所述备资源池查询到的第三媒体数据验证通过的情况下,所述第一服务端得到所述第二查询结果,所述第二查询结果携带从所述备资源池查询到的第三媒体数据。
15.一种数据存储装置,其特征在于,所述装置用于第一客户端,所述第一客户端为数据存储系统所包括的多个客户端中的任意一个,所述数据存储系统还包括所述多个客户端所共享的存储资源池,且所述数据存储系统向所述多个客户端提供有数据存储接口,所述存储资源池用于存储多源跨域媒体数据,所述多个客户端为接入多个区块链系统的客户端,所述装置包括:
第一获取模块,用于获取数据存储请求,所述数据存储请求携带待存储的第一媒体数据;
第一处理模块,用于调用所述数据存储接口,通过所述数据存储接口发送所述数据存储请求,所述数据存储请求用于指示将第一交易数据存储至区块链,以及将所述第一媒体数据存储至所述存储资源池,所述第一交易数据为所述第一媒体数据的交易数据。
16.如权利要求15所述的装置,其特征在于,所述数据存储请求还携带第一校验信息;
所述第一处理模块包括:
第一验证子模块,用于基于所述第一校验信息,通过所述数据存储接口验证所述第一媒体数据;
发送子模块,用于在所述第一媒体数据验证通过的情况下,通过所述数据存储接口发送所述数据存储请求。
17.如权利要求15或16所述的装置,其特征在于,所述数据存储请求还携带第一签名信息,所述第一签名信息是根据第一私钥对所述第一媒体数据进行签名得到;
所述第一处理模块包括:
第二验证子模块,用于根据第一公钥,通过所述数据存储接口验证所述第一签名信息;
发送子模块,用于在所述第一签名信息验证通过的情况下,通过所述数据存储接口发送所述数据存储请求。
18.如权利要求15-17任一所述的装置,其特征在于,所述数据存储系统还包括多个服务端和服务管理端;
所述第一处理模块包括:
发送子模块,用于通过所述数据存储接口向所述服务管理端发送所述数据存储请求,所述数据存储请求还用于指示所述服务管理端从所述多个服务端中确定第一服务端,并将所述数据存储请求发送给所述第一服务端。
19.如权利要求15-18任一所述的装置,其特征在于,所述数据存储系统还向所述多个客户端提供有数据查询接口;所述装置还包括:
第二获取模块,用于获取待查询的第二媒体数据的源信息;
第二处理模块,用于调用所述数据查询接口,通过所述数据查询接口发送数据获取请求,所述数据获取请求携带所述第二媒体数据的源信息;
接收模块,用于通过所述数据查询接口接收第一查询结果,所述第一查询结果基于所述第二媒体数据的源信息得到。
20.如权利要求19所述的装置,其特征在于,所述第二媒体数据的源信息包括第二校验信息,所述第一查询结果携带查询到的第二媒体数据;
所述装置还包括:
验证模块,用于基于所述第二校验信息,通过所述数据查询接口验证所述查询到的第二媒体数据。
21.一种数据存储装置,其特征在于,所述装置用于第一服务端,所述第一服务端为数据存储系统所包括的至少一个服务端中的一个,所述数据存储系统还包括多个客户端以及所述多个客户端共享的存储资源池,所述存储资源池用于存储多源跨域媒体数据,所述多个客户端为接入多个区块链系统的客户端,所述装置包括:
第一接收模块,用于接收数据存储请求,所述数据存储请求携带待存储的第一媒体数据;
上链存储模块,用于确定第一交易数据,将所述第一交易数据存储至区块链,以及将所述第一媒体数据存储至所述存储资源池,所述第一交易数据为所述第一媒体数据的交易数据。
22.如权利要求21所述的装置,其特征在于,所述数据存储请求还携带第一校验信息;
所述上链存储模块包括:
第一验证子模块,用于基于所述第一校验信息验证所述第一媒体数据;
确定子模块,用于在所述第一媒体数据验证通过的情况下,确定所述第一交易数据。
23.如权利要求21或22所述的装置,其特征在于,所述数据存储请求还携带第一签名信息,所述第一签名信息是根据第一私钥对所述第一媒体数据进行签名得到;
所述上链存储模块包括:
第二验证子模块,用于根据第一公钥验证所述第一签名信息;
确定子模块,用于在所述第一签名信息验证通过的情况下,确定所述第一交易数据。
24.如权利要求21-23任一所述的装置,其特征在于,所述数据存储系统包括多个服务端和服务管理端,所述第一服务端由所述服务管理端从所述多个服务端中确定;
所述第一接收模块包括:
接收子模块,用于接收所述服务管理端发送的数据存储请求,所述服务管理端接收到的数据存储请求由第一客户端发送,所述第一客户端为所述多个客户端中的一个。
25.如权利要求21-24任一所述的装置,其特征在于,所述存储资源池包括多个存储节点,所述多个存储节点用于分类存储多源跨域媒体数据;
所述上链存储模块包括:
分类子模块,用于根据所述第一媒体数据的属性信息,对所述第一媒体数据进行分类,以得到分类结果;
存储子模块,用于按照所述分类结果从所述多个存储节点中确定第一存储节点,将所述第一媒体数据存储至所述第一存储节点。
26.如权利要求21-25任一所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收数据获取请求,所述数据获取请求携带待查询的第三媒体数据的源信息;
查询模块,用于基于所述第三媒体数据的源信息从所述存储资源池中查询所述第三媒体数据,以得到第二查询结果;
发送模块,用于所述第一服务端发送所述第二查询结果。
27.如权利要求26所述的装置,其特征在于,所述第三媒体数据的源信息包括第三校验信息;
所述查询模块包括:
第一查询子模块,用于基于所述第三媒体数据的源信息从所述存储资源池中查询所述第三媒体数据;
第三验证子模块,用于基于所述第三校验信息验证查询到的第三媒体数据;
第一获得子模块,用于在所述查询到的第三媒体数据验证通过的情况下,获得所述第二查询结果,所述第二查询结果携带所述查询到的第三媒体数据。
28.如权利要求26所述的装置,其特征在于,所述第三媒体数据的源信息包括第三校验信息,所述存储资源池包括主资源池和备资源池;
所述查询模块包括:
第一处理子模块,用于基于所述第三媒体数据的源信息从所述主资源池中查询所述第三媒体数据,基于所述第三校验信息验证从所述主资源池所查询到的第三媒体数据;
第二处理子模块,用于在从所述主资源池查询到的第三媒体数据验证不通过的情况下,或者在从所述主资源池未查询到所述第三媒体数据的情况下,基于所述第三媒体数据的源信息从所述备资源池中查询所述第三媒体数据,基于所述第三校验信息验证从所述备资源池查询到的第三媒体数据;
第二获得子模块,用于在从所述备资源池查询到的第三媒体数据验证通过的情况下,得到所述第二查询结果,所述第二查询结果携带从所述备资源池查询到的第三媒体数据。
29.一种数据存储系统,其特征在于,所述数据存储系统包括多个客户端和至少一个服务端,第一客户端为所述多个客户端中的一个,第一服务端为所述至少一个服务端中的一个,所述数据存储系统还包括多个客户端所共享的存储资源池,且所述数据存储系统向所述多个客户端提供有数据存储接口,所述存储资源池用于存储多源跨域媒体数据,所述多个客户端为接入多个区块链系统的客户端;
所述第一客户端,用于实现权利要求1-6任一所述的方法的步骤;
所述第一服务端,用于实现权利要求7-14任一所述的方法的步骤。
30.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法的步骤,或者实现权利要求7-14任一所述的方法的步骤。
31.一种计算机程序产品,其特征在于,所述计算机程序产品内存储有计算机指令,所述计算机指令被处理器执行时实现权利要求1-6任一所述的方法的步骤,或者实现权利要求7-14任一所述的方法的步骤。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2022/082069 WO2023279770A1 (zh) | 2021-07-08 | 2022-03-21 | 数据存储方法、装置、系统、存储介质及程序产品 |
| EP22836530.0A EP4354313A4 (en) | 2021-07-08 | 2022-03-21 | DATA STORAGE METHOD, APPARATUS AND SYSTEM, STORAGE MEDIUM AND PROGRAM PRODUCT |
| US18/405,239 US20240205020A1 (en) | 2021-07-08 | 2024-01-05 | Data Storage Method, Apparatus, and System, Storage Medium, and Program Product |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2021107708726 | 2021-07-08 | ||
| CN202110770872 | 2021-07-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN115599800A true CN115599800A (zh) | 2023-01-13 |
Family
ID=84841767
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202111319262.0A Pending CN115599800A (zh) | 2021-07-08 | 2021-11-09 | 数据存储方法、装置、系统、存储介质及程序产品 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115599800A (zh) |
-
2021
- 2021-11-09 CN CN202111319262.0A patent/CN115599800A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11921682B2 (en) | Extracting data from a blockchain network | |
| US11681695B2 (en) | Aggregation in dynamic and distributed computing systems | |
| US10382380B1 (en) | Workload management service for first-in first-out queues for network-accessible queuing and messaging services | |
| US10860604B1 (en) | Scalable tracking for database udpates according to a secondary index | |
| CN112101942B (zh) | 基于区块链的交易请求处理方法、系统、装置及设备 | |
| CN113839977A (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
| US8660996B2 (en) | Monitoring files in cloud-based networks | |
| US10630589B2 (en) | Resource management system | |
| US11526516B2 (en) | Method, apparatus, device and storage medium for generating and processing a distributed graph database | |
| US20250130735A1 (en) | Data Processing Method and Related Device | |
| WO2020253344A1 (zh) | 一种授权控制的方法、装置以及存储介质 | |
| WO2023029485A1 (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
| CN113590348A (zh) | 基于树状结构的参数传递方法、装置、设备及介质 | |
| US20240205020A1 (en) | Data Storage Method, Apparatus, and System, Storage Medium, and Program Product | |
| CN114936254A (zh) | 云链融合机制下的食品安全大数据共享管理方法及系统 | |
| CN114615325A (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
| CN110351107A (zh) | 配置管理方法及装置 | |
| CN115599800A (zh) | 数据存储方法、装置、系统、存储介质及程序产品 | |
| US11836545B1 (en) | Integration of cloud entities in an event architecture | |
| CN117033383A (zh) | 数据检测方法、装置、设备及存储介质 | |
| US10310889B1 (en) | Data statistics service | |
| CN112182085A (zh) | 数据导出方法、装置、设备及存储介质 | |
| US11928044B1 (en) | Batching event data in an event-driven architecture | |
| US11943316B1 (en) | Database connection multiplexing for prepared statements | |
| US11861421B1 (en) | Controlling timing of event data transmissions in an event architecture |
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 |