CN113901005A - 一种基于区块链便携式文件存储的方法、系统和介质 - Google Patents
一种基于区块链便携式文件存储的方法、系统和介质 Download PDFInfo
- Publication number
- CN113901005A CN113901005A CN202111020657.0A CN202111020657A CN113901005A CN 113901005 A CN113901005 A CN 113901005A CN 202111020657 A CN202111020657 A CN 202111020657A CN 113901005 A CN113901005 A CN 113901005A
- Authority
- CN
- China
- Prior art keywords
- file
- intelligent contract
- block chain
- target file
- asset
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Abstract
本申请涉及一种基于区块链便携式文件存储的方法、系统和介质,其中,该方法包括:调用部署在区块链上的智能合约,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;计算子文件的哈希值,对哈希值进行逐级计算得到根哈希值;将子文件按序存储到区块链的账本中;按预设数据结构构建文件资产对象,并按预设方向顺序构建事件记录。通过本申请,解决了区块链中普通文件存储需要耗费大量资源,以及哈希上链存在安全隐患的问题,降低了区块链存储的压力,实现了实现区块链智能合约处理完业务后文件直接存储在区块链账本中,以避免传统中心化存储文件哈希上链等给文件本身带来的风险。
Description
技术领域
本申请涉及数据存储领域,特别是涉及一种基于区块链便携式文件存储的方法、系统和介质。
背景技术
区块链技术是让参与的系统中任意多个节点,通过密码学算法把一段时间系统内的全部信息交流数据计算和记录到一个数据块(Block)中,并且生成该数据块的指纹用于链接(Chain)下个数据块和校验,系统中所有的参与节点共同认定记录是否为真。其数据通常存储在KV键值型数据库、关系型数据库、普通文件等,其中,KV键值型数据库中数据结构与接口都比较简单,具有很高的读写性能与良好的可扩展性,能支持大规模并发键值对数据的读写请求;而普通文件存储原始的账本区块链数据,通常是将共识后的区块链数据按protocol buffer编码格式序列化为二进制字节数组后,写入文件进行持久化保存;关系型数据库(Relational Database Management System)是基于严格的关系模型来表示与组织结构化数据的,支持SQL语句的增删改查操作,提供能够满足ACID原则的复杂事务处理机制。
当区块链网络要求全部的矿工维护同一个账本,为了保证其不可篡改,需要每一个矿工留有一个账本的备份在本地,但当账本内容发生改变时需要进行重新存储,这会耗费大量的存储资源。另外还可以仅在区块链中存放文件哈希值,将需要存储的文件存放在中心化数据库和/或文件存储服务器中,而这样,存储又成为去中心化应用中的一个短板,极易破坏区块链所构建的可信体系。
目前针对相关技术中普通文件存储需要耗费大量资源,以及哈希上链存在安全隐患的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于区块链便携式文件存储的方法、系统和介质,以至少解决相关技术中普通文件存储需要耗费大量资源,以及哈希上链存在安全隐患的问题。
第一方面,本申请实施例提供了一种基于区块链便携式文件存储的方法,所述方法包括:
调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;
调用所述智能合约中的计算逻辑,对若干所述子文件分别进行计算,得到所述子文件的哈希值,按序将若干所述哈希值写入树状结构的叶子节点中,对所述哈希值进行逐级计算得到根哈希值;
调用所述智能合约中的存储逻辑,将所述子文件按序存储到所述区块链的账本中;
调用所述智能合约中的资产逻辑,为所述目标文件发行一枚非同质化代币,所述非同质化代币代表所述目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,所述文件资产对象具有若干不可变的元数据属性,所述元数据属性包括所述非同质化代币和所述子文件的根哈希值,并按预设方向顺序构建事件记录。
在其中一些实施例中,调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件包括:
通过区块链获取目标文件,调用部署在所述区块链上的智能合约对所述目标文件进行预设编码;
调用部署在区块链上的智能合约中的分割逻辑,以所述区块链的区块容量和/或交易容量为标准,对所述预设编码后的目标文件的字符串进行分割,将所述分割后的子字符串按顺序存入数组中,获得所述目标文件对应的子文件。
在其中一些实施例中,调用所述智能合约中的资产逻辑,为所述目标文件发行一枚非同质化代币,所述非同质化代币代表所述目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,所述文件资产对象具有若干不可变的元数据属性,所述元数据属性包括所述非同质化代币和所述子文件的根哈希值,并按预设方向顺序构建事件记录包括:
调用所述智能合约中的资产逻辑,根据所述目标文件的文件信息,创建属于所述目标文件的交易发起方的文件资产;
调用所述智能合约中的资产逻辑,按预设数据结构构建文件资产对象,将若干不可变的元数据属性存入所述文件资产对象,并采用有向无环图构建事件记录,其中,所述元数据属性包括所述文件资产、所述目标文件的类型、所述目标文件的哈希值、所述子文件的根哈希和所述交易发起方的证书。
在其中一些实施例中,在按预设方向顺序构建事件记录之后,所述方法还包括:
通过所述区块链获取所述目标文件的修订文件,调用部署在所述区块链上的智能合约中的修订逻辑,获取所述目标文件的子文件,按序对所述子文件进行组合,并计算所述组合对应的根哈希值;
在所述组合对应的根哈希值与所述文件资产对象中的根哈希值一致的情况下,根据所述事件记录中的修订事件,按序逐次获取所述目标文件的差异信息,并通过差分算法逐一还原得到新目标文件;
通过差分算法计算所述修订文件与所述新目标文件的差异值,并将所述差异值存储到所述区块链的账本中;
调用所述智能合约按照预设数据结构将修订信息写入所述目标文件的文件资产对象中,并在所述事件记录中记录本次修订事件。
在其中一些实施例中,在按预设方向顺序构建事件记录之后,所述方法还包括:
通过所述区块链获取所述目标文件的签名文件,调用所述区块链上部署的智能合约中的签名逻辑,根据所述事件记录中的修订事件和/或签名事件,按序逐次获取所述目标文件的差异信息和/或多余信息,并通过差分算法和/或追加算法逐一还原得到新目标文件;
将所述签名文件和所述新目标文件进行比较得到多余值,并将所述多余值存储到所述区块链的账本中;
调用所述智能合约按照预设数据结构将签名信息写入所述目标文件的文件资产对象中,并所述事件记录中记录本次签名事件。
在其中一些实施例中,在修订事件或签名事件之后,所述方法还包括:
通过所述区块链响应文件读取请求,调用部署在所述区块链上的智能合约中的文件读取逻辑,读取目标文件的子文件,按序对所述子文件进行组合,并计算所述子文件的根哈希值;
根据事件记录中的修订事件和/或签名事件,按序逐次读取目标文件的差异信息和/或多余信息,并通过差分算法和/或追加算法逐一还原得到目标读取文件;
将所述目标读取文件传输给所述读取请求的请求方。
在其中一些实施例中,在按预设方向顺序构建事件记录之后,所述方法还包括:
在所述目标文件的文件信息中构建访问控制列表;
通过所述智能合约获取所述交易发起方的证书,并写入文件资产对象中的所述访问控制列表中;
当所述交易发起方进行授权许可时,通过智能合约获取被授权许可方的证书,并将所述被授权许可方的证书与权限写入所述访问控制列表中,其中,所述权限包括所有者、只读、修订和签名。
在其中一些实施例中,在按预设方向顺序构建事件记录之后,所述方法还包括:
调用所述智能合约更改目标文件的公共所有权记录中的描述,宣传资产出售;
通过所述智能合约同意预设出售条件,并调用所述智能合约中的转移逻辑将资产进行转移。
第二方面,本申请实施例提供了一种基于区块链便携式文件存储的系统,所述系统包括文件存储模块、文件修订模块、文件签名模块、文件读取模块、文件资产转移模块和文件共享与权限模块,其中,文件存储模块包括分割单元、计算单元、存储单元和资产单元;
所述分割单元调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;
所述计算单元调用所述智能合约中的计算逻辑,对若干所述子文件分别进行计算,得到所述子文件的哈希值,按序将若干所述哈希值写入树状结构的叶子节点中,对所述哈希值进行逐级计算得到根哈希值;
所述存储单元调用所述智能合约中的存储逻辑,将所述子文件按序存储到所述区块链的账本中;
所述资产单元调用所述智能合约中的资产逻辑,为所述目标文件发行一枚非同质化代币,所述非同质化代币代表所述目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,所述文件资产对象具有若干不可变的元数据属性,所述元数据属性包括所述非同质化代币和所述子文件的根哈希值,并按预设方向顺序构建事件记录。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的基于区块链便携式文件存储的方法。
相比于相关技术,本申请实施例提供的一种基于区块链便携式文件存储的方法、系统和介质,通过调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;调用智能合约中的计算逻辑,对若干子文件分别进行计算,得到子文件的哈希值,按序将若干哈希值写入树状结构的叶子节点中,对哈希值进行逐级计算得到根哈希值;调用智能合约中的存储逻辑,将子文件按序存储到区块链的账本中;调用智能合约中的资产逻辑,为目标文件发行一枚非同质化代币,该非同质化代币代表目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,文件资产对象具有若干不可变的元数据属性,并按预设方向顺序构建事件记录。解决了区块链中普通文件存储需要耗费大量资源,以及哈希上链存在安全隐患的问题,降低了区块链存储的压力,实现了实现区块链智能合约处理完业务后文件直接存储在区块链账本中,以避免传统中心化存储文件哈希上链等给文件本身带来的风险。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的基于区块链便携式文件存储方法的步骤流程图;
图2是通过默克尔树计算子文件根哈希值的流程示意图;
图3是有向无环图结构的事件记录的具体示意图;
图4是根据本申请实施例的基于区块链便携式文件存储系统的结构框图;
图5是根据本申请具体实施例的区块链存储便携式文件的流程示意图;
图6是根据本申请实施例的电子设备的内部结构示意图。
附图说明:41、文件存储模块;42、文件修订模块;43、文件签名模块;44、文件读取模块;45、文件资产转移模块;46、文件共享与权限模块;51、分割单元;52、计算单元;53、存储单元;54、资产单元。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
经发明人研究发现,以公有链为例,常见的区块链存储,其区块链网络要求全部的矿工维护同一个账本,为了保证其不可篡改,需要每一个矿工留有一个账本的备份在本地。设想,现在全网有1万个矿工,一份区块链电子劳动合同1MB信息,全网消耗资源为10GB。那么,当劳动者对其进行签署后,这份已存储的电子劳动合同信息被更改了,又需要对其进行存储,且至少需要10GB以上资源;接着,用人单位再对前述劳动者签署后的文件进行签署,又还需要10GB以上的资源。综上所述,简单存储一份1MB的电子劳动合同并满足各方签署需求,至少需要30GB的资源。
另外,比较折中的方案是仅在区块链中存放文件哈希值,将需要存储的文件存放在中心化数据库和/或文件存储服务器中。而这样,存储又成为去中心化应用中的一个短板,是网络中脆弱的一环,且极易破坏区块链所构建的可信体系。如,当劳动者与用人单位发生劳务纠纷时,劳动合同所载相关信息可能对用人单位不利时,用人单位其实可以通过一些方式删除储存在前述中心化数据库和/或文件存储服务器中的劳动合同文件,而链上所存放的文件哈希值将无法保障劳动者的权益。
此外,还有一个解决方案,是使用IPFS(InterPlanetary File System)存储文件数据。IPFS是一个分布式文件系统,它的目标是将所有计算设备链接到同一个文件系统,从而成为一个全球统一的存储系统,实现互联网中永久可用、数据可以永久保存的全球文件存储系统。
但IPFS也面临容灾机制缺失的问题。所谓容灾指的时当一处IT系统因意外(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。而IPFS/Filecoin未向存储用户提供可靠的容灾及恢复机制,由存储矿工中心化地处理容灾备份恢复工作,不仅导致存储空间的冗余度以2-3倍的幅度增加。而且,IPFS将大文件分别存放于不同的块中,也不可避免的有一个隐患,即:如果一部分存放文件的节点统统下线不可用了,并且该文件没有备份,那么整个文件都是不可用的,且永久不可恢复。那么,像一份电子合同、保单,甚至一些更高价值但使用频次较低且需要储存3年、5年、10年、30年的文件。IPFS存储基于时间线所带来的潜在储存风险太高。
因此,基于上述方案所存在的问题,本申请提出了一种基于区块链便携式文件存储(Blockchain Portable File Storage,简称BPFS)的方法,所述便携式文件指以页面形式进行组织的文本、图像和图形数据,以及有助于识别、理解和呈现该数据的元数据,其所构成的集合的电子表示形式,这种表示形式可以在纸张上再现或者在不造成重大信息内容丢失的前提下显示。
本申请实施例提供了一种基于区块链便携式文件存储的方法,图1是根据本申请实施例的基于区块链便携式文件存储方法的步骤流程图,该方法包括以下步骤:
步骤S102,调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;
步骤S104,调用智能合约中的计算逻辑,对若干子文件分别进行计算,得到子文件的哈希值,按序将若干哈希值写入树状结构的叶子节点中,对哈希值进行逐级计算得到根哈希值;
具体地,图2是通过默克尔树计算子文件根哈希值的流程示意图,如图2所示,分别计算若干子文件的哈希值,按序将若干哈希值写入树状结构的叶子节点中,对哈希值进行逐级计算得到根哈希值(Root Hash)。
步骤S106,调用智能合约中的存储逻辑,将子文件按序存储到区块链的账本中;
可选地,将目标文件分割后的子文件在区块链上存储为交易发起方的私有数据。
可选地,在存储到账本前先调用部署在区块链上的智能合约中的加密逻辑,采用对称和/或非对称加密方式对子文件进行加密。
可选地,采用子文件的根哈希值和子文件的序号作为状态数据的索引值,以便于快速从“世界状态”获取所存储的子文件交易。
步骤S108,调用智能合约中的资产逻辑,为目标文件发行一枚非同质化代币,该非同质化代币代表目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,该文件资产对象具有若干不可变的元数据属性,其中,元数据属性包括非同质化代币和子文件的根哈希值,并按预设方向顺序构建事件记录。
需要说明的是,非同质化代币(Non-Fungible Token、简称NFT)具有不可分割、不可替代、独一无二等特点。
通过本申请实施例中的步骤S102至步骤S108,解决由于区块大小限制无法存储大文件、区块链中普通文件存储需要耗费大量资源,以及哈希上链存在安全隐患的问题,降低区块链存储的压力,实现区块链智能合约处理完业务后文件直接存储在区块链账本中,以避免传统中心化存储文件哈希上链等给文件本身带来的风险。
在其中一些实施例中,步骤S102,调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件包括:
通过区块链获取目标文件,调用部署在区块链上的智能合约对目标文件进行预设编码;
调用部署在区块链上的智能合约中的分割逻辑,以区块链的区块容量和/或交易容量为标准,对预设编码后的目标文件的字符串进行分割,将分割后的子字符串按顺序存入数组中,获得目标文件对应的子文件。
具体地,通过区块链获取目标文件,调用智能合约对目标文件进行编码,其编码方式通常为Base64编码;
调用智能合约对编码后的字符串进行分割,以区块链的区块和/或交易容量为标准,字符串分割后的子字符串不大于其区块和/或交易的容量,前述分割后的子字符串按照先后顺序有序存入数组中,获得目标文件对应的子文件。
在其中一些实施例中,步骤S108,调用智能合约中的资产逻辑,为目标文件发行一枚非同质化代币,该非同质化代币代表目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,该文件资产对象具有若干不可变的元数据属性,其中,元数据属性包括非同质化代币和子文件的根哈希值,并按预设方向顺序构建事件记录包括:
调用智能合约中的资产逻辑,根据目标文件的文件信息,创建属于目标文件的交易发起方的文件资产;
调用智能合约中的资产逻辑,按预设数据结构构建文件资产对象,将若干不可变的元数据属性存入文件资产对象,并采用有向无环图构建事件记录,其中,元数据属性包括文件资产、目标文件的类型、目标文件的哈希值、子文件的根哈希和交易发起方的证书。
具体地,图3是有向无环图结构的事件记录的具体示意图,如图3所示,目标文件分割成若干子文件,得到对应文件版本[0];经过对目标文件(文件版本[0])进行修订(文件修订内容[0]),得到对应文件版本[1];经过对文件版本[1]进行修订(文件修订内容[1]),得到对应文件版本[2];经过对文件版本[2]进行签名(文件签名内容[0]),得到对应文件版本[3];经过对文件版本[3]进行签名(文件签名内容[1]),得到对应文件版本[4]。
需要说明的是,通过单向无环结构图来记录存储、修订和签名事件,能够实现按序还原文件内容。因为每一块都存储的是子内容,比如对文件进行了两次修订后再签名。那么,首先回去获取原文件的所有子文件,排序还原为原文件后;再获取第一次修订的内容,通过差分计算还原,获得第一次修订的文件;之后再获取第二次修订的内容,并将其与前面第一次修订的文件进行差分计算还原,获得第二次修订的文件;之后,再在后面追加签名内容,从而得到最终的完整文件。
存入目标文件的哈希值可以在使用文件时校验文件的更改信息;存入子文件的根哈希可以确定分割存储的文件块的字符串,是否按照正确的顺序进行排序,从而还原出文件编码后的全量字符串;存入交易发起方的证书,可以在发起交易时通过区块链智能合约获取发起方的证书,与文件信息中的证书进行比对,以确保对方是否有权限操作该文件。
在其中一些实施例中,在步骤S108,按预设方向顺序构建事件记录之后,还包括文件修订方法:
通过区块链获取目标文件的修订文件,调用部署在区块链上的智能合约中的修订逻辑,获取目标文件的子文件,按序对子文件进行组合,并计算组合对应的根哈希值;
在组合对应的根哈希值与文件资产对象中的根哈希值一致的情况下,根据事件记录中的修订事件,按序逐次获取目标文件的差异信息,并通过差分算法逐一还原得到新目标文件;
通过差分算法计算修订文件与新目标文件的差异值,并将差异值存储到区块链的账本中;
调用智能合约按照预设数据结构将修订信息写入目标文件的文件资产对象中,并在事件记录中记录本次修订事件。
具体地,通过区块链获取目标文件的修订文件,调用部署在区块链上的智能合约中的修订逻辑,根据目标文件的索引获取目标文件的子文件,按序对子文件进行组合,通过默克尔树计算其组合所对应的根哈希值;
所计算的根哈希值与文件资产对象中的根哈希值一致时(表示文件正确无子文件缺失或排列错误),通过智能合约对目标文件修订后的修订文件进行Base64编码;
采用差分算法计算修订文件编码和目标文件编码的差异值,并进一步将该差异值写入所述区块链的读写存储的账本中;
可选地,对目标文件进行多次修订时,区块链上部署的智能合约根据有向无环图结构的事件记录对目标文件进行检索,在有文件修订事件的前提下(即目标文件存在有修订文件),先获取目标文件,然后依序获取所记录修订的内容,然后通过差分算法计算出其修订后的修订文件,并与最终修订文件进行比较得出差异值,进一步将差异值存储到区块链的账本中;
调用智能合约按照预设数据结构将修订信息写入目标文件的文件资产对象中,并在有向无环图结构的事件记录中记录本次修订事件。
其中,差分算法的计算方法包括计算子文件的差异内容,而不对全量文件进行差异化计算。
在其中一些实施例中,在步骤S108,按预设方向顺序构建事件记录之后,还包括文件签名方法:
通过区块链获取目标文件的签名文件,调用区块链上部署的智能合约中的签名逻辑,根据事件记录中的修订事件和/或签名事件,按序逐次获取所述目标文件的差异信息和/或多余信息,并通过差分算法和/或追加算法逐一还原得到新目标文件;
将签名文件和新目标文件进行比较得到多余值,并将该多余值存储到区块链的账本中;
调用智能合约按照预设数据结构将签名信息写入目标文件的文件资产对象中,并事件记录中记录本次签名事件。
具体地,交易发起方获取目标文件或其最终修订文件,并进行签名,其中,该签名是指认证用户身份和文件内容有效性的数字签名;
区块链获取已签名的目标文件或其最终修订文件,调用区块链上部署的智能合约中的签名逻辑,对签名文件和前述目标文件(或最终修订文件)进行比较计算,并将前述计算得到的多余值写入区块链的读写存储的账本中;
调用智能合约按照预设数据结构将电子签名信息写入目标文件的文件资产对象中,并在有向无环图结构的事件记录中记录本次签名事件。
可选地,签名文件若采用的是追加签名模式,则通常是把签名后的新信息追加到原版本尾部。
在其中一些实施例中,在修订事件或签名事件之后,还包括文件读取的方法:
通过区块链响应文件读取请求,调用部署在区块链上的智能合约中的文件读取逻辑,读取目标文件的子文件,按序对子文件进行组合,并计算子文件的根哈希值;
根据事件记录中的修订事件和/或签名事件,按序逐次读取目标文件的差异信息和/或多余信息,并通过差分算法和/或追加算法逐一还原得到目标读取文件。
将目标读取文件传输给读取请求的请求方。
具体地,请求方发起读取请求,区块链响应该读取请求,调用部署在区块链上的智能合约中的文件读取逻辑读取子文件内容,并按序对子文件进行组合,通过默克尔树计算器组合所对应的根哈希值;
按有向无环结构图中所记录的修订事件和/或签名事件,逐一读取文件的差异信息和/或多余信息,并通过前述差分算法和/或追加算法对其进行还原,获得最终还原后的新文件后;
将还原后的文件传输给请求方。
在其中一些实施例中,在按预设方向顺序构建事件记录之后,还包括文件共享与权限设置方法:
在目标文件的文件信息中构建访问控制列表;
通过智能合约获取交易发起方的证书,并写入文件资产对象中的访问控制列表中;
当交易发起方进行授权许可时,通过智能合约获取被授权许可方的证书,并将被授权许可方的证书与权限写入访问控制列表中,其中,权限包括所有者、只读、修订和签名。
具体地,在目标文件的文件信息中构建一个访问控制列表;
当交易发起方执行文件存储操作时,通过区块链上部署的智能合约获取前述交易发起方的证书信息,并将其写入前述文件资产对象中的访问控制列表。
当交易发起方进行授权许可时,区块链上部署的智能合约获取被授权许可方的证书,并将被授权许可方的证书与权限写入前述文件资产对象中的访问控制列表,权限包括:
所有者,指所述文件的全部权限拥有者,可以读取、修订或对文件进行签名,并可为其他人授权操作;
只读,指被授权许可只可从所述区块链获取文件,不能进行修订或签名;
修订,指被授权许可方不仅可以从所述区块链获取文件,还可以对文件进行修订;
签名,指被授权许可方不仅可以从所述区块链获取文件,还可以对文件进行签名;
当被授权许可方对文件进行修订或签名时,智能合约获取被授权许可方的证书,并对文件资产对象中的访问控制列表进行检索操作,验证被授权许可方的证书是否匹配前述访问控制列表中的证书,在证书匹配的前提下,再验证其所对应的权限是否与当前操作一致,权限一致时才许可执行后续操作,不一致时拒绝其操作请求。
在其中一些实施例中,在按预设方向顺序构建事件记录之后,还包括文件资产转移方法:
调用智能合约更改目标文件的公共所有权记录中的描述,宣传资产出售;
通过智能合约同意预设出售条件,并调用智能合约中的转移逻辑将资产进行转移。
具体地,资产的所有者调用部署在区块链上的智能合约更改公共所有权记录中的描述,宣传资产出售;
买卖双方通过所述区块链上部署的智能合约同意相同的价格,就转移细节达成一致;
在买卖双方同意相同的价格后,资产所有者调用部署在所述区块链上的智能合约中的转移逻辑将资产转移给买方。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例提供了一种基于区块链便携式文件存储的系统,图4是根据本申请实施例的基于区块链便携式文件存储系统的结构框图,如图4所示,该系统包括文件存储模块41、文件修订模块42、文件签名模块43、文件读取模块44、文件资产转移模块45和文件共享与权限模块46,其中,文件存储模块包括分割单元51、计算单元52、存储单元53和资产单元54;
分割单元51调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;
计算单元52调用智能合约中的计算逻辑,对若干子文件分别进行计算,得到子文件的哈希值,按序将若干哈希值写入树状结构的叶子节点中,对哈希值进行逐级计算得到根哈希值;
存储单元53调用智能合约中的存储逻辑,将子文件按序存储到区块链的账本中;
资产单元54调用所述智能合约中的资产逻辑,为目标文件发行一枚非同质化代币,该非同质化代币代表目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,文件资产对象具有若干不可变的元数据属性,其中,元数据属性包括非同质化代币和子文件的根哈希值,并按预设方向顺序构建事件记录。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
下述具体实施例采用Hyperledger Fabric区块链网络,使用go语言编写智能合约来实现。但本领域技术人员应当清楚,区块链网络的选择和智能合约编程语言的选择并不影响本申请方法的实现,本发明同样适用于其他公有链、联盟链以及私有链,编写智能合约的程序语言包括但不限于go、Java、Node.js和Solidity等语言。
本申请具体实施例提供了一种基于区块链便携式文件存储的方法,图5是根据本申请具体实施例的区块链存储便携式文件的流程示意图,通过智能合约存储便携式文件,具体步骤如下:
步骤一、客户端应用程序或智能合约向区块链发起交易请求,交易请求包含待存储的文件。
步骤二、区块链上部署的智能合约响应目标交易请求,调用部署在区块链上的智能合约中的校验逻辑,对文件进行合法性校验。具体校验包括但不限于检查交易请求中原文件的哈希值所对应的文件是否存在,如已经存在则不允许存储。
步骤三、如果合法性校验通过,进一步调用智能合约中的分割逻辑,具体的分割步骤是:
通过区块链上部署的智能合约对目标文件进行Base64编码,如文件本身就采用Base64编码进行传输的,则只校验其合法性;
根据区块链预置的区块和/或交易的容量,对Base64编码后的文件字符串进行分割,每个分割后的文件子字符串不大于预置的区块和/或交易的容量,并将分割后的文件子字符串按照先后顺序存入字符串数组中,获得目标文件对应的子文件数组;
调用智能合约中的计算逻辑,采用默克尔树对目标文件分割后的子文件进行计算,按序将目标文件分割后的子文件字符串写入树状结构的叶子节点中,计算出叶子节点的哈希值后,再通过对其哈希值的逐级计算获得最终的根哈希值。
步骤四、调用智能合约中的存储逻辑对子文件数组中的子文件字符串进行逐一存储,智能合约调用PutState方法进行写入操作,PutState方法接收根哈希值和其子文件数组对应的下标作为键名,接收子文件数组对应下标的数组内容作为键值,返回本次存储的交易哈希。
可选地,可采用隐私数据模式对子文件进行存储,即智能合约调用PutPrivateData方法对子文件进行存储。
可选地,可采用对称和/或非对称加密方式对子文件进行加密,以保障存储安全。
步骤五、调用智能合约中的资产逻辑为目标文件创建资产。为所述文件发行一枚不可替代的NFT,代表具有特定所有者的文件资产,构建文件资产对象,并设置某些不可变的元数据属性值。其中,资产ID为目标文件的哈希,以保证同一文件不会产生多份资产;所有者组织为智能合约getClientOrgID方法获取的客户端组织ID,并将其权限设置为“所有者”;文件索引为采用默克尔树所计算的根哈希值,检索文件时通过根哈希和子文件数组下标[0]、[1]、[2]、[3]……则可以获取原目标的子文件字符数组,并可根据子文件数组下标按序拼接还原出原目标文件的Base64编码字符串;文件资产中还可写入文件的其他信息,如:文件格式、大小以及文件的公开说明等。并进一步采用有向无环图结构创建文件的存储事件,以及对应子文件存储的有序索引。智能合约采用json.Marshal方法处理后,调用PutState方法进行写入操作。
本申请具体实施例提供了一种基于区块链便携式文件存储的方法,通过智能合约存储便携式文件修订内容,具体步骤如下:
客户端应用程序或智能合约向区块链发起交易请求,交易请求包含已修订的文件以及原文件的哈希值;
区块链上部署的智能合约响应该交易请求,调用部署在区块链上的智能合约中的校验逻辑,对文件进行合法性校验。具体校验包括但不限于交易请求中原文件的哈希值所对应的文件是否存在;已修订的文件是否与原文件存在差异,即确有修订。并进一步检索文件资产中是否有该客户端组织ID,并且该组织权限为“所有者”或“修订”,否则不允许修订该文件;
如果合法性校验通过,进一步调用智能合约中的修订逻辑,获取原文件存储的子文件并拼接还原为原文件。并通过采用有向无环图结构存储的事件进一步检索该文件是否有修订事件,如存在则按序逐一还原成最终版本;如果存在签名事件,则不允许对已签名文件进行修订,否则会破坏文件签名的有效性;
调用智能合约中的差分算法,对已修订的文件进行Base64编码后计算其与所存储文件还原后的最终版本的差异值,并调用PutState将其写入区块。
可选地,智能合约调用PutPrivateData将其写入私有数据中。
智能合约将本次修订事件按既定数据结构写入文件资产对象中有向无环结构图中。
本申请具体实施例提供了一种基于区块链便携式文件存储的方法,通过智能合约存储便携式文件电子签名内容,具体步骤如下:
客户端应用程序或智能合约向区块链发起交易请求,交易请求包含已签名的文件以及原文件的哈希值。
区块链上部署的智能合约响应目标交易请求,调用部署在区块链上的智能合约中的校验逻辑,对文件进行合法性校验。具体校验包括但不限于交易请求中原文件的哈希值所对应的文件是否存在;已签名的文件是否与原文件存在差异,即确有签名。并进一步检索文件资产中是否有该客户端组织ID,并且该组织权限为“所有者”或“签名”,否则不允许对该文件签名存储。
如果合法性校验通过,进一步调用智能合约中的签名逻辑,获取原文件存储的子文件并拼接还原为原文件。并通过采用有向无环图结构存储的事件进一步检索该文件是否有修订和/或签名事件,如存在则按序逐一还原成最终版本。
调用智能合约对已签名的文件进行Base64编码,后比较计算其与所存储文件还原后的最终版本的多余值,并调用PutState将该多余值写入区块。文件签名一般采用追加签名模式,否则可能破坏文件完整性。
可选地,智能合约调用PutPrivateData将其写入私有数据中。
智能合约将本次签名事件按既定数据结构写入文件资产对象中有向无环结构图中。
本申请具体实施例提供了一种基于区块链便携式文件存储的方法,通过智能合约读取存储在区块链中的便携式文件,具体步骤如下:
区块链上部署的智能合约响应文件读取请求,通过GetMSPID方法获取客户端组织ID,并进一步检索文件资产中所有者组织是否存在该客户端ID,如不存在则不允许读取该文件。
读取权限许可后,智能合约则通过文件索引获取所有被存储的子文件,并通过默克尔树计算所获取子文件的根哈希值,并进一步校验其根哈希值与文件资产中的根哈希值是否一致,以确定文件是否按序还原。
如所计算和所存储的根哈希值二者一致,则根据有向无环图结构所存储的修订事件,进一步读取修订的内容,调用智能合约中的差分算法,对文件修订内容逐一进行还原,获得最终的修订内容。
根据有向无环图结构所存储的签名事件,进一步读取签名的内容,并依次还原到文件内容的尾部,获得最终的签名内容。
将最终文件内容返回给交易请求方。
本申请具体实施例提供了一种基于区块链便携式文件存储的方法,通过智能合约转移便携式文件资产,具体步骤如下:
文件资产当前所有者通过调用区块链上部署的智能合约更新资产公共描述。
智能合约将卖方的要价添加到卖方的隐私私人数据集合中。
智能合约将买方的出价添加到买方的隐私私人数据集合中。
智能合约允许买方根据所有者的隐私私有数据集合验证资产属性。
当文件资产当前所有者调用智能合约检查转移条件,即检查当前客户组织是否拥有资产并且双方已就价格达成一致,然后将资产状态转移给买方。
智能合约进一步为转移的文件资产执行公共和私有状态更新。
本申请具体实施例提供了一种基于区块链便携式文件存储的方法,通过智能合约设置便携式文件共享与权限,具体步骤如下:
当前客户端组织向区块链发起文件存储交易时,区块链上部署的智能合约通过GetMSPID方法获取客户组织ID,并进一步调用PutState方法将客户组织ID写入该文件资产的访问控制列表,对应权限为“所有者”。
文件资产访问控制列表中权限为“所有者”的客户组织,可以进一步的调用智能合约将其他客户组织ID写入文件资产访问控制列表,并可分别设置权限为“所有者”、“只读”、“签名”和“修订”等。通过智能合约调用PutState方法更新文件资产。
结合上述实施例中的基于区块链便携式文件存储的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于区块链便携式文件存储的方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链便携式文件存储的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图6是根据本申请实施例的电子设备的内部结构示意图,如图6所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图6所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种基于区块链便携式文件存储的方法,数据库用于存储数据。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于区块链便携式文件存储的方法,其特征在于,所述方法包括:
调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;
调用所述智能合约中的计算逻辑,对若干所述子文件分别进行计算,得到所述子文件的哈希值,按序将若干所述哈希值写入树状结构的叶子节点中,对所述哈希值进行逐级计算得到根哈希值;
调用所述智能合约中的存储逻辑,将所述子文件按序存储到所述区块链的账本中;
调用所述智能合约中的资产逻辑,为所述目标文件发行一枚非同质化代币,所述非同质化代币代表所述目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,所述文件资产对象具有若干不可变的元数据属性,所述元数据属性包括所述非同质化代币和所述子文件的根哈希值,并按预设方向顺序构建事件记录。
2.根据权利要求1所述的方法,其特征在于,调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件包括:
通过区块链获取目标文件,调用部署在所述区块链上的智能合约对所述目标文件进行预设编码;
调用部署在区块链上的智能合约中的分割逻辑,以所述区块链的区块容量和/或交易容量为标准,对所述预设编码后的目标文件的字符串进行分割,将所述分割后的子字符串按顺序存入数组中,获得所述目标文件对应的子文件。
3.根据权利要求1所述的方法,其特征在于,调用所述智能合约中的资产逻辑,为所述目标文件发行一枚非同质化代币,所述非同质化代币代表所述目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,所述文件资产对象具有若干不可变的元数据属性,所述元数据属性包括所述非同质化代币和所述子文件的根哈希值,并按预设方向顺序构建事件记录包括:
调用所述智能合约中的资产逻辑,根据所述目标文件的文件信息,创建属于所述目标文件的交易发起方的文件资产;
调用所述智能合约中的资产逻辑,按预设数据结构构建文件资产对象,将若干不可变的元数据属性存入所述文件资产对象,并采用有向无环图构建事件记录,其中,所述元数据属性包括所述文件资产、所述目标文件的类型、所述目标文件的哈希值、所述子文件的根哈希和所述交易发起方的证书。
4.根据权利要求1所述的方法,其特征在于,在按预设方向顺序构建事件记录之后,所述方法还包括:
通过所述区块链获取所述目标文件的修订文件,调用部署在所述区块链上的智能合约中的修订逻辑,获取所述目标文件的子文件,按序对所述子文件进行组合,并计算所述组合对应的根哈希值;
在所述组合对应的根哈希值与所述文件资产对象中的根哈希值一致的情况下,根据所述事件记录中的修订事件,按序逐次获取所述目标文件的差异信息,并通过差分算法逐一还原得到新目标文件;
通过差分算法计算所述修订文件与所述新目标文件的差异值,并将所述差异值存储到所述区块链的账本中;
调用所述智能合约按照预设数据结构将修订信息写入所述目标文件的文件资产对象中,并在所述事件记录中记录本次修订事件。
5.根据权利要求1所述的方法,其特征在于,在按预设方向顺序构建事件记录之后,所述方法还包括:
通过所述区块链获取所述目标文件的签名文件,调用所述区块链上部署的智能合约中的签名逻辑,根据所述事件记录中的修订事件和/或签名事件,按序逐次获取所述目标文件的差异信息和/或多余信息,并通过差分算法和/或追加算法逐一还原得到新目标文件;
将所述签名文件和所述新目标文件进行比较得到多余值,并将所述多余值存储到所述区块链的账本中;
调用所述智能合约按照预设数据结构将签名信息写入所述目标文件的文件资产对象中,并所述事件记录中记录本次签名事件。
6.根据权利要求4或5所述的方法,其特征在于,在修订事件或签名事件之后,所述方法还包括:
通过所述区块链响应文件读取请求,调用部署在所述区块链上的智能合约中的文件读取逻辑,读取目标文件的子文件,按序对所述子文件进行组合,并计算所述子文件的根哈希值;
根据事件记录中的修订事件和/或签名事件,按序逐次读取目标文件的差异信息和/或多余信息,并通过差分算法和/或追加算法逐一还原得到目标读取文件;
将所述目标读取文件传输给所述读取请求的请求方。
7.根据权利要求3所述的方法,其特征在于,在按预设方向顺序构建事件记录之后,所述方法还包括:
在所述目标文件的文件信息中构建访问控制列表;
通过所述智能合约获取所述交易发起方的证书,并写入文件资产对象中的所述访问控制列表中;
当所述交易发起方进行授权许可时,通过智能合约获取被授权许可方的证书,并将所述被授权许可方的证书与权限写入所述访问控制列表中,其中,所述权限包括所有者、只读、修订和签名。
8.根据权利要求1所述的方法,其特征在于,在按预设方向顺序构建事件记录之后,所述方法还包括:
调用所述智能合约更改目标文件的公共所有权记录中的描述,宣传资产出售;
通过所述智能合约同意预设出售条件,并调用所述智能合约中的转移逻辑将资产进行转移。
9.一种基于区块链便携式文件存储的系统,其特征在于,所述系统包括文件存储模块、文件修订模块、文件签名模块、文件读取模块、文件资产转移模块和文件共享与权限模块,其中,文件存储模块包括分割单元、计算单元、存储单元和资产单元;
所述分割单元调用部署在区块链上的智能合约中的分割逻辑,根据预设存储容量对目标文件进行分割,得到对应的若干子文件;
所述计算单元调用所述智能合约中的计算逻辑,对若干所述子文件分别进行计算,得到所述子文件的哈希值,按序将若干所述哈希值写入树状结构的叶子节点中,对所述哈希值进行逐级计算得到根哈希值;
所述存储单元调用所述智能合约中的存储逻辑,将所述子文件按序存储到所述区块链的账本中;
所述资产单元调用所述智能合约中的资产逻辑,为所述目标文件发行一枚非同质化代币,所述非同质化代币代表所述目标文件的交易发起方的文件资产,按预设数据结构构建文件资产对象,所述文件资产对象具有若干不可变的元数据属性,所述元数据属性包括所述非同质化代币和所述子文件的根哈希值,并按预设方向顺序构建事件记录。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8中任一项所述的基于区块链便携式文件存储的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111020657.0A CN113901005A (zh) | 2021-09-01 | 2021-09-01 | 一种基于区块链便携式文件存储的方法、系统和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111020657.0A CN113901005A (zh) | 2021-09-01 | 2021-09-01 | 一种基于区块链便携式文件存储的方法、系统和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113901005A true CN113901005A (zh) | 2022-01-07 |
Family
ID=79188290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111020657.0A Pending CN113901005A (zh) | 2021-09-01 | 2021-09-01 | 一种基于区块链便携式文件存储的方法、系统和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901005A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114499894A (zh) * | 2022-04-01 | 2022-05-13 | 南京金宁汇科技有限公司 | 区块链网络中的文件存储、读取方法及存储读取系统 |
CN114564446A (zh) * | 2022-03-01 | 2022-05-31 | 清华大学 | 一种文件存储的方法、装置、系统及存储介质 |
CN114756627A (zh) * | 2022-06-10 | 2022-07-15 | 杭州链城数字科技有限公司 | 基于联盟链的数字资产处理方法、系统和存储介质 |
CN116185878A (zh) * | 2023-04-23 | 2023-05-30 | 深圳市一航网络信息技术有限公司 | 基于区块链技术的软件认证测试技术平台 |
CN116502272A (zh) * | 2023-06-21 | 2023-07-28 | 北京探索者软件股份有限公司 | 计算机辅助设计cad元文件的保存方法和装置 |
CN117710112A (zh) * | 2024-02-02 | 2024-03-15 | 湖南马兰数字教育科技有限公司 | 一种基于区块链的nft生成方法及系统 |
-
2021
- 2021-09-01 CN CN202111020657.0A patent/CN113901005A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564446A (zh) * | 2022-03-01 | 2022-05-31 | 清华大学 | 一种文件存储的方法、装置、系统及存储介质 |
CN114564446B (zh) * | 2022-03-01 | 2022-12-27 | 清华大学 | 一种文件存储的方法、装置、系统及存储介质 |
CN114499894A (zh) * | 2022-04-01 | 2022-05-13 | 南京金宁汇科技有限公司 | 区块链网络中的文件存储、读取方法及存储读取系统 |
CN114756627A (zh) * | 2022-06-10 | 2022-07-15 | 杭州链城数字科技有限公司 | 基于联盟链的数字资产处理方法、系统和存储介质 |
CN116185878A (zh) * | 2023-04-23 | 2023-05-30 | 深圳市一航网络信息技术有限公司 | 基于区块链技术的软件认证测试技术平台 |
CN116502272A (zh) * | 2023-06-21 | 2023-07-28 | 北京探索者软件股份有限公司 | 计算机辅助设计cad元文件的保存方法和装置 |
CN116502272B (zh) * | 2023-06-21 | 2023-09-08 | 北京探索者软件股份有限公司 | 计算机辅助设计cad元文件的保存方法和装置 |
CN117710112A (zh) * | 2024-02-02 | 2024-03-15 | 湖南马兰数字教育科技有限公司 | 一种基于区块链的nft生成方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113901005A (zh) | 一种基于区块链便携式文件存储的方法、系统和介质 | |
US10997023B1 (en) | Processing a request for encoded data in a storage network | |
US11895223B2 (en) | Cross-chain validation | |
US11552795B2 (en) | Key recovery | |
CN111488393B (zh) | 虚拟区块链 | |
US10671308B2 (en) | Private and fault-tolerant storage of segmented data | |
US20220222364A1 (en) | Non-Fungible Token Content Items, Access Controls, and Discovery | |
EP3560143B1 (en) | Data isolation in a blockchain network | |
EP3607471B1 (en) | Management of co-ownership database system | |
KR20200011435A (ko) | 파라미터화 가능 스마트 계약 | |
CN111538786B (zh) | 区块链数据脱敏与溯源的存储方法与装置 | |
CN109508564B (zh) | 一种基于区块链的数字资产存储系统和方法 | |
US20200234293A1 (en) | Method and appratus for blockchains with modifiable recorded transactions | |
Yadav et al. | KYC optimization using blockchain smart contract technology | |
CN113508570B (zh) | 在区块链中节点之间共享及验证区块及电子文档的方法 | |
CN113254424B (zh) | 数据服务迁移方法、装置及设备 | |
US20220083507A1 (en) | Trust chain for official data and documents | |
US10169082B2 (en) | Accessing data in accordance with an execution deadline | |
US20230205761A1 (en) | Method of creating a distributed ledger for a blockchain via encapsulation of off-chain data | |
GB2565932B (en) | Storing data in dispersed storage network with consistency | |
US10091298B2 (en) | Enhancing performance of data storage in a dispersed storage network | |
US10379961B2 (en) | Ensuring metadata and index consistency using write intents | |
WO2022042602A1 (en) | Trustless operations for blockchain networks | |
KR102598227B1 (ko) | 변경 불가 기능을 제공하는 분산 스토리지와 블록체인을 이용하여 대용량 콘텐츠의 무결성을 보장하는 데이터 관리 방법 | |
US20240135376A1 (en) | Blockchain-based source identifier |
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 |