基于纠删码实现的区块链账本分布式存储技术制造技术

技术编号:20389769 阅读:47 留言:0更新日期:2019-02-20 02:48
本发明专利技术请求保护一种基于纠删码实现的区块链账本分布式存储技术,属于区块链技术领域。包括以下步骤:a)区块延迟编码策略允许延迟对一定数量的新区块编码,以满足其他区块链共识节点对区块的同步需求;b)根据设定的区块编码算法,对满足编码条件的区块切割为k个数据块,每个数据块的大小约为原始区块的1/k,将切割的k个数据块进一步通过纠删码技术编码成n(n>k)个编码块;c)每个区块链节点保留部分编码块,最终整个区块链网络分散存储编码块;d)在需要从编码块恢复出原区块时,当前节点向其余节点收集该区块对应的其余编码块部分,再根据对应的解码算法恢复出原区块。本方法减小了区块链对于存储资源的需求,提高了存储空间利用率。

【技术实现步骤摘要】
基于纠删码实现的区块链账本分布式存储技术
本专利技术属于区块链
,具体涉及在区块链中通过纠删码分布式存储技术减小区块链节点对于存储资源的需求,减小存储资源占用的同时保证了存储数据可用性,提高了存储空间利用率。
技术介绍
随着区块链技术的面世,其去中心化、分布式多副本存储、数据共识一致、数据可回溯、数据难篡改等特性使其在金融领域得到了广泛的应用,同时也在如医疗信息记录、版权信息记录、教育信息记录等多个领域得到了不小的应用。然而区块链技术也有着其明显不足之处,由于区块链网络采取的是多副本冗余存储,及链式结构,使得区块链网络中的节点得以对网络中的每条交易信息(transaction)实现自主验证、达成共识,但也产生了账本冗余的问题。每一笔交易信息都将存储在网络中的每个节点,导致整个区块链网络将随着网络交易信息的增多而加大存储资源的需求。同时也不适合在区块链网络中存储较大的数据,如图片、大文本、媒体文件等。针对这一问题目前比较流行的研究方案:一种是利用P2P存储系统作为区块链网络的线下存储系统,为区块链网络提供大文件存储服务,而区块链网络仅需记录该文件对应在P2P存储系统存储路径即可,但该种方法对于存储系统要求较高,P2P存储节点的数据丢失或者离线也同样意味着节点存储文件在区块链网络的丢失,多节点存储相同文件则会带来冗余问题,并且该方案仅对大文件有效,并不能解决区块链因区块增多、账本膨胀所带来的存储负荷问题。另一种是基于以太坊(Ethereum)提出的二次分片方案,即将网络中的节点划分成不同的片区,将网络中的交易根据一定的规则分发到这些片区,由这些片区进行处理并且共识存储;该方案虽能解决存储问题,但也有明显的问题,其在于该方案想要保证容错率及免受攻击,则必须使得节点数量足够多,使得片区内的节点数量足够的;同时该方案还涉及到分片间的通信问题,要使得分片间的数据分离但不隔离,在实现上存在较大难度还有不小的安全隐患。本专利技术提出了一种基于纠删码实现的区块链账本分布式存储技术,通过结合纠删码技术将区块链私有链或者联盟链中的区块数据以及大文件进行编码,每个区块链节点根据算法保留各自需要保存的编码块。当需要恢复出区块或者大文件时,节点仅需向区块链网络的其他节点收集一定数量的编码块即可以恢复出原始数据块,从而实现了在保护数据不丢失、高可用的同时降低了整个区块链网络的数据冗余度,降低了对存储资源的需求,节约了存储空间。
技术实现思路
本专利技术旨在解决以上现有区块链技术关于数据存储的问题。提出了一种基于纠删码实现的区块链账本分布式存储技术。本专利技术的技术方案如下:一种基于纠删码现的区块链账本分布式存储技术,其讨论的区块链网络为私有链和联盟链,特点在于共识节点数量已知,节点身份已知,其包括:初始化模块,为每一个加入所诉区块链网络中参与共识的区块链节点设置独有的节点id,并设定好参与区块链共识的总节点数n,区块链网络抗攻击能力m(m<n),以及编码延迟区块数D;区块编码模块,包含了编码算法以及编码块选择算法,用于对满足编码条件的区块根据编码算法进行编码,并对生成的n个编码块保留其中的一个;区块解码模块,用于当需要恢复出某一区块时,向其他区块链共识节点下载该区块对应的编码块,在收集到足够的编码块后根据预设的解码算法进行解码;进一步的,所述初始化模块中设定的区块链共识的总节点数n以及区块链网络抗攻击能力m(m<n)与区块编码模块中的编码算法相关,编码模块将根据n和m将所需编码的区块划分成k(k=n-m)个数据块,再根据编码算法将k个数据块编码成n个编码块。所诉初始化模块中设定的编码延迟区块数L则用于告知编码模块不能对最新生成的L个区块进行编码,以供给某些需要同步的共识节点进行快速的区块同步。进一步的,所述区块编码模块的编码块选择算法在完成区块编码后,得到n个编码块,根据节点id以及当前所编码的区块号N选择留取其中的某个编码块,保证区块链网络中的所有共识节点都会根据算法留下互不相同的编码块,并在留下所需保存的编码块后删除其余不需要保存的编码块,从而降低数据的冗余度。进一步的,所述区块解码模块在需要通过编码块恢复出原始区块的时候会向网络中的至少k-1个节点请求这些节点所拥有的该区块对应的编码块,最后根据解码算法恢复出原始区块。一种基于纠删码实现的区块链账本分布式存储技术,其包括以下步骤:101、区块链节点初始化模块设定参与共识的区块链节点数、节点id、区块链网络抗攻击能力以及编码延迟区块数;102、区块链编码模块根据区块链节点数、区块链网络抗攻击能力对需要编码的区块进行编码;103、在完成编码后又根据区块链总节点数、当前节点id选择留存编码块,删除其余编码块,保证每个节点都保存有不同的编码块,以减小冗余。104、在当需要恢复出原始区块时,编码块解码模块会向网络中的至少k-1个节点请求这些节点所拥有的该区块对应的编码块,最后根据解码算法恢复出原始区块。本专利技术的优点及有益效果如下:本专利技术提出一种基于纠删码实现的区块链账本分布式存储技术,用于减小区块链对于存储资源的需求,节约了存储空间。本专利技术与现有的区块链账本存储解决方案相比,具有如下优点以及有益结果:通过提前预设好的共识节点总数及容错节点数选择合适的纠删码编码算法,每个节点仅保留编码块中的单个或者部分编码块,删除其余的编码块,极大的减小了对于存储资源的需求;通过纠删码纠错机制,在减少存储资源占用,降低冗余度的同时还能保证整个区块链网络的容错能力。附图说明图1:本专利技术提供优选实施例;图2:区块链中区块及其储存结构;图3:区块编码模块运行流程图;图4:区块解码模块运行流程图;具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清除、详细的描述。所描述的实施例仅仅是本专利技术的一部分实施例。本专利技术解决上述技术问题的技术方案是:为了对本发呃呃明实例进行清楚详细的介绍,此处结合图1简要介绍基于纠删码实现的区块链分布式账本的应用场景。在图1中的5个节点共同构成一个区块链,通过共识机制同步一个账本。当需要对账本的的第W个区块进行编码时,将区块W划分成3个数据块,又通过编码技术由这几个数据块生成2个额外的校验块。2个校验块和3个数据块共同构成5编码块,通过解码算法,任意获得3个或者3个以上的编码块均可恢复出原始数据块。每个节点在区块数据相同的情况下都会生成完全相同的5个编码块,最终每个节点会各自选择不同的编码块进行存储,如图节点④选择保留了第4个编码块。编码块的大小远远小于原始数据,通过收集多个任意编码块可以恢复出原始数据,从而实现了既保证了数据的高可用性,又降低了数据冗余度,减小了区块链系统对于存储资源的需求,解决了存储空间。如图2所示,在本实例所描述的区块链系统中,每个区块链节点都有一个名为Blockheaderchain的单向链表结构,它是区块链区块的核心部分。通过在头部记录区块内所有交易(TX)的哈希值,而交易的实体则根据哈希值以及区块编号作为键值(key)被分散存储在底层数据库中。本实施例所讨论的编码对象则是这些被分散存储在底层数据库且占据了绝大部分存储资源的交易实体。图3为本专利技术具体区块编码模块的实现流程图,本实施例所讨论的纠删码为MDS纠删码,一般可以用(n本文档来自技高网
...

【技术保护点】
1.一种基于纠删码实现的区块链账本分布式存储技术,其特征在于,包括:S1.区块链节点初始化设定模块;S2.将区块链数据通过纠删码技术编码成编码块的区块链编码模块;S3.当将编码块恢复成原始区块链数据时所需要的编码块解码模块。

【技术特征摘要】
1.一种基于纠删码实现的区块链账本分布式存储技术,其特征在于,包括:S1.区块链节点初始化设定模块;S2.将区块链数据通过纠删码技术编码成编码块的区块链编码模块;S3.当将编码块恢复成原始区块链数据时所需要的编码块解码模块。2.根据权利要求1所述的初始化设定模块,其特征在于,当所诉区块链网络的共识节点加入该网络时,初始化设定模块用于配置并告知当前节点id、加入该网络的共识节点总数、网络要求达到的容错节点数以及延迟编码区块数等。3.根据权利要求1所述的将区块链数据通过纠删码技术编码成编码块的区块链编码模块,和权利要求2所述的初始化设定模块设定共识节点的总数及网络要求达到的容错节点数,其特征在于区块链编码模块所涉及到的对区块链编码的编码算法受初始化设定模块设定共识节点的总数及网络要求达到的容错节点数的影响。4.根据权利要求1所述的将区块链数据通过纠删码技术编码成编码块的区块链编码模块,其特征在于区块链节点将其存储的区块链数据切割成多个数据块,又根据预设的编码算法将这多...

【专利技术属性】
技术研发人员:赵国锋张明聪何英
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

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

1