会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 区块链账本 / 区块链账本的分布式存储方法

区块链账本的分布式存储方法

申请号 CN202010917424.X 申请日 2020-09-03 公开(公告)号 CN112035576A 公开(公告)日 2020-12-04
申请人 厦门大学; 发明人 罗晔; 陈彦君;
摘要 区块链账本的分布式存储方法,涉及区块链技术领域。提出一种利用廉价主机将区块链账本进行分布式存储的全新的思路,用于解决区块链的账本数据大爆炸的问题,提高区块链账本的存储容量上限。通过搭建多台主机组成的分布式集群将区块链网络的账本数据容量进行扩大。一般情况下,分布式集群只会拥有更多的主机节点,一个拥有成百上千个主机节点的分布式集群,可以使区块链网络的账本存储能力扩大成百上千倍。可以利用更多的廉价主机,扩大区块链账本的容量,不仅降低项目成本,而且提高了基于区块链项目的上限。
权利要求

1.区块链账本的分布式存储方法,其特征在于包括以下步骤:

1)将若干主机分组,每一个小组作为区块链网络上的一个虚拟节点,则这个区块链网络上有相同的完整的多个账本备份,将账本备份在一个小组内的多个主机进行分布式存储,这样就将区块链网络产生的账本数据从一台主机的容量扩大成了多台主机的容量;

2)利用多台主机模拟了小组的多台主机,并搭建区块链网络,再在多台主机上搭建分布式集群;

3)在步骤2)搭建好的区块链网络上不停进行地进行交易,则不停产生大量的账本数据;随着交易不断进行导致账本大小不断增大,在第一个账本区块达到上限大小之后,将这个区块从区块链网络的虚拟节点上传到搭建好的分布式集群,第一个账本区块在原虚拟节点上消失,而存储在了Hadoop集群上,同时,区块链网络上出现第二个账本区块;

4)随着区块链网络上交易的持续进行,越来越多的账本区块达到上限大小值,将这些达到上限大小的账本区块动态地从原虚拟节点上传到分布式集群,即实现了区块链账本的分布式存储,扩大了区块链账本的存储容量。

说明书全文

区块链账本的分布式存储方法

技术领域

[0001] 本发明涉及区块链技术领域,尤其是涉及一种区块链账本的分布式存储方法。

背景技术

[0002] 随着区块链技术的面世,其去中心化、分布式多副本存储、数据共识一致、数据可回溯、数据难篡改等特性使其得到了广泛的应用。物联网+区块链的发展导致会有越来越多的基于区块链的物联网项目实现落地,然而由于区块链网络采取的是多副本冗余存储,及链式结构,使得区块链网络中的节点得以对网络中的每条交易信息(transaction)实现自主验证、达成共识,但也产生了账本冗余的问题。区块链网络上的账本信息随着交易的持续进行而不断增长,没有一个可估量的上限值,所以可能出现区块链账本数据的存储容量需求变得非常大。
[0003] 中国专利CN201811081255.X公开一种基于纠删码实现的区块链账本分布式存储技术,包括以下步骤:a)区块延迟编码策略允许延迟对一定数量的新区块编码,以满足其他区块链共识节点对区块的同步需求;b)根据设定的区块编码算法,对满足编码条件的区块切割为k个数据块,每个数据块的大小约为原始区块的1/k,将切割的k个数据块进一步通过纠删码技术编码成n(n>k)个编码块;c)每个区块链节点保留部分编码块,最终整个区块链网络分散存储编码块;d)在需要从编码块恢复出原区块时,当前节点向其余节点收集该区块对应的其余编码块部分,再根据对应的解码算法恢复出原区块。减小了区块链对于存储资源的需求,提高了存储空间利用率。

发明内容

[0004] 本发明的目的在于提供可解决区块链的数据大爆炸等问题的一种区块链账本的分布式存储方法。
[0005] 本发明包括以下步骤:
[0006] 1)将若干主机分组,每一个小组作为区块链网络上的一个虚拟节点,则这个区块链网络上有相同的完整的多个账本备份,将账本备份在一个小组内的多个主机进行分布式存储,这样就将区块链网络产生的账本数据从一台主机的容量扩大成了多台主机的容量;
[0007] 2)利用多台主机模拟了小组的多台主机,并搭建区块链网络,再在多台主机上搭建分布式集群;
[0008] 3)在步骤2)搭建好的区块链网络上不停进行地进行交易,则不停产生大量的账本数据;随着交易不断进行导致账本大小不断增大,在第一个账本区块达到上限大小之后,将这个区块从区块链网络的虚拟节点上传到搭建好的分布式集群,第一个账本区块在原虚拟节点上消失,而存储在了Hadoop集群上,同时,区块链网络上出现第二个账本区块;
[0009] 4)随着区块链网络上交易的持续进行,越来越多的账本区块达到上限大小值,将这些达到上限大小的账本区块动态地从原虚拟节点上传到分布式集群,即实现了区块链账本的分布式存储,扩大了区块链账本的存储容量。
[0010] 在步骤3)中,所述账本区块的上限根据不同的区块链平台确定。
[0011] 本发明通过搭建多台主机组成的分布式集群将区块链网络的账本数据容量进行扩大。一般情况下,分布式集群只会拥有更多的主机节点,一个拥有成百上千个主机节点的分布式集群,可以使区块链网络的账本存储能力扩大成百上千倍。本发明提出了一种利用廉价主机将区块链账本进行分布式存储的全新的思路,用于解决区块链的账本数据大爆炸的问题,提高区块链账本的存储容量上限。本发明可以利用更多的廉价主机,扩大区块链账本的容量,不仅降低项目成本,而且提高了基于区块链项目的上限。

附图说明

[0012] 图1为区块链网络的架构示意图。
[0013] 图2为虚拟节点的架构示意图。
[0014] 图3为本发明逻辑框图。
[0015] 图4为本发明实施例所述智能合约的逻辑导图。

具体实施方式

[0016] 以下实施例将结合附图对本发明作进一步的说明。
[0017] 本发明提出了一个新的解决方案,也就是将区块链网络产生的账本数据利用更多的廉价主机进行分布式存储,以此来提高区块链账本的存储容量上限。
[0018] 本实施例采用9台的廉价主机搭建一个区块链网络,将他们分成三组,每组三台主机,将每一个小组作为区块链网络上的一个虚拟节点,则这个区块链网络上有相同的完整的三个账本备份,将账本备份在一个小组也就是三台主机内进行分布式存储,这样就将区块链网络产生的账本数据从一台主机的容量扩大成了三台主机的容量。整个网络的框架如图1。
[0019] 三台主机搭建了区块链网络和分布式系统,虚拟节点的架构如图2;本发明逻辑框图如图3。搭建了一个hostname为Matser-slave1-slave2的分布式集群;其中,在Matser上通过Hyperledger Fabric编写智能合约搭建了一个区块链网络(图4给出所述智能合约的逻辑导图),再在三台主机上搭建了Master-slave1-slave2结构的分布式集群,其中NameNode和Secondary NameNode部署在Master上,DataNode分别部署在slave1和slave2上。在搭建好的区块链网络上不停进行地进行交易,就会不停地产生大量的账本数据。
[0020] 区块链网络上的第一个账本区块为blockfile_000000,交易的不断进行会导致账本大小的不断增大,在第一个区块blockfile_000000达到上限大小64M之后,区块链网络上出现了第二个账本区块blockfile_000001,这是因为Hyperledger Fabric所规定的区块的上限大小为64M。
[0021] 在出现了上限区块大小的blockfile_000000区块后,将这个区块从区块链网络的peer节点上上传到搭建好的分布式集群,blockfile_000000区块会在原peer节点上消失,而存储在了Hadoop集群上。
[0022] 随着区块链网络上交易的持续进行,将会有越来越多的区块达到上限大小值,将这些达到上限大小的区块动态地从原peer节点上传到分布式集群,即实现了区块链账本的分布式存储,扩大了区块链账本的存储容量。
[0023] 本实施例通过搭建一个由3台主机组成的分布式集群将区块链网络的账本数据容量从10G扩大到了20G,整整扩大了两倍。而在一般情况下,分布式集群只会拥有更多的主机节点,一个拥有成百上千个主机节点的分布式集群,自然也能使区块链网络的账本存储能力扩大成百上千倍。
[0024] 以上仅为本发明的较佳实施例,本发明还可采用更多的廉价主机搭建区块链网络,将其分成更多的小组,同时可将区块的上限大小为128M、256M、512M等,以成倍的扩大区块链网络的账本存储能力。
[0025] 本发明提出一种利用廉价主机将区块链账本进行分布式存储的全新的思路,采用多台廉价主机分组搭建区块链网络的方法,将区块链网络的账本存储能力成倍扩大,可以用于解决区块链的账本数据大爆炸的问题。优点在于可以利用更多的廉价主机,扩大区块链账本的容量,不仅降低项目成本,而且提高了基于区块链项目的上限。