基于纠错编码存储共享的区块链数据制造技术

技术编号:24019733 阅读:35 留言:0更新日期:2020-05-02 04:50
本文公开了用于通信和共享区块链数据的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:区块链节点确定与在区块链上的当前区块之前创建的一个或多个区块相关联的历史状态数据;对所述历史状态数据执行纠错编码以生成一个或多个编码的历史状态数据;基于一个或多个预定规则将所述编码的历史状态数据划分为多个数据集;基于所述一个或多个预定规则从所述多个数据集中选择一个或多个数据集;对所述一个或多个数据集进行哈希处理以生成与所述一个或多个数据集相对应的一个或多个哈希值;存储所述一个或多个哈希值;以及删除所述一个或多个数据集。

Block chain data sharing based on error correction coding

【技术实现步骤摘要】
【国外来华专利技术】基于纠错编码存储共享的区块链数据
本文涉及基于纠错编码存储共享的区块链数据。
技术介绍
分布式账本系统(DLS),也可称为共识网络和/或区块链网络,使得参与的实体能够安全且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络类型的示例可以包括公共区块链网络、私有区块链网络和联盟区块链网络。为选定的实体群组提供联盟区块链网络,所述实体控制共识处理,并且所述联盟区块链网络包括访问控制层。基于区块链的程序可以由诸如以太坊的分布式计算平台执行。例如,以太坊虚拟机(EVM)为以太坊中的智能合约提供运行环境。以太坊区块链可以被视为基于交易的状态机。以太坊中的状态数据可以集合成一个被称为世界状态的全局共享状态。世界状态包括以太坊账户地址和账户状态之间的映射。世界状态可以存储在诸如默克尔帕特里夏树(MerklePatriciatree,MPT)的数据结构中。除了状态数据,区块链网络还可以存储其他类型的数据,例如区块数据和索引数据。区块数据可以包括区块头和区块体。区块头可以包括特定区块的身份信息,并且区块体可以包括用该区块确认的交易。当越来越多的交易进入区块链时,状态数据和区块数据的大小可能会变得非常大。在一些DLS中,即使不频繁访问某些旧的区块数据或状态数据,每个节点也会存储整个区块链副本,这会占用大量存储空间。在一些DLS中,一些共享节点存储整个区块链副本,并与其他可能导致“数据不对等”的区块链节点共享区块链数据。因此,期望在保持数据对等性和数据处理效率的同时减少存储在DLS中的节点上的数据量。
技术实现思路
本文描述了用于通信和共享区块链数据的技术。这些技术一般涉及区块链节点确定与在区块链上的当前区块之前创建的一个或多个区块相关联的历史状态数据;区块链节点对历史状态数据执行纠错编码以生成一个或多个编码的历史状态数据;区块链节点基于一个或多个预定规则将编码的历史状态数据划分为多个数据集;区块链节点基于一个或多个预定规则从多个数据集中选择一个或多个数据集;区块链节点对一个或多个数据集进行哈希处理以生成与一个或多个数据集相对应的一个或多个哈希值;区块链节点存储一个或多个哈希值;以及区块链节点删除一个或多个数据集。本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。本文还提供了用于实施本文提供的所述方法的系统。该系统包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将导致所述一个或多个处理器按照本文提供的方法的实施例执行操作。应了解,依据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。以下在附图和描述中阐述了本文的一个或多个实施方式的细节。根据说明书和附图以及权利要求,本文的其他特征和优点将显现。附图说明图1描绘了可用于执行本文实施例的环境的示例。图2描绘了根据本文实施例的架构的示例。图3描绘了根据本文实施例的固定深度默克尔树(fixeddepthMerkletree,FDMT)数据结构的示例。图4描绘了根据本文实施例的用于存储区块链数据的数据库的示例。图5描绘了根据本文实施例的状态数据编码和哈希处理的示例。图6描绘了根据本文实施例的数据存储布置的示例。图7描绘了可以根据本文实施例执行的处理的示例。图8描绘了根据本文实施例的装置的模块的示例。在各个附图中,相同的附图标记和名称表示相同的元件。具体实施方式本文涉及用于通信和共享区块链数据的技术。这些技术一般涉及区块链节点确定与在区块链上的当前区块之前创建的一个或多个区块相关联的历史状态数据;区块链节点对历史状态数据执行纠错编码以生成一个或多个编码的历史状态数据;区块链节点基于一个或多个预定规则将编码的历史状态数据划分为多个数据集;区块链节点基于一个或多个预定规则从多个数据集中选择一个或多个数据集;区块链节点对一个或多个数据集进行哈希处理以生成与一个或多个数据集相对应的一个或多个哈希值;区块链节点存储一个或多个哈希值;以及区块链节点删除一个或多个数据集。本文中描述的技术产生若干技术效果。例如,主题的实施例可以允许节省区块链节点的存储资源,而不显著地降低计算效率。由于历史状态树中的大部分数据是“冷”数据,因此通过仅保存ECC编码的历史状态数据的一部分并与其他区块链节点共享剩余编码数据,可以减少整个区块链网络的存储空间消耗。在一些实施例中,代替存储整个状态历史树,区块链节点可以存储ECC编码的历史状态数据的所选部分和与剩余的编码历史状态数据相对应的哈希值。为了从其他区块链节点检索未保存的区块数据,区块链节点可以将对应的哈希值发送到存储编码历史状态数据的其他区块链节点。由于哈希值是不可逆的,因此,通过将对应的哈希值与本地存储的副本进行比较,区块链节点可以轻松地验证接收到的数据是否真实。这样,可以确保数据安全性,并且可以轻松识别和报告故障节点。即使区块链节点从故障的区块链节点接收到非真实数据,只要非真实数据的百分比小于或等于ECC允许的错误位或丢失位的最大比例,该历史状态数据也可以被恢复。为了提供本文的实施例的进一步的背景,并且如上所述,分布式账本系统(DLS),也可以被称为共识网络(例如,由点对点节点组成)和区块链网络,使得参与实体能够安全地并且不可篡改地进行交易,并存储数据。尽管术语区块链通常与特定网络和/或用例相关联,但是在不参考任何特定用例的情况下,本文中使用的区块链通常是指DLS。区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographichash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编码至默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据经哈希处理,并且在该树的每个分支中的所有哈希值在该分支的根处级联(concatenated)。沿着该树持续该处理一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。通过确定哈希值是否与该树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。在本文中参考联盟区块链网络进一步详细描述本文的实施例。本文档来自技高网
...

【技术保护点】
1.一种计算机实现的用于存储区块链数据的方法,所述方法包括:/n区块链节点确定与在区块链上的当前区块之前创建的一个或多个区块相关联的历史状态数据;/n所述区块链节点对所述历史状态数据执行纠错编码以生成一个或多个编码的历史状态数据;/n所述区块链节点基于一个或多个预定规则将所述编码的历史状态数据划分为多个数据集;/n所述区块链节点基于所述一个或多个预定规则从所述多个数据集中选择一个或多个数据集;/n所述区块链节点对所述一个或多个数据集进行哈希处理以生成与所述一个或多个数据集相对应的一个或多个哈希值;/n所述区块链节点存储所述一个或多个哈希值;以及/n所述区块链节点删除所述一个或多个数据集。/n

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的用于存储区块链数据的方法,所述方法包括:
区块链节点确定与在区块链上的当前区块之前创建的一个或多个区块相关联的历史状态数据;
所述区块链节点对所述历史状态数据执行纠错编码以生成一个或多个编码的历史状态数据;
所述区块链节点基于一个或多个预定规则将所述编码的历史状态数据划分为多个数据集;
所述区块链节点基于所述一个或多个预定规则从所述多个数据集中选择一个或多个数据集;
所述区块链节点对所述一个或多个数据集进行哈希处理以生成与所述一个或多个数据集相对应的一个或多个哈希值;
所述区块链节点存储所述一个或多个哈希值;以及
所述区块链节点删除所述一个或多个数据集。


2.如前述任一项权利要求所述的方法,其中,当所述区块链节点的计算资源的利用率小于或等于预定值,或者所述区块链节点的存储空间的使用率大于或等于预定百分比时,执行所述纠错编码。


3.如前述任一项权利要求所述的方法,其中,所述纠错编码是通过将冗余位添加到所述一个或多个区块来执行的。


4.如前述任一项权利要求所述的方法,其中,所述纠错编码是纠删编码。


5.如前述任一项权利要求所述的方法,其中,所述区块链节点是第一区块链节点,并且所述方法还包括:
在删除所述一个或多个数据集之后,确定所述历史状态数据与所述第一区块链节点删除的所述一个或多个数据集中的至少一个数据集相关联;
基于所述一个或多个预定规则识别存储所述一个或多个数据集中的至少一个数据集的第二区块链节点以及与所述一个或多个数据集中的所述至少一个数据集相对应的至少一个哈希值;以及
将所述至少一个哈希值发送至所述第二区块链节点以检索所述一个或多个数据集中的所述至少一个数据集。


6.如权利要求5所述的方法,其中,所述至少一个哈希值是至少一个第一哈希值,所述方法还包括:
响应于发送所述至少一个第一哈希值,从所述第二区块链节点接收...

【专利技术属性】
技术研发人员:卓海振
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1