区块链分布式存储方法、数据读取方法、设备和存储介质技术

技术编号:21971388 阅读:13 留言:0更新日期:2019-08-28 01:27
本发明专利技术提供一种区块链分布式存储方法、数据读取方法、设备和存储介质,该存储方法包括:创建并广播、打包分布式存储请求交易,通过分布式存储管理合约执行分布式存储请求交易以将当前节点配置到第一存储组中;其中,第一存储组的索引序号为第一序号;监测若干区块的区块数据是否满足分布式存储条件:是,则将满足条件的若干区块的区块数据切分为若干数据段;以及,根据预配置的编码方式将每个数据段分别编码成第一数量个分片,并为第一数量个分片配置索引;存储每个数据段中索引序号为第一序号的分片,删除所切分的区块、各数据段和其余分片。本发明专利技术实现了适用于公链场景的分布式存储方案,并进一步大幅提升了区块链分布式存储的容错性和稳定性。

Block Chain Distributed Storage Method, Data Reading Method, Equipment and Storage Media

【技术实现步骤摘要】
区块链分布式存储方法、数据读取方法、设备和存储介质
本申请涉及区块链
,具体涉及一种区块链分布式存储方法、数据读取方法、设备和存储介质。
技术介绍
区块链中的每个节点都进行同样的计算,并且最终将相同的结果保存在本地,在包含有几千甚至几万个节点的区块链系统中,数据高度冗余,尽管每个节点都容易从其他对等节点同步需要的数据,但是对于整个区块链系统而言,所消耗的存储资源存在高度冗余的问题。基于上述问题,当前存在一些在某些场景下解决该问题的方案,例如,在联盟链和私有链的少量节点的场景下,基于纠删码实现区块链分布式存储的方案,但该方案所采用的纠删码编码算法需要基于提前预设好的共识节点总数和容错节点数,不适用于共识节点众多的公链场景。进一步地,基于区块链的去中心化机制,在公链场景中进行分布式存储,还面临在大量节点关闭的场景下,可能导致无法还原并读取数据的问题。
技术实现思路
鉴于现有技术中的上述缺陷或不足,期望提供一种适用于在公链场景进行分布式存储的区块链分布式存储方法、数据读取方法、设备和存储介质,并进一步期望提升区块链系统在大量节点关闭的场景下稳定保障分布式存储服务的可靠性。第一方面,本专利技术提供一种区块链分布式存储方法,区块链上配置有分布式存储管理合约,该分布式存储管理合约用于将请求进行分布式存储的节点均匀配置到第一数量个存储组中,该第一数量个存储组配置有索引,该方法包括:创建并广播、打包分布式存储请求交易,通过分布式存储管理合约执行分布式存储请求交易以将当前节点配置到第一存储组中;其中,第一存储组的索引序号为第一序号;监测若干区块的区块数据是否满足分布式存储条件:是,则将满足条件的若干区块的区块数据切分为若干数据段;以及,根据预配置的编码方式将每个数据段分别编码成第一数量个分片,并为第一数量个分片配置索引;存储每个数据段中索引序号为第一序号的分片,删除所切分的区块、各数据段和其余分片。进一步优选地,上述编码方式为里德-所罗门编码(Reed-SolomonCodes,简称RS编码),第一数量为原始数据分片的第二数量与奇偶校验数据分片的第三数量之和。第二方面,本专利技术提供一种数据读取方法,当前节点存有根据如上述第一方面的区块链分布式存储方法所存储的索引序号为第二序号的分片,该数据读取方法包括:响应于读取第二区块的区块数据的读取请求,判断第二区块是否已进行分布式存储:是,则分别从索引序号不是第二序号的各存储组中随机选择一个节点以分别向所选择的各节点下载分片;以及,根据所下载的各分片和所存储的分片进行解码以获取第二区块的区块数据。第三方面,本专利技术还提供另一种数据读取方法,当前节点存有根据如上述第一方面的区块链分布式存储方法的RS编码优选方案所存储的索引序号为第三序号的分片,该数据读取方法包括:响应于读取第三区块的区块数据的读取请求,判断第三区块是否已进行分布式存储:是,则从索引序号不是第三序号的各存储组中随机选取第四数量个存储组,并分别从第四数量个存储组中随机选择一个节点以分别向所选择的各节点下载分片;其中,第四数量为第二数量减1;以及,根据所下载的各分片和所存储的分片进行解码以获取第三区块的区块数据。第四方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的区块链分布式存储方法。第五方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的区块链分布式存储方法。本专利技术诸多实施例提供的区块链分布式存储方法、数据读取方法、设备和存储介质通过在区块链上配置分布式存储管理合约,将参与分布式存储的节点均匀配置在多个存储组中,由上述参与分布式存储的节点分别将区块数据分片,并仅存储对应于当前节点所在存储组的分片,从而实现了适用于公链场景的分布式存储方案;本专利技术一些实施例提供的区块链分布式存储方法、数据读取方法、设备和存储介质进一步通过限定仅对超过一定区块深度的区块数据进行分布式存储,进一步提升了系统的存储效率;本专利技术一些实施例提供的区块链分布式存储方法、数据读取方法、设备和存储介质进一步通过采用里德-所罗门编码进行数据分片的编码,从而保障了任一节点只需随机选择原始数据分片减一个存储组下载分片,即可完成解码以还原分布存储的区块数据,保障了区块链系统在大量节点关闭的场景下可以稳定提供分布式存储服务,大幅提升了区块链分布式存储的容错性和稳定性。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本专利技术一实施例提供的一种区块链分布式存储方法的流程图。图2为图1所示方法中步骤S13的一种实施方式的流程图。图3为本专利技术一实施例提供的一种数据读取方法的流程图。图4为本专利技术另一实施例提供的另一种数据读取方法的流程图。图5为本专利技术一实施例提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1为本专利技术一实施例提供的一种区块链分布式存储方法的流程图。如图1所示,在本实施例中,本专利技术提供一种区块链分布式存储方法,在区块链上配置有分布式存储管理合约DistributedStorageManageContract(以下简称DSM合约),该DSM合约用于将请求进行分布式存储的节点均匀配置到第一数量个存储组中,该第一数量个存储组配置有索引,该方法包括:S11:创建并广播、打包分布式存储请求交易,通过分布式存储管理合约执行分布式存储请求交易以将当前节点配置到第一存储组中;其中,第一存储组的索引序号为第一序号;S13:监测若干区块的区块数据是否满足分布式存储条件:是,则执行步骤S15:将满足条件的若干区块的区块数据切分为若干数据段;以及,S17:根据预配置的编码方式将每个数据段分别编码成第一数量个分片,并为第一数量个分片配置索引;S19:存储每个数据段中索引序号为第一序号的分片,删除所切分的区块、各数据段和其余分片。例如,在拥有3500节点的某公链中,有1200个节点先后请求进行分布式存储,DSM合约将该1200个节点均匀配置到30个存储组中,该30个存储组配置有索引0-29,即存储组0-存储组29。当节点A请求进行分布式存储时,节点A执行步骤S11,创建分布式存储请求交易tx1,广播、打包到区块中,通过DSM合约执行tx1,从而将节点A分配到存储组8中。分配到存储组8中后,节点A执行步骤S13,根据预配置的分布式存储条件监测各区块的区块数据是否满足条件。图2为图1所示方法中步骤S13的一种实施方式的流程图。如图2所示,在本实施例中,分布式存储条件配置为对共识深度超过第一阈值(本实施例中配置为128)、数据量超过第二阈值(本实施例中配置为40M)的若干区块进行分片,步骤S13包括:S131:当第一区块的共识深度超过第一阈值时,判断第一区块的区块数据的本文档来自技高网...

【技术保护点】
1.一种区块链分布式存储方法,其特征在于,区块链上配置有分布式存储管理合约,所述分布式存储管理合约用于将请求进行分布式存储的节点均匀配置到第一数量个存储组中,所述第一数量个存储组配置有索引,所述方法包括:创建并广播、打包分布式存储请求交易,通过所述分布式存储管理合约执行所述分布式存储请求交易以将当前节点配置到第一存储组中;其中,所述第一存储组的索引序号为第一序号;监测若干区块的区块数据是否满足分布式存储条件:是,则将满足条件的若干区块的区块数据切分为若干数据段;以及,根据预配置的编码方式将每个数据段分别编码成所述第一数量个分片,并为所述第一数量个分片配置所述索引;存储每个数据段中索引序号为所述第一序号的分片,删除所切分的区块、各所述数据段和其余分片。

【技术特征摘要】
1.一种区块链分布式存储方法,其特征在于,区块链上配置有分布式存储管理合约,所述分布式存储管理合约用于将请求进行分布式存储的节点均匀配置到第一数量个存储组中,所述第一数量个存储组配置有索引,所述方法包括:创建并广播、打包分布式存储请求交易,通过所述分布式存储管理合约执行所述分布式存储请求交易以将当前节点配置到第一存储组中;其中,所述第一存储组的索引序号为第一序号;监测若干区块的区块数据是否满足分布式存储条件:是,则将满足条件的若干区块的区块数据切分为若干数据段;以及,根据预配置的编码方式将每个数据段分别编码成所述第一数量个分片,并为所述第一数量个分片配置所述索引;存储每个数据段中索引序号为所述第一序号的分片,删除所切分的区块、各所述数据段和其余分片。2.根据权利要求1所述的方法,其特征在于,所述监测若干区块的区块数据是否满足分布式存储条件包括:当第一区块的共识深度超过第一阈值时,判断所述第一区块的区块数据的数据量是否超过第二阈值:是,则判定为满足所述分布式存储条件;否,则在下一区块的共识深度超过所述第一阈值时,判断未满足所述分布式存储条件的区块与下一区块的总数据量是否超过所述第二阈值:否,则循环当前步骤;是,则判定为满足所述分布式存储条件。3.根据权利要求2所述的方法,其特征在于,所述第一阈值配置为128,所述第二阈值配置为40M。4.根据权利要求1-3任一项所述的方法,其特征在于,所述编码方式为里德-所罗门编码(Reed-SolomonCodes,简称RS编码),所述第一数量为原始数据分片的第二数量与...

【专利技术属性】
技术研发人员:何正军王志文吴思进
申请(专利权)人:杭州复杂美科技有限公司
类型:发明
国别省市:浙江,33

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

1