基于纠错码的动态区块链数据存储制造技术

技术编号:24808059 阅读:26 留言:0更新日期:2020-07-07 22:43
本文公开了用于存储区块链数据的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:接收用于对区块链的一个或多个区块执行纠错编码(ECC)的请求;基于从区块链网络的至少一个区块链节点接收的区块链数据,获得所述一个或多个区块;以及对所述一个或多个区块执行ECC以生成一个或多个编码区块,其中,对所述一个或多个编码区块的编码率等于所述区块链网络所需的最小诚实区块链节点数和所述区块链网络的区块链节点的总数。

【技术实现步骤摘要】
【国外来华专利技术】基于纠错码的动态区块链数据存储
本文涉及基于纠错码的区块链数据存储。
技术介绍
分布式账本系统(DLS),也可称为共识网络和/或区块链网络,使参与的实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,分布式账本系统通常被称为区块链网络。区块链网络的示例类型可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选定的实体组群提供,该实体组群控制共识过程,并且所述联盟区块链网络包括访问控制层。基于区块链的程序可以由分布式计算平台执行。例如,分布式计算平台可以包括提供用于执行智能合约的运行时环境的虚拟机。区块链计算平台可以被视为基于交易的状态机。平台中的状态数据可以集合成称为世界状态的全局共享状态。世界状态包括账号地址和账号状态之间的映射。世界状态可以被存储在诸如默克尔帕特里夏树(MPT)的数据结构中。除了状态数据,区块链网络还可以存储其他类型的数据,例如区块数据和索引数据。区块数据可以包括区块头和区块体。区块头可以包括特定区块的身份信息,并且区块体可以包括该区块确认的交易。随着越来越多的交易进入区块链,状态数据和区块数据的大小可能会变得非常大。在某些DLS中,每个节点都存储整个区块链副本,这会占用大量存储空间。这是因为所有区块数据和状态数据以回溯到记录在区块链的第一笔交易的方式被存储。在某些DLS中,一些共享节点存储整个区块链副本,并与其他可能产生“数据不平等”的区块链节点共享区块链数据。也就是说,当数据在不同节点之间分布不均时,当存储大多数数据的节点出现故障时,数据安全性风险可能会很高。因此,期望以保持数据平等性和数据处理效率的方式实现这种存储。还期望以降低计算资源或存储器的消耗同时能够在需要时恢复和检索原始数据的方式在DLS中实现节点上的数据存储。在某些情况下,当新区块链节点被添加到区块链网络时,期望使新区块链节点能够分担数据存储负担;从而降低现有区块链节点的存储消耗。
技术实现思路
所描述的主题的实施例可以包括单独或组合的一个或多个特征。例如,在一个实施例中,公开了一种计算机实现的用于由区块链节点执行的区块链数据存储的方法。所述区块链节点可接收用于对区块链的一个或多个区块执行纠错编码(ECC)的请求,基于从所述区块链网络的至少一个区块链节点接收的区块链数据获得所述一个或多个区块,并对所述一个或多个区块执行ECC以生成一个或多个编码区块,其中,所述一个或多个编码区块的编码率等于所述区块链网络所需的最小诚实区块链节点数和所述区块链网络的区块链节点的总数。在一些实施例中,这些一般和特定方面可以使用系统、方法或计算机程序,或系统、方法和计算机程序的任何组合来实现。前述和其他描述的实施例可以各自可选地包括以下特征中的一个或多个:在一些实施例中,从所述至少一个区块链节点接收的区块链数据是从所述一个或多个区块的ECC编码版本划分的多个数据集,并且获得所述一个或多个区块还包括:识别在所述区块链节点中本地存储的从所述一个或多个区块的ECC编码版本划分的一个或多个数据集,并基于本地存储的所述一个或多个数据集以及从所述至少一个区块链节点接收的所述多个数据集,对所述一个或多个区块进行解码。在一些实施例中,所述至少一个区块链节点是至少一个全区块链节点,并且获得所述一个或多个区块还包括从所述至少一个全区块链节点检索所述一个或多个区块。在一些实施例中,所述一个或多个区块是一个或多个第一区块,并且检索所述一个或多个第一区块还包括:向所述至少一个全区块链节点发送所述一个或多个第一区块的哈希值;从所述至少一个全区块链节点接收一个或多个第二区块;以及如果所述一个或多个第二区块的哈希值与所述一个或多个第一区块的哈希值相同,则确定所述一个或多个第二区块是可信的。在一些实施例中,所述请求包括编码率和指令,所述指令用于将所述一个或多个编码区块分别划分为多个数据集,并将所述多个数据集分配给所述区块链网络的区块链节点。在一些实施例中,对于所述一个或多个编码区块中的每个编码区块,所述区块链节点可以进一步根据所述指令将所述编码区块划分为多个数据集,并根据所述指令存储分配给所述区块链节点的多个数据集中的至少一个数据集。在一些实施例中,所述区块链节点可以进一步对除分配给所述区块链节点的所述多个数据集中的至少一个数据集之外的所述多个数据集的剩余部分进行哈希处理,以生成与所述多个数据集的剩余部分相对应的哈希值,存储所述哈希值,并删除所述一个或多个区块以及所述多个数据集的剩余部分。在一些实施例中,所述请求是第一请求,并且所述一个或多个编码区块是一个或多个第一编码区块,所述区块链节点可以进一步:响应于存储一个或多个区块的新区块链节点被添加到所述区块链网络中,接收用于对区块链的所述一个或多个区块执行ECC的第二请求;从所述新区块链节点检索所述一个或多个区块;以及对所述一个或多个区块执行ECC以生成一个或多个第二编码区块,其中,所述一个或多个第二编码区块的编码率等于所述区块链网络所需的最小诚实区块链节点数和添加所述新区块链节点后的区块链节点的总数。在一些实施例中,新区块链节点是存储区块链的副本的全节点。在一些实施例中,当所述区块链节点的计算资源的利用率小于或等于预定值时,执行ECC。在一些实施例中,ECC是通过向一个或多个区块添加冗余位来执行的纠删编码。应该了解,根据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。以下在附图和描述中阐述了本文的一个或多个实施方式的细节。根据说明书和附图以及权利要求书,本文的其他特征和优点将显现。附图说明图1描绘了可用于执行本文实施例的环境的示例。图2描绘了根据本文的实施例的架构的示例。图3描绘了根据本文的实施例的区块数据的编码和哈希处理的示例。图4描绘了根据本文的实施例的数据存储方案的示例。图5描绘了根据本文的实施例的区块数据的编码和哈希处理的另一示例。图6描绘了根据本文的实施例的向区块链网络添加区块链节点的示例。图7描绘了可以根据本文的实施例执行的过程的示例。图8描绘了根据本文的实施例的装置的模块的示例。各附图中相同的附图标记和名称表示相同的元件。具体实施方式本文描述了基于纠错码(ECC)处理用于存储的区块链数据的技术。这些技术通常涉及:接收用于对区块链的一个或多个区块执行纠错编码(ECC)的请求,基于从区块链网络的至少一个区块链节点接收的区块链数据获得所述一个或多个区块,并对所述一个或多个区块执行ECC以生成一个或多个编码区块,其中,所述一个或多个编码区块的编码率等于所述区块链网络所需的最小诚实区块链节点数和所述区块链网络的区块链节点的总数。如本文所述,区块链网络可以存储不同类型的数据,例如状态数据、区块数据和索引数据。区块数据包括区块链网络中的所有交易,由于新区块不断被添加本文档来自技高网
...

【技术保护点】
1.一种计算机实现的用于由区块链网络中的区块链节点执行的处理区块链数据的方法,所述方法包括:/n接收用于对区块链的一个或多个区块执行纠错编码ECC的请求;/n基于从所述区块链网络的至少一个区块链节点接收的区块链数据,获得所述一个或多个区块;以及/n对所述一个或多个区块执行ECC以生成一个或多个编码区块,其中,所述一个或多个编码区块的编码率等于所述区块链网络所需的最小诚实区块链节点数和所述区块链网络的区块链节点的总数。/n

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的用于由区块链网络中的区块链节点执行的处理区块链数据的方法,所述方法包括:
接收用于对区块链的一个或多个区块执行纠错编码ECC的请求;
基于从所述区块链网络的至少一个区块链节点接收的区块链数据,获得所述一个或多个区块;以及
对所述一个或多个区块执行ECC以生成一个或多个编码区块,其中,所述一个或多个编码区块的编码率等于所述区块链网络所需的最小诚实区块链节点数和所述区块链网络的区块链节点的总数。


2.如权利要求1所述的方法,其中,从所述至少一个区块链节点接收的区块链数据是从所述一个或多个区块的ECC编码版本划分的多个数据集,并且获得所述一个或多个区块还包括:
识别在所述区块链节点中本地存储的从所述一个或多个区块的ECC编码版本划分的一个或多个数据集;并且
基于本地存储的所述一个或多个数据集以及从所述至少一个区块链节点接收的多个数据集,对所述一个或多个区块进行解码。


3.如权利要求1所述的方法,其中,
所述至少一个区块链节点是至少一个全区块链节点,并且
获得所述一个或多个区块还包括:从所述至少一个全区块链节点检索所述一个或多个区块。


4.如权利要求3所述的方法,其中,所述一个或多个区块是一个或多个第一区块,并且检索所述一个或多个第一区块还包括:
向所述至少一个全区块链节点发送所述一个或多个第一区块的哈希值;
从所述至少一个全区块链节点接收一个或多个第二区块;以及
如果所述一个或多个第二区块的哈希值与所述一个或多个第一区块的哈希值相同,则确定所述一个或多个第二区块是可信的。


5.如前述任一权利要求所述的方法,其中,所述请求包括:
所述编码率,以及
指令,用于将所述一个或多个编码区块分别划分为多个数据集并将所述多个数据集分配给所述区块链网络的区块链节点。


6.如权利要求5所述的方法,还包括:
对于所述一个或多个编码区块...

【专利技术属性】
技术研发人员:卓海振陆钟豪
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1