System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书实施例属于区块链领域,尤其涉及一种基于区块链的数据存证方法和装置。
技术介绍
1、区块链(blockchain),是一种分布式数据库技术,它将数据记录以区块的形式连接在一起,形成一个链条。每个区块包含了一定时间范围内发生的所有交易记录,并且包含了前一个区块的哈希值,这样就形成了一个不可篡改的链条。由于区块链具有不可篡改的特性,并且能够确保数据的安全性、透明性和可追溯性,因此被广泛应用在数据存证的领域。
2、目前,在利用区块链来进行数据存证时,通常采用的方式是,将需要存证的数据内容或者该数据内容的数据摘要(比如hash)打包成区块链交易的形式发布到区块链上,然后通过在区块链上执行该交易,将该数据内容或者该数据内容的数据摘要持久化的存储到区块链上。
3、然而,采用这种方式,最终在区块链上持久化存储的数据内容或者该数据内容的数据摘要,通常都是由存证发起的一方在链下自主的在交易中添加的内容,在实际应用中,很难保证这些内容的真实可信。而且,如果需要存证的数据内容为大容量的数据,将这些数据内容直接发布到区块链上进行存证,可能还会影响数据存证的性能。
技术实现思路
1、本说明书提出一种基于区块链的数据存证方法,其中,所述区块链上部署了用于数据存证管理的智能合约;对所述方法包括:
2、获取用户提供的数据存证记录;其中,所述数据存证记录包含与目标数据对应的元数据;所述目标数据的数据内容存储在与所述区块链对接的外部数据源中;
3、调用所述智能合约
4、响应于所述预言机返回给所述智能合约的与所述目标数据对应的存证凭证,进一步调用所述智能合约包含的存证逻辑,将所述存证凭证添加至所述数据存证记录;其中,所述存证凭证为所述预言机基于所述目标数据的数据内容生成的存证凭证;所述目标数据的数据内容为所述预言机基于所述元数据从所述外部数据源中查询到的数据内容;
5、将添加了所述存证凭证的所述数据存证记录发布至所述区块链进行存证。
6、可选的,所述外部数据源为用户在与所述区块链对接的外部数据平台上注册的数据源;
7、将所述元数据发送至所述预言机,包括:
8、获取用户在所述外部数据平台上注册的所述外部数据源的详情数据;
9、将所述元数据和所述详情数据发送至所述预言机。
10、可选的,所述预言机包含部署在所述区块链上的预言机合约和部署在链外的与所述外部数据源对接的预言机服务程序;
11、将所述元数据和所述详情数据发送至所述预言机,以由所述预言机基于所述元数据和所述详情数据从所述外部数据源中查询所述目标数据的数据内容,包括:
12、将所述元数据和所述详情数据作为调用参数,进一步调用所述预言机合约,生成包含所述元数据和所述详情数据的外部数据获取事件,并获取所述预言机合约返回的与所述目标数据对应的存证凭证;
13、其中,所述存证凭证,为所述预言机服务程序基于所述目标数据的数据内容生成的存证凭证;所述目标数据的数据内容,为所述预言机服务程序响应于监听到的所述外部数据获取事件,基于所述元数据和所述详情数据从所述外部数据源中查询到的数据内容。
14、可选的,所述目标数据类型为所述用户自定义的数据类型;所述智能合约中还维护了与所述用户自定义的数据类型对应的数据规范;
15、基于所述目标数据的数据内容生成所述存证凭证,包括:
16、获取所述智能合约中维护的与所述目标数据类型对应的数据规范;
17、验证所述目标数据的数据内容是否符合所述数据规范;如果是,进一步基于所述目标数据的数据内容生成与所述目标数据对应的存证凭证。
18、可选的,所述外部数据源支持按照数据版本对存储的数据内容进行管理;所述元数据中还包含与所述目标数据对应的数据版本标识。
19、可选的,所述存证凭证为针对所述目标数据的数据内容进行hash计算得到的hash值。
20、本说明书还提出一种基于区块链的数据存证装置,其中,所述区块链上部署了用于数据存证管理的智能合约;所述装置包括:
21、获取模块,获取用户提供的数据存证记录;其中,所述数据存证记录包含与目标数据对应的元数据;所述目标数据的数据内容存储在与所述区块链对接的外部数据源中;
22、发送模块,调用所述智能合约包含的存证管理逻辑,将所述元数据发送至预言机;其中,所述预言机用于从所述外部数据源中为所述智能合约获取数据;
23、添加模块,响应于所述预言机返回给所述智能合约的与所述目标数据对应的存证凭证,进一步调用所述智能合约包含的存证逻辑,将所述存证凭证添加至所述数据存证记录;其中,所述存证凭证为所述预言机基于所述目标数据的数据内容生成的存证凭证;所述目标数据的数据内容为所述预言机基于所述元数据从所述外部数据源中查询到的数据内容;
24、存证模块,将添加了所述存证凭证的所述数据存证记录发布至所述区块链进行存证。
25、上述实施例中,由于在通过调用区块链上部署的智能合约来进行数据存证时,用户只需要向该智能合约提供待存证的数据的元数据,而不再需要向该智能合约提供该数据的数据内容,因此可以显著的提升在进行数据存证时的存证效率。
26、而且,由于待存证的数据的数据内容存储在与区块链对接的外部数据源中,因此通过区块链上部署的预言机从外部数据源中查询该数据的数据内容,并基于查询到的该数据的数据内容为该智能合约实时的生成存证凭证,可以利用预言机本身具有的数据验证能力,实现针对外部数据源中存储的大容量的数据的安全可信的数据存证。
本文档来自技高网...【技术保护点】
1.一种基于区块链的数据存证方法,其中,所述区块链上部署了用于数据存证管理的智能合约;对所述方法包括:
2.如权利要求1所述的方法,所述外部数据源为用户在与所述区块链对接的外部数据平台上注册的数据源;
3.如权利要求2所述的方法,所述预言机包含部署在所述区块链上的预言机合约和部署在链外的与所述外部数据源对接的预言机服务程序;
4.如权利要求3所述的方法,所述目标数据类型为所述用户自定义的数据类型;所述智能合约中还维护了与所述用户自定义的数据类型对应的数据规范;
5.如权利要求4所述的方法,所述外部数据源支持按照数据版本对存储的数据内容进行管理;所述元数据中还包含与所述目标数据对应的数据版本标识。
6.如权利要求1所述的方法,所述存证凭证为针对所述目标数据的数据内容进行hash计算得到的hash值。
7.一种基于区块链的数据存证装置,其中,所述区块链上部署了用于数据存证管理的智能合约;所述装置包括:
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理
9.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6任一所述方法的步骤。
10.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至6任一所述方法的步骤。
...【技术特征摘要】
1.一种基于区块链的数据存证方法,其中,所述区块链上部署了用于数据存证管理的智能合约;对所述方法包括:
2.如权利要求1所述的方法,所述外部数据源为用户在与所述区块链对接的外部数据平台上注册的数据源;
3.如权利要求2所述的方法,所述预言机包含部署在所述区块链上的预言机合约和部署在链外的与所述外部数据源对接的预言机服务程序;
4.如权利要求3所述的方法,所述目标数据类型为所述用户自定义的数据类型;所述智能合约中还维护了与所述用户自定义的数据类型对应的数据规范;
5.如权利要求4所述的方法,所述外部数据源支持按照数据版本对存储的数据内容进行管理;所述元数据中还包含与所述目标数据对应的数据版本标识。
【专利技术属性】
技术研发人员:马超,仲力恒,孙善禄,
申请(专利权)人:蚂蚁区块链科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。