一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于联盟区块链的分布式分组存储方法与流程

2021-10-30 02:38:00 来源:中国专利 TAG:区块 分布式 账本 分组 特别


1.本发明涉及区块链、p2p网络以及分布式账本等技术领域,特别是涉及一种基于联盟区块链的分布式分组存储方法。


背景技术:

2.区块链技术区块链技术作为一种新型的去中心化协议,凭借其去中心化的优势以及密码学支持实现了在无需互相信任的网络中进行安全可靠的交易,从而降低了现实世界中实体之间的信任成本,改变了价值分享方式,促进了信息互联网向价值互联网转变。区块链技术不是某一领域的产物,其涉及各行各业,区块链发展可分为三个阶段,第一个阶段功能较为单一,主要应用于数字货币的支付、流通等功能。第二代区块链在第一代的基础上结合智能合约,丰富了区块链在金融领域的应用。第三个阶段区块链不再局限于金融领域,而是涉足到各行各业,提供更为完善的去中心化行业解决方案。
3.区块链是一种分布式分类账技术,起初用于记录两个或多个参与方之间的交易,但目前再在其他领域也应用非常广泛。区块链作为一个分散的数据库,用于维护每个交易的详细信息,这些交易按时间顺序追加到账本上,并以一组数据块的形式存储。区块之间通过区块哈希相互连接,形成区块链。参与到区块链系统中的节点都必须维护一个完整的区块链副本,通过将分类账本部署在多个节点上实现区块链不可修改的特点。区块链节点通过同步和验证区块链系统中的所有交易,并将验证后的交易追加到本地存储的区块链中,实现区块链的防篡改的特性。然而,区块链技术本身还存在一些缺陷。区块链的不可更改和分布式存储导致系统存储开销过大,而且区块链爆炸式的容量增长仍然保持,随着区块链系统的tps数值不断增大,区块增长趋势也愈演愈烈
4.正是因为区块链的不能修改只能追加这一特性,导致区块链的体积不断增加,越来越多的节点由于存储问题不得不退出区块链系统,沦为区块链中的轻节点,只能承担客户端的角色进行spv简单支付验证,不再参与区块的共识和验证。随着区块无限制的增长,参与到区块共识的节点越来越少,去中心化的应用也将出现少数存储能力较大的节点主导的现象,区块链也将不再那么安全。这便是目前区块链亟待解决的问题。


技术实现要素:

5.为了解决上述技术问题,本发明旨在提出一种基于联盟区块链的分布式分组存储方法,将区块链存储技术与分布式存储技术相结合,实现区块分布式分组存储,解决存储压力大的问题。
6.本发明利用以下技术方案实现:
7.1.一种基于联盟区块链的分布式分组存储方法,其特征在于,该方法包括以下步骤:
8.在客户端构造交易提案,发送给普通节点peers,交易提案中包含本次交易要调用的合约标识、合约方法和参数信息以及客户端签名;
9.普通节点peers收到交易提案后,模拟执行交易,然后将原始交易提案和执行结果打包到一起、进行签名并发回给客户端;
10.客户端收到普通节点peers的应答后,打包到一起组成一个交易,签名后发送给超级节点supers;
11.超级节点supers对接收到的交易进行共识,然后将一批交易打包到一起,生成新的区块,发送给普通节点peers;
12.普通节点peers对区块中的每笔交易进行校验,检查交易依赖的输入输出是否符合当前区块链的状态;校验后,执行以下两方面的处理:
13.一方面,进行区块链节点聚类分组,保证每个分组内的区块链存储节点数量和存储能力大致相当,同时保证每个分组的存储容量能够满足现有的区块链数据的总量;
14.另一方面,利用依据可靠性评价机制得到的高可靠性节点控制从客户端发来的分布式存储请求于区块的分配,所述高可靠性具体包括性能评价和信誉评价;其中,性能评价表示对于客户端的请求能够及时的响应,信誉评价表示保证节点能够积极的响应系统的存储需求,所述高可靠性节点选择算法流程包含的具体步骤如下:
15.首先进行节点性能评价:节点性能将综合考虑节点存储容量s
i
、cpu处理频率c
i
、cpu内核数目n、磁盘io读写速率d
i
、内存大小m
i
以及网络带宽w
i
,性能评价计算公式如下:
16.p
i
=k1×
s
i
k2×
n
×
c
i
k3×
d
i
k4×
m
i
k5×
w
i
17.其中,k
i
表示各个硬件性能的所占权重;
18.然后根据各个节点历史交互行为计算产生普通节点peers的信誉评价,具体步骤如下:
19.计算局部信誉评价,公式如下:
20.t
ij
=(ts
ij
tf
ij
1)
×
d
ij
21.计算积极评价,公式如下:
22.ts
ij
=s
ij
/(s
ij
f
ij
)
23.计算消极评价,公式如下:
24.tf
ij


f
ij
/(s
ij
f
ij
)
25.计算节点满意度,公式如下:
[0026][0027]
其中,t
ij
表示局部信誉评价,代表两个节点i,j的信任度,d
ij
表示节点i对节点j的满意度,e
ij
(ξ)表示节点i对节点j的第ξ次交互的满意度,m
ij
表示节点i对节点j评价的总次数,ts
ij
表示节点i对节点j的积极评价,tf
ij
表示节点i对节点j的消极评价,s
ij
表示节点i与节点j成功交互的次数,f
ij
表示节点i与节点j失败交互的次数;
[0028]
计算全局信任评价,公式如下:
[0029][0030]
其中,t
i
表示当前在分组内的全局信誉评价,i表示分组的节点集合,n表示每个分组的节点数量;
[0031]
综合考虑节点性能评价和信誉评价,计算综合节点可靠性,公式如下:
[0032]
r
i
=αp
i
βt
i
[0033]
其中,r
i
表示节点i的可靠性,α、β分别表示性能评价和信誉评价所占权重;
[0034]
将从客户端发来的分布式存储请求分配到高可靠性节点的区块。
[0035]
与现有技术相比,本发明能够达成以下有益效果:
[0036]
1)本发明将区块链节点进行分组,分别存储区块链完整的副本,安全可靠存储的同时降低单个区块链存储节点的存储消耗,弥补单个节点存储能力不足的缺憾;
[0037]
2)本发明将区块分配问题与节点的可靠性相关联,能够有效防止恶意节点和消极节点存储大量区块,破环区块链系统的稳定性。
附图说明
[0038]
图1为本发明的一种基于联盟区块链的分布式分组存储方法整体流程图;
[0039]
图2为本发明实施例的分布式分组存储架构图;
[0040]
图3为本发明实施例时序流程图。
具体实施方式
[0041]
下面结合附图和具体实施例对本发明技术方案作进一步详细描述。
[0042]
如图1所示,为本发明的一种基于联盟区块链的分布式分组存储方法整体流程图,
[0043]
在客户端构造交易提案,发送给普通节点peers,交易提案中包含本次交易要调用的合约标识、合约方法和参数信息以及客户端签名;
[0044]
普通节点peers收到交易提案后,模拟执行交易,然后将原始交易提案和执行结果打包到一起、进行签名并发回给客户端;
[0045]
客户端收到普通节点peers的应答后,打包到一起组成一个交易,签名后发送给超级节点supers;
[0046]
超级节点supers对接收到的交易进行共识,然后将一批交易打包到一起,生成新的区块,发送给普通节点peers;
[0047]
普通节点peers对区块中的每笔交易进行校验,检查交易依赖的输入输出是否符合当前区块链的状态;校验后,执行以下两方面的处理
[0048]
1)区块链节点聚类分组,保证每个分组内的区块链存储节点数量和存储能力大致相当,同时能够保证每个分组的存储容量能够满足现有的区块链数据的总量;2)区块分配,降低现有节点的存储压力,同时能够维持现有区块链系统的吞吐率,因此在节点选择方面综合考虑节点的性能评价和信誉评价,性能评价要求对于客户端的请求能够及时的响应,信誉评价保证节点能够积极的响应系统的存储需求,安全稳定的承担系统任务;具体作法是将区块分配问题与节点的可靠性相关联,节点可靠性由节点性能评价和信誉评价综合计算得出。
[0049]
高可靠性节点选择算法流程,具体步骤如下:
[0050]
首先进行节点性能评价:节点性能将综合考虑节点存储容量s
i
、cpu处理频率c
i
、cpu内核数目m、磁盘io读写速率d
i
、内存大小m
i
以及网络带宽w
i
,性能评价计算公式如下:
[0051]
p
i
=k1×
s
i
k2×
m
×
c
i
k3×
d
i
k4×
m
i
k5×
w
i
ꢀꢀꢀ
(1)
[0052]
其中,k
i
表示各个硬件性能的所占权重。满足以下约束条件:
[0053][0054]
由于节点的各个参数的量纲不同,若直接将所有参数相加并不合适,计算出来的性能评价差别较大,因此本发明采用如下标准化公式进行节点参数标准化操作:
[0055][0056]
其中,x
i
表示标准化的节点参数(硬盘存储容量、磁盘io速率等),x
r
表示未标准化的实际参数,x
min
表示区块链节点聚类分组中各节点同一参数的最小值,表示区块链节点聚类分组中各节点参数的平均值,n表示每个分组的节点数量。
[0057]
然后进行节点信誉评价:节点信誉评价根据各个节点历史交互行为计算产生,具体步骤如下:
[0058]
计算局部信誉评价,公式如下:
[0059]
t
ij
=(ts
ij
tf
ij
1)
×
d
ij
ꢀꢀꢀ
(4)
[0060]
计算积极评价(取值范围(0,1)),公式如下:
[0061]
ts
ij
=s
ij
/(s
ij
f
ij
)
ꢀꢀꢀ
(5)
[0062]
计算消极评价(取值范围(

1,0)),公式如下:
[0063]
tf
ij


f
ij
/(s
ij
f
ij
)
ꢀꢀꢀ
(6)
[0064]
计算节点满意度(取值范围(0,1)),公式如下:
[0065][0066]
其中,t
ij
表示局部信誉评价,代表两个节点i,j的信任度,d
ij
表示节点i对节点j的满意度,由历史交互评价综合所得,e
ij
(ξ)表示节点i对节点j的第ξ次交互的满意度,m
ij
表示节点i对节点j评价的总次数,ts
ij
表示节点i对节点j的积极评价,tf
ij
表示节点i对节点j的消极评价,s
ij
表示节点i与节点j成功交互的次数,f
ij
表示节点i与节点j失败交互的次数。
[0067]
计算全局信任评价,公式如下:
[0068][0069]
其中,t
i
表示当前在分组内的全局信誉评价,i表示分组的节点集合,n表示每个分组的节点数量。
[0070]
通过综合考虑节点性能评价和信誉评价,能够有效的评价一个节点的可靠性,通过可靠性评价机制控制区块的分配,能够有效的约束节点的消极行为和作恶行为,计算综合节点可靠性,公式如下:
[0071]
r
i
=αp
i
βt
i
ꢀꢀꢀ
(9)
[0072]
其中,r
i
表示节点i的可靠性,α、β分别表示性能评价和信誉评价所占权重。
[0073]
如图2所示,为本发明实施例的分布式分组存储架构图。该存储架构包括普通节点10和超级节点20,普通节点10根据一定的聚类方法,如典型的k

means聚类方法,被分为多
个存储单元su,每个存储单元su的存储能力能够满足完整区块链副本的存储要求,每个存储单元su分别维护一条完整的区块链,同时每个节点都保存区块链的区块头部分,由于区块头所占用的存储空间较小,对存储的要求相对较低,但是能够满足验证区块合法性的要求,通过保存在区块头的区块哈希能够验证一个区块是否被篡改。超级节点20担任共识和出块的任务,同时每个超级节点20都需要维护完整的区块链副本,当普通节点出现宕机或者被恶意攻击时能够保证区块链的完整性不被破坏。同时共识网络还负责选择出每个su内可靠性最高的节点进行区块分配,通过将区块保存在可靠性较高的节点中增加系统的稳定性和吞吐率。
[0074]
如图3所示,为本发明实施例时序流程图。其中,包括client、peers和suppers三类实体,其中peers指存储单元内的普通节点,suppers指共识网络中的超级节点,负责区块的共识和区块打包。角色意义如下:
[0075]
客户端构造交易提案——在客户端构造交易提案,发送给一个或多个peers节点,交易提案中包含本次交易要调用的合约标识、合约方法和参数信息以及客户端签名。
[0076]
peers节点执行交易——peers节点收到交易提案后,会模拟执行交易,然后将原始交易提案和执行结果打包到一起,进行签名并发回给客户端,该阶段不修改账本。
[0077]
客户端打包——客户端收到各个peer的应答后,打包到一起组成一个交易,签名后发送给supers。
[0078]
suppers共识,生成新区块——supers对接收到的交易进行共识,然后按照区块生成策略,将一批交易打包到一起,生成新的区块,发送给peers节点。
[0079]
交易校验——peers节点对区块中的每笔交易进行校验,检查交易依赖的输入输出是否符合当前区块链的状态。校验后,根据位置分配策略保存到本地。
[0080]
将现有的区块链节点按其硬件性能分别担任超级节点和普通节点,所有超级节点组成共识网络,负责网络中的共识操作,同时打包网络中的交易形成区块。普通节点负责存储部分区块,同时响应客户端的请求。该存储架构在降低节点存储压力方面表现出其有效性。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜