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

技术编号:24865684 阅读:16 留言:0更新日期:2020-07-10 19:16
本文公开了用于存储区块链数据的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括从区块链网络的区块链节点检索多个区块,使用纠错编码(ECC)对多个区块进行编码以生成多个编码区块,以及针对多个编码区块中的每个编码区块:将编码区块划分为多个数据集;计算多个数据集的哈希值;发送请求,所述请求包括多个数据集中的至少一个数据集、哈希值以及提供关于多个数据集至多个区块链节点的分配的数据存储方案;从至少一定数量的区块链节点接收表示接受该请求的响应,所述一定数量等于一个或多个信息位数据集的数量;以及发送采用该数据存储方案的通知。

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

【技术保护点】
1.一种计算机实现的用于在可通信地耦接到区块链网络的计算设备上执行的可信执行环境TEE中处理区块链数据的方法,所述方法包括:/n从所述区块链网络中的区块链节点检索多个区块;/n使用纠错编码ECC对所述多个区块进行编码以生成多个编码区块;/n对于所述多个编码区块中的每个编码区块:/n将所述编码区块划分为多个数据集,其中,所述多个数据集包括一个或多个信息位数据集和一个或多个冗余位数据集;/n计算所述多个数据集的哈希值;/n向所述区块链网络中的多个区块链节点分别发送请求,所述请求包括所述多个数据集中的至少一个数据集、所述哈希值以及提供关于所述多个数据集至所述多个区块链节点的分配的数据存储方案;/n从至少一定数量的区块链节点接收表示接受所述请求的响应,所述一定数量等于所述一个或多个信息位数据集的数量;以及/n向所述多个区块链节点分别发送采用所述数据存储方案的通知。/n

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的用于在可通信地耦接到区块链网络的计算设备上执行的可信执行环境TEE中处理区块链数据的方法,所述方法包括:
从所述区块链网络中的区块链节点检索多个区块;
使用纠错编码ECC对所述多个区块进行编码以生成多个编码区块;
对于所述多个编码区块中的每个编码区块:
将所述编码区块划分为多个数据集,其中,所述多个数据集包括一个或多个信息位数据集和一个或多个冗余位数据集;
计算所述多个数据集的哈希值;
向所述区块链网络中的多个区块链节点分别发送请求,所述请求包括所述多个数据集中的至少一个数据集、所述哈希值以及提供关于所述多个数据集至所述多个区块链节点的分配的数据存储方案;
从至少一定数量的区块链节点接收表示接受所述请求的响应,所述一定数量等于所述一个或多个信息位数据集的数量;以及
向所述多个区块链节点分别发送采用所述数据存储方案的通知。


2.如权利要求1所述的方法,其中,采用所述数据存储方案还包括:
基于所述数据存储方案中提供的所述分配,存储所述多个数据集中的至少一个数据集;以及
删除与所述多个区块相关联的现有区块链数据。


3.如前述任一权利要求所述的方法,其中,
所述多个数据集的数量等于所述区块链网络中的所述区块链节点的数量,并且
所述多个编码区块的编码率等于所述区块链网络所需的最小诚实区块链节点数除以区块链节点的总数。


4.如前述任一权利要求所述的方法,其中,检索所述多个区块是响应于区块链节点从所述区块链网络退出执行...

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

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

1