一种联盟链的数据存储方法技术

技术编号:31829963 阅读:49 留言:0更新日期:2022-01-12 13:06
本发明专利技术提出一种联盟链的数据存储方法,具体包括储存节点选取,区块存储和交易验证与追溯,经过全网节点验证后的区块,只有联盟链中部分节点存储。部分节点存储时,也并非将整个区块都存储在自己服务器,而是只存储区块体以及区块头中的Merkle根。该技术节省联盟区块链中各节点的存储空间,有效解决数据冗余和传输问题,并提高交易验证效率,以及提高区块产生速度。速度。速度。

【技术实现步骤摘要】
一种联盟链的数据存储方法


[0001]本专利技术涉及区块链
,具体涉及一种数据存储的方案。

技术介绍

[0002]区块链存储数据的方式为分布式数据存储,点对点传输、共识机制、加密算法等计算机技术的新型应用模式。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有不可伪造、全程留痕、可以追溯、公开透明、集体维护等特征。其中的每一个节点都存储一个完成的账本,最终形成的区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
[0003]由于每个节点都要维护一个完整账本,每一笔交易需要验证时需要追溯之前每一笔记录,而随着时间的不断增加,交易会越来越多,数据也会越多,交易溯源及验证时间就会越来越长,而且随着区块链中区块的不多增多,会带来严重的数据存储问题,会造成大批量交易时不能够及时处理与验证。

技术实现思路

[0004]针对现有技术的不足,本专利技术提出一种联盟链的数据存储方法,具体包括储存节点选取,区块存储和交易验证与追溯,经过全网节点验证后的区块,只有联盟链中部分节点存储。部分节点存储时,也并非将整个区块都存储在自己服务器,而是只存储区块体以及区块头中的Merkle根。
[0005]部分节点存储的选取方法为:
[0006]设联盟链中有s个节点,m1,m2,

,m
s
,m
i
表示联盟链中的节点;只有联盟链中部分节点存储,令存储比例系数为α,则每产生一个区块有αs个节点存储该区块;为每个节点对应一个权重β
i
,即下一次被选中存储区块的重要程度,则β
mi
表示节点m
i
的权重值;每个节点的权重β
mi
从大到小排列,每次选取前αs个节点作为下一次存储区块的节点。
[0007]区块存储和交易验证与追溯具体步骤为:
[0008]对新生成区块验证是否合法,丢弃不合法区块;对合法区块中Merkle根在区块体以及区块头分别存取;区块体部分取前αs个节点存储区块体向每个节点向全网广播自己储存的Merkle根;判断是否与待验证的区块头Merkle根相同,若相同,则在与待验证的区块头Merkle根相同的节点中的区块体验证交易。
[0009]权重β
i
的设置方法为:
[0010]将每个节点的权重β
mi
从大到小排列,每次选取前αs个节点作为下一次存储区块的节点;
[0011]开始时联盟链中每个节点的权重都为1,即,β
m1
=β
m2
=...=β
ms
=1表示每个被选中存储区块的概率相等;若有αs个节点被选中存储区块,设m
i
,m
i+1
,...,m
i+αs
被选中作为某一区块的存储节点,则它们中每一个节点下一次被选中的概率为即
其中T
cur
表示当前被选中存储区块的次数。
[0012]本专利技术技术方案带来的有益效果:
[0013]节省联盟区块链中各节点的存储空间,有效解决数据冗余和传输问题,并提高交易验证效率,以及提高区块产生速度。
附图说明
[0014]图1为联盟链数据存储的方法逻辑示意图
具体实施方式
[0015](1)设联盟链中有s个节点,m1,m2,

,m
s
,m
i
表示联盟链中的节点;
[0016](2)每个区块产生时并非像传统区块链那样,每个节点都存储该区块,而是经过全网节点验证后的区块,只有联盟链中部分节点存储,令存储比例系数为α,则每产生一个区块有αs个节点存储该区块;
[0017](3)为保证每一节点都能获取到区块存储的权利,且机率相等,为每个节点对应一个权重。设β
i
表示权重,即下一次被选中存储区块的重要程度,则β
mi
表示节点m
i
的权重值。
[0018](4)将每个节点的权重β
mi
从大到小排列,每次选取前αs个节点作为下一次存储区块的节点;
[0019]①
开始时联盟链中每个节点的权重都为1,即,β
m1
=β
m2
=...=β
ms
=1表示每个被选中存储区块的概率相等;
[0020]②
若有αs个节点被选中存储区块,设m
i
,m
i+1
,...,m
i+αs
被选中作为某一区块的存储节点,则它们中每一个节点下一次被选中的概率为即其中T
cur
表示当前被选中存储区块的次数;
[0021](5)每个节点在存储区块时,并非将整个区块都存储在自己服务器,而是只存储区块体以及区块头中的Merkle根,即联盟链的每个区块中的区块头及节点存储的区块体都有Merkle根。
[0022]当交易验证和交易溯源时,需要验证的区块和交易在全网广播,同时每个节点向联盟链网络中广播自己存储的区块体的Merkle根,如果某节点的Merkle根与待验证的区块的区块头的Merkle根相同,则在该节点中验证该区块的交易。
[0023]最后应说明的是:以上所述仅为本专利技术的优选实施例而已,并不用于限制本专利技术,尽管参照前述实施例对本专利技术进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本专利技术的内容和原则之内,所作的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种联盟链的数据存储方法,包括储存节点选取,区块存储和交易验证与追溯,其特征在于,经过全网节点验证后的区块,只有联盟链中部分节点存储。2.根据权利要求1所述的一种联盟链的数据存储方法,其特征在于,部分节点存储时,并非将整个区块都存储在自己服务器,而是只存储区块体以及区块头中的Merkle根。3.根据权利要求1所述的一种联盟链的数据存储方法,其特征在于,联盟链中部分节点存储的标准是通过为其设置的权重选择的。4.根据权利要求1所述的一种联盟链的数据存储方法,其特征在于,部分节点存储的选取方法为:设联盟链中有s个节点,m1,m2,...,m
s
,m
i
表示联盟链中的节点;只有联盟链中部分节点存储,令存储比例系数为α,0<α<1;则每产生一个区块有αs个节点存储该区块;为每个节点对应一个权重β
i
,即下一次被选中存储区块的重要程度,则β
mi
表示节点m
i
的权重值;每个节点的权重β
mi
从大到小排列,每次选取前αs个节点作为下一次存储区块的节点。5.根据权利要求1所述的一种联盟链的数据存储方法...

【专利技术属性】
技术研发人员:靳丹何清素李维虎闫晓斌沙孝聪原斌高国庆焦素媛张倩韩庆之张智利郭凯屈志原景楷楠
申请(专利权)人:国网甘肃省电力公司国网甘肃省电力公司嘉峪关供电公司
类型:发明
国别省市:

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

1