一种基于区块链便携式文件存储的方法、系统和介质技术方案

技术编号:31789400 阅读:11 留言:0更新日期:2022-01-08 10:46
本申请涉及一种基于区块链便携式文件存储的方法、系统和介质,其中,该方法包括:调用部署在区块链上的智能合约,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;计算子文件的哈希值,对哈希值进行逐级计算得到根哈希值;将子文件按序存储到区块链的账本中;按预设数据结构构建文件资产对象,并按预设方向顺序构建事件记录。通过本申请,解决了区块链中普通文件存储需要耗费大量资源,以及哈希上链存在安全隐患的问题,降低了区块链存储的压力,实现了实现区块链智能合约处理完业务后文件直接存储在区块链账本中,以避免传统中心化存储文件哈希上链等给文件本身带来的风险。风险。风险。

【技术实现步骤摘要】
一种基于区块链便携式文件存储的方法、系统和介质


[0001]本申请涉及数据存储领域,特别是涉及一种基于区块链便携式文件存储的方法、系统和介质。

技术介绍

[0002]区块链技术是让参与的系统中任意多个节点,通过密码学算法把一段时间系统内的全部信息交流数据计算和记录到一个数据块(Block)中,并且生成该数据块的指纹用于链接(Chain)下个数据块和校验,系统中所有的参与节点共同认定记录是否为真。其数据通常存储在KV键值型数据库、关系型数据库、普通文件等,其中,KV键值型数据库中数据结构与接口都比较简单,具有很高的读写性能与良好的可扩展性,能支持大规模并发键值对数据的读写请求;而普通文件存储原始的账本区块链数据,通常是将共识后的区块链数据按protocol buffer编码格式序列化为二进制字节数组后,写入文件进行持久化保存;关系型数据库(Relational Database Management System)是基于严格的关系模型来表示与组织结构化数据的,支持SQL语句的增删改查操作,提供能够满足ACID原则的复杂事务处理机制。
[0003]当区块链网络要求全部的矿工维护同一个账本,为了保证其不可篡改,需要每一个矿工留有一个账本的备份在本地,但当账本内容发生改变时需要进行重新存储,这会耗费大量的存储资源。另外还可以仅在区块链中存放文件哈希值,将需要存储的文件存放在中心化数据库和/或文件存储服务器中,而这样,存储又成为去中心化应用中的一个短板,极易破坏区块链所构建的可信体系。
[0004]目前针对相关技术中普通文件存储需要耗费大量资源,以及哈希上链存在安全隐患的问题,尚未提出有效的解决方案。

技术实现思路

[0005]本申请实施例提供了一种基于区块链便携式文件存储的方法、系统和介质,以至少解决相关技术中普通文件存储需要耗费大量资源,以及哈希上链存在安全隐患的问题。
[0006]第一方面,本申请实施例提供了一种基于区块链便携式文件存储的方法,所述方法包括:
[0007]调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;
[0008]调用所述智能合约中的计算逻辑,对若干所述子文件分别进行计算,得到所述子文件的哈希值,按序将若干所述哈希值写入树状结构的叶子节点中,对所述哈希值进行逐级计算得到根哈希值;
[0009]调用所述智能合约中的存储逻辑,将所述子文件按序存储到所述区块链的账本中;
[0010]调用所述智能合约中的资产逻辑,为所述目标文件发行一枚非同质化代币,所述
非同质化代币代表所述目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,所述文件资产对象具有若干不可变的元数据属性,所述元数据属性包括所述非同质化代币和所述子文件的根哈希值,并按预设方向顺序构建事件记录。
[0011]在其中一些实施例中,调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件包括:
[0012]通过区块链获取目标文件,调用部署在所述区块链上的智能合约对所述目标文件进行预设编码;
[0013]调用部署在区块链上的智能合约中的分割逻辑,以所述区块链的区块容量和/或交易容量为标准,对所述预设编码后的目标文件的字符串进行分割,将所述分割后的子字符串按顺序存入数组中,获得所述目标文件对应的子文件。
[0014]在其中一些实施例中,调用所述智能合约中的资产逻辑,为所述目标文件发行一枚非同质化代币,所述非同质化代币代表所述目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,所述文件资产对象具有若干不可变的元数据属性,所述元数据属性包括所述非同质化代币和所述子文件的根哈希值,并按预设方向顺序构建事件记录包括:
[0015]调用所述智能合约中的资产逻辑,根据所述目标文件的文件信息,创建属于所述目标文件的交易发起方的文件资产;
[0016]调用所述智能合约中的资产逻辑,按预设数据结构构建文件资产对象,将若干不可变的元数据属性存入所述文件资产对象,并采用有向无环图构建事件记录,其中,所述元数据属性包括所述文件资产、所述目标文件的类型、所述目标文件的哈希值、所述子文件的根哈希和所述交易发起方的证书。
[0017]在其中一些实施例中,在按预设方向顺序构建事件记录之后,所述方法还包括:
[0018]通过所述区块链获取所述目标文件的修订文件,调用部署在所述区块链上的智能合约中的修订逻辑,获取所述目标文件的子文件,按序对所述子文件进行组合,并计算所述组合对应的根哈希值;
[0019]在所述组合对应的根哈希值与所述文件资产对象中的根哈希值一致的情况下,根据所述事件记录中的修订事件,按序逐次获取所述目标文件的差异信息,并通过差分算法逐一还原得到新目标文件;
[0020]通过差分算法计算所述修订文件与所述新目标文件的差异值,并将所述差异值存储到所述区块链的账本中;
[0021]调用所述智能合约按照预设数据结构将修订信息写入所述目标文件的文件资产对象中,并在所述事件记录中记录本次修订事件。
[0022]在其中一些实施例中,在按预设方向顺序构建事件记录之后,所述方法还包括:
[0023]通过所述区块链获取所述目标文件的签名文件,调用所述区块链上部署的智能合约中的签名逻辑,根据所述事件记录中的修订事件和/或签名事件,按序逐次获取所述目标文件的差异信息和/或多余信息,并通过差分算法和/或追加算法逐一还原得到新目标文件;
[0024]将所述签名文件和所述新目标文件进行比较得到多余值,并将所述多余值存储到所述区块链的账本中;
[0025]调用所述智能合约按照预设数据结构将签名信息写入所述目标文件的文件资产对象中,并所述事件记录中记录本次签名事件。
[0026]在其中一些实施例中,在修订事件或签名事件之后,所述方法还包括:
[0027]通过所述区块链响应文件读取请求,调用部署在所述区块链上的智能合约中的文件读取逻辑,读取目标文件的子文件,按序对所述子文件进行组合,并计算所述子文件的根哈希值;
[0028]根据事件记录中的修订事件和/或签名事件,按序逐次读取目标文件的差异信息和/或多余信息,并通过差分算法和/或追加算法逐一还原得到目标读取文件;
[0029]将所述目标读取文件传输给所述读取请求的请求方。
[0030]在其中一些实施例中,在按预设方向顺序构建事件记录之后,所述方法还包括:
[0031]在所述目标文件的文件信息中构建访问控制列表;
[0032]通过所述智能合约获取所述交易发起方的证书,并写入文件资产对象中的所述访问控制列表中;
[0033]当所述交易发起方进行授权许可时,通过智能合约获取被授权许可方的证书,并将所述被授权许可方的证书与权限写入所述访问控制列表中,其中,所述权限包括所有者、只读、修订和签名。
[0034]在其中一些实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链便携式文件存储的方法,其特征在于,所述方法包括:调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;调用所述智能合约中的计算逻辑,对若干所述子文件分别进行计算,得到所述子文件的哈希值,按序将若干所述哈希值写入树状结构的叶子节点中,对所述哈希值进行逐级计算得到根哈希值;调用所述智能合约中的存储逻辑,将所述子文件按序存储到所述区块链的账本中;调用所述智能合约中的资产逻辑,为所述目标文件发行一枚非同质化代币,所述非同质化代币代表所述目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,所述文件资产对象具有若干不可变的元数据属性,所述元数据属性包括所述非同质化代币和所述子文件的根哈希值,并按预设方向顺序构建事件记录。2.根据权利要求1所述的方法,其特征在于,调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件包括:通过区块链获取目标文件,调用部署在所述区块链上的智能合约对所述目标文件进行预设编码;调用部署在区块链上的智能合约中的分割逻辑,以所述区块链的区块容量和/或交易容量为标准,对所述预设编码后的目标文件的字符串进行分割,将所述分割后的子字符串按顺序存入数组中,获得所述目标文件对应的子文件。3.根据权利要求1所述的方法,其特征在于,调用所述智能合约中的资产逻辑,为所述目标文件发行一枚非同质化代币,所述非同质化代币代表所述目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,所述文件资产对象具有若干不可变的元数据属性,所述元数据属性包括所述非同质化代币和所述子文件的根哈希值,并按预设方向顺序构建事件记录包括:调用所述智能合约中的资产逻辑,根据所述目标文件的文件信息,创建属于所述目标文件的交易发起方的文件资产;调用所述智能合约中的资产逻辑,按预设数据结构构建文件资产对象,将若干不可变的元数据属性存入所述文件资产对象,并采用有向无环图构建事件记录,其中,所述元数据属性包括所述文件资产、所述目标文件的类型、所述目标文件的哈希值、所述子文件的根哈希和所述交易发起方的证书。4.根据权利要求1所述的方法,其特征在于,在按预设方向顺序构建事件记录之后,所述方法还包括:通过所述区块链获取所述目标文件的修订文件,调用部署在所述区块链上的智能合约中的修订逻辑,获取所述目标文件的子文件,按序对所述子文件进行组合,并计算所述组合对应的根哈希值;在所述组合对应的根哈希值与所述文件资产对象中的根哈希值一致的情况下,根据所述事件记录中的修订事件,按序逐次获取所述目标文件的差异信息,并通过差分算法逐一还原得到新目标文件;通过差分算法计算所述修订文件与所述新目标文件的差异值,并将所述差异值存储到所述区块链的账本中;
调用所述智能合约按照预设数据结构将修订信息写入所述目标文件的文件资产对象中,并在所述事件记录中记录本次修订事件。5.根据权利要求1所述的方法,其特征在于,在按预设方向顺序构建事件记录之后,所述方法还包括:...

【专利技术属性】
技术研发人员:青龙生龙玲刘明霞
申请(专利权)人:微易签杭州科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1