CN117687578B - 区块链中基于动态分簇的区块协同存储方法、介质及设备 - Google Patents

区块链中基于动态分簇的区块协同存储方法、介质及设备 Download PDF

Info

Publication number
CN117687578B
CN117687578B CN202410143172.8A CN202410143172A CN117687578B CN 117687578 B CN117687578 B CN 117687578B CN 202410143172 A CN202410143172 A CN 202410143172A CN 117687578 B CN117687578 B CN 117687578B
Authority
CN
China
Prior art keywords
cluster
cluster head
node
nodes
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410143172.8A
Other languages
English (en)
Other versions
CN117687578A (zh
Inventor
张佩云
陶帅
陈健
陆克中
马小琴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Information Science and Technology
Original Assignee
Nanjing University of Information Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Information Science and Technology filed Critical Nanjing University of Information Science and Technology
Priority to CN202410143172.8A priority Critical patent/CN117687578B/zh
Publication of CN117687578A publication Critical patent/CN117687578A/zh
Application granted granted Critical
Publication of CN117687578B publication Critical patent/CN117687578B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种区块链中基于动态分簇的区块协同存储方法、介质及设备,区块链中目标动态分簇的簇头节点收集该目标动态分簇的所有非簇头节点的可用空间情况以及获取待存储的区块的交易数目;根据所述所有非簇头节点的可用空间情况确定分包方案,所述分包方案用于从区块中抽出一个或数个交易并入一组,形成若干个组,根据可用空间情况将一个或多个组传输给非簇头节点存储,确保每个组均有非簇头节点来存储,且每个非簇头节点均有组去存储;根据所述分包方案进行分发存储。优点:能够降低节点存储需求、有效利用节点的存储空间,提高了存储效率,本发明可能促进更多节点的参与,增加了区块链网络的去中心化程度,从而提高了整体的安全性和稳定性。

Description

区块链中基于动态分簇的区块协同存储方法、介质及设备
技术领域
本发明涉及一种区块链中基于动态分簇的区块协同存储方法、介质及设备,属于区块链技术领域。
背景技术
区块链是一个集合了分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,其有着广泛的应用前景,但是面临着节点储存限制等问题。在区块链网络中,节点之间需要实时验证和同步区块信息,这就要求节点本身需要较大的存储能力。在这种限制下,节点需要花费更多时间进行验证和同步。因此降低对存储能力的要求,有益于提高区块链的整体效率和节点参与度。
动态分簇模型旨在将部分节点合并为一个簇,区块链中产生的区块信息由一个簇内的节点分别存储,即一个簇内的节点所存储的信息加起来能形成区块链的完整信息。一个簇内的节点分为一个簇头节点和若干个非簇头节点,簇头节点负责存储该簇非簇头节点的信息以及区块的分发验证和存储,非簇头节点负责验证与自己所储存的区块相关联的新区块以及存储区块。如一个节点未加入任何簇,则该节点为独立节点。
传统的动态分簇算法存在的问题:
由于传统的动态分簇算法主要应用于传感器网络而不是区块链网络,例如LEACH协议中所采取的算法,存在以下缺点:
1)簇头的性能随机性较高:决定簇头的算法采取完全的随机方案,并不适用于有区块链网络中具有较大差异的各个节点,传输性能和信任值较低的节点不具备担当簇头的能力。
2)簇头的选择分布随机性较高:同样是由于采取完全的随机方案所产生的问题。不同于传感器网络,区块链网络中节点之间传输区块耗时较大,需要尽可能缩短传输时延,因此簇头的分布需要尽可能照顾到其他节点。
3)簇头采取轮换制:由于区块链网络对簇头要求较高,既需要具有较高的传输效率和信任值,也需要簇头分布均匀化,轮换制进行更换不利于网络的稳定。
发明内容
本发明所要解决的技术问题是克服现有技术的缺陷,提供一种区块链中基于动态分簇的区块协同存储方法、介质及设备。
为解决上述技术问题,本发明提供一种区块链中基于动态分簇的区块协同存储方法,包括:
区块链中目标动态分簇的簇头节点收集该目标动态分簇的所有非簇头节点的可用空间情况以及获取待存储的区块交易数目;
根据所述所有非簇头节点的可用空间情况确定分包方案,所述分包方案用于从区块中抽出一个或数个区块交易并入一组,形成若干个组,根据可用空间情况将一个或多个组传输给非簇头节点存储,确保每个组均有非簇头节点来存储,且每个非簇头节点均有组去存储;
根据所述分包方案进行分发存储。
所述确定分包方案的过程,包括:
根据目标动态分簇I所有的非簇头节点的可用存储空间大小,计算目标动态分簇I中非簇头节点存储空间总和,记为S I ,计算如式(1-6)所示:
(1-6);
式(1-6)中,S i 为节点i的存储空间大小,M I 为目标动态分簇I的非簇头节点集合;
计算目标动态分簇I的空间利用率,记为R I ,计算如式(1-7)所示:
(1-7);
式(1-7)中,S n 为当前簇头节点收到的区块大小,r为所有非簇头节点所存储的区块交易加在一起是簇头节点收到的区块交易的倍数,r为正整数;
计算节点i可存储的区块交易数目,记为T i num ,计算如式(1-8)所示:
(1-8);
式(1-8)中,B为预先设定好的区块交易的大小。
进一步的,所述目标动态分簇的动态调整过程,包括:
在区块链的节点中筛选得到若干个簇头节点;
根据簇头节点建立包含该簇头节点和若干非簇头节的簇;
在区块链中确定好所有簇后,根据预先设定簇成员下限和簇成员上限动态调节各个簇的簇内节点数目。
进一步的,所述在区块链的节点中筛选得到若干个簇头节点,包括:
首先通过式(1-1)计算节点i的性能,记为E i
(1-1);
式(1-1)中,e 1e 2分别表示CPU功率系数和可用存储空间大小系数,取值范围是(0, 1),且e 1+e 2=1,C i * S i * 分别表示节点i的CPU功率和存储空间大小的无量纲化数值,计算方法如式(1-2)和式(1-3)所示:
(1-2);
(1-3);
式(1-2)和式(1-3)中,C i 是节点i的CPU功率,S i 是节点i的存储空间大小,
然后通过式(1-4)筛选出候选集合:
(1-4);
式(1-4)中,候选集合为WP i 为节点i生成的(0,1)随机数,O为候选节点冗余率,p为簇头节点占总节点数的百分比,p∈(0, 1);
确定簇头节点集合,包括以下步骤:
1)计算候选集合W中每个节点各自计算自己与该集合中其他节点的距离;
2)候选集合W中选取任一节点加入集合H,然后将其从候选集合W中删除;
3)最新加入集合H的节点提名距自己最远的候选集合W内的节点,广播至集合H
4)集合H内的节点与步骤 3)广播的节点广播时收到的节点延迟均大于集合H内簇头节点之间的最小传输延迟,则通过,进入步骤5),反之,将其从集合W中删除,进入步骤3);
5)步骤4)中通过的节点加入集合H,并将其从候选集合W中删除;
6)计算集合H的成员数占总节点数的比例,如超过p,进入步骤7),反之,进入步骤3);
7)结束集合H的选取,当前的集合H为簇头节点集合。
进一步的,所述根据簇头节点建立包含该簇头节点和若干非簇头节的簇,包括:
节点当选为簇头节点后,向周围广播消息,消息中包含簇头节点信息及加入该簇的要求;
当其他非簇头节点收到广播消息后,将其保留,经过固定时间后,选取在此期间收到的距离最近的簇头节点,加入该簇头节点对应的簇,并发送含有该非簇头节点的信息的确认加入消息给选中的簇头节点,随后簇头节点决定是否建立连接;
经过固定时间后,发送确认加入信息的节点未与簇头节点建立连接,则向距离第二近的簇头节点发送确认加入信息,以此类推,直至加入任意簇或没有新的簇头节点选择。
进一步的,所述在区块链中确定好所有簇后,根据预先设定簇成员下限和簇成员上限动态调节各个簇的簇内节点数目,包括:
当目标簇中的节点数量超过簇成员上限时,该目标簇的簇头节点与其他簇的簇头节点沟通,获得数个可接收节点的簇头节点名单,将目标簇中离簇头节点最远的节点踢出,使之加入可接收节点的簇头节点名单中与之距离最近的簇头节点,直到目标簇的节点数量在簇成员下限和簇成员上限动态之间,转为正常簇;
当目标簇中的节点数量低于簇成员下限时,该目标簇的簇头节点与其他簇的簇头节点沟通,获得数个可接收的非簇头节点名单,目标簇的簇头节点根据到期距离的大小依次从近到远逐个收入非簇头节点名单内的非簇头节点,直至目标簇成为正常簇。
进一步的,在根据所述分包方案进行分发存储之前,还需进行协同验证,所述协同验证包括:
将待存储的区块交易信息发送给对应分包方案确定的要存储该区块的节点进行区块交易有效性验证,节点验证成功后,将验证结果发送给簇头节点,再由簇头节点根据分包方案进行分发存储。
进一步的,所述目标动态分簇还包括目标簇头节点修复方案,所述目标簇头节点修复方案,包括:
每隔一段时间,簇头节点对与其同属一簇的非簇头节点广播簇内节点信息与存储状态表,如果发生簇头节点宕机或错误事件时,非簇头节点依据之前存储的节点信息与存储状态表重新建立连接,随后由原属于该簇的非簇头节点根据节点的性能进行竞争,选出性能最高的节点作为新的簇头节点。
一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述方法。
一种计算机设备,包括,
一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述方法的指令。
本发明所达到的有益效果包括:
1.降低节点存储需求:通过动态分簇,将节点分组存储,从而降低了每个节点需要存储的信息量。这有助于解决节点本身存储能力不足的问题,提高整个区块链网络的可扩展性。
2.提高存储效率:采用分包方案,将待存储的区块交易组合成若干组,并根据非簇头节点的可用空间情况进行传输。这有助于有效利用节点的存储空间,提高了存储效率。
3.节点参与度提高:通过降低节点对存储空间的要求,本发明可能促进更多节点的参与,增加了区块链网络的去中心化程度,从而提高了整体的安全性和稳定性。
4.自适应性:通过动态分簇模型,能够适应不同节点性能和存储能力的差异。这使得系统更具有灵活性,能够适应不同环境下的区块链网络。
附图说明
图1是簇分布图;
图2是簇分布略图;
图3是区块传输图;
图4是三种簇类示意图;
图5是较大簇正常化示意图;
图6是较小簇正常化示意图;
图7是协同验证方案示意图;
图8是出错修复示意图;
图9是分包方案示意图;
图10是分包分发示意图;
图11是区块占用存储比图。
实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例1,本实施例介绍一种种区块链中基于动态分簇的区块协同存储方法,包括:
区块链中目标动态分簇的簇头节点收集该目标动态分簇的所有非簇头节点的可用空间情况以及获取待存储的区块交易数目;
根据所述所有非簇头节点的可用空间情况确定分包方案,所述分包方案用于从区块中抽出一个或数个区块交易并入一组,形成若干个组,根据可用空间情况将一个或多个组传输给非簇头节点存储,确保每个组均有非簇头节点来存储,且每个非簇头节点均有组去存储;
根据所述分包方案进行分发存储。
本方法首先提出区块链的动态分簇方案,包括簇头选择机制和簇内协作机制,簇内协作机制包括簇的可伸缩性、协同验证方案、出错修复;其次,基于动态分簇设计簇内区块协同存储方案和算法,当簇收到来自邻簇区块后如何在尽可能降低非簇头节点的存储带宽压力下有效地进行协同存储
1、簇头选择机制:
在分簇网络的结构中,簇头的工作需要接受大量信息以及分配验证工作,因此簇头节点需要具有较高性能。又由于设定节点间的距离即为传输时延,距离越远,传输时延越长,因此需要尽可能的保证簇头分散以服务大部分节点。
首先通过式(1-1)计算节点i的性能,记为E i
(1-1);
式(1-1)中,e 1e 2分别表示CPU功率系数和可用存储空间大小系数,取值范围是(0, 1)且e 1+e 2=1,C i * S i * 分别表示节点i的CPU功率和存储空间大小的无量纲化数值,计算方法如式(1-2)和式(1-3)所示:
(1-2);
(1-3);
式(1-2)和式(1-3)中,C i 是节点i的CPU功率,S i 是节点i的存储空间大小,然后通过式(1-4)筛选出候选集合:
(1-4);
式(1-4)中,候选集合为WP i 为节点i生成的(0,1)随机数,O是正整数,是候选节点冗余率,即:候选集内的成员数目应为最终的簇头节点集合H的成员数目的倍数,p∈(0, 1)为簇头节点占总节点数的百分比。这样既可以保证候选集合的成员数量在一定范围内,减少计算成本,又可以保证E i 值高的节点更容易进入候选集合。
为了保证簇头节点集合尽可能分散,需进行以下计算:
1)集合W中每个节点各自计算自己与该集合中其他节点的距离;
2)集合W中选取任一节点加入集合H,然后将其从集合W中删除;
3)最新加入集合H的节点提名距自己最远的集合W内的节点,广播至集合H;
4)集合H内的节点距离收到的节点均较远的,则通过,进入5),反之,将其从集合W中删除,进入3);
5)步骤4)中的节点加入集合H,并将其从集合W中删除;
6)计算集合H的成员数占总节点数的比例,如超过p,进入7),反之,进入3);
7)结束集合H的选取,集合H即为簇头节点集合。
2、簇的初步形成:
节点当选为簇头后,向周围广播消息,消息中包含簇头节点信息及加入该簇的要求。当其他节点收到消息后,将其保留。经过固定时间后,选取在此期间收到的距离最近的簇头节点,加入该簇,并发送含有该节点信息的确认加入的消息给选中的簇头节点,随后簇头节点决定是否建立连接。经过固定时间后,发送确认加入信息的节点未与簇头建立连接,即可向距离第二近的簇头节点发送确认加入信息,以此类推,直至加入任意簇或没有新的簇头节点选择。节点也可以选择不加入任意簇,作为独立节点存在,在本专利中,假设所有节点均加入一个簇,最终形成如图1所示。
图1中,实心黑圆表示簇头节点,空心黑圈表示加入簇的非簇头节点,黑线界定出不同的区域,处于同一区域的节点即隶属于同一个簇。可见簇头节点的分布相对较散,可以照顾到绝大多数非簇头节点。基于图1,簇间的拓扑结构如图2所示。
图2中,圆圈表示各个簇,可得簇A、簇C和簇E拥有两个邻簇,簇B拥有三个邻簇,簇D仅拥有一个邻簇,一个簇与邻簇之间是双向连接,可以互相传输区块信息。假设簇A产生了一个新的区块,图3为可能的传输方向:
图3中,实线表示实际区块传输的方向,虚线表示可用但未使用的传输方向,簇A产生新的区块,先将其传递给簇B,然后传递给簇C,此时,收到区块的簇B传递给簇E,最后簇E传递给簇D,至此所有簇均收到了产生自簇A的区块,完成了一次区块传输。为什么簇A优先传递给簇B而不是簇C,当有多个簇可供传输时如何选择优先传输对象的问题,具体为提出的簇间区块传输算法中给出簇选择的方法。
3、簇内协作机制:
3.1簇的可伸缩性:
当簇内节点数量过多时,簇头节点的负担会较重,节点的存储空间利用率也会较低,同时,当簇内节点数量较少时,节点的空间占用率较高,节点损耗严重。因此,需要动态地调节各个簇的簇内节点数目(V),使其处于一个阈值之内。簇成员阈值判定条件由式(1-5)所示:
(1-5);
式(1-5)中V min V max 由均是簇头节点设置簇成员下限和簇成员上限。由式(1-5)可知,当簇内节点数目大于V max 时,簇为较大簇;当簇内节点数目小于V min 时,簇为较小簇;当簇内节点数目处于V min V max 之间时,簇为正常簇,如图4所示。
图4中,有三个簇:簇A、簇B、簇C。假设三个簇均设置V min =3和V max =4,由此可得:簇A的V=5,是较大簇,簇B的V=3,是正常簇,簇C的V=2,是较小簇。
通过动态调整簇内成员的组成,由此可以改善簇之间的能耗均衡:
1)当出现较大簇情况时,较大簇的簇头节点与其他簇的簇头节点沟通,获得数个可接收节点的簇头名单,簇内距离簇头较远的非簇头节点按一定次序排列,再从簇头节点名单内选择合适的簇头节点并加入该簇头节点所属簇,一个簇从较大簇变为正常簇。图4中,较大簇A与正常簇B沟通,簇B的簇头节点b加入可接收节点的簇头名单,簇A中的非簇头节点h选择簇头节点b加入簇B,簇A由较大簇变成正常簇,如图5所示。
2)当出现较小簇情况时,较小簇的簇头节点与其他簇的簇头节点沟通,获得数个可接收的非簇头节点名单,较小簇的簇头依次逐个收入名单内的非簇头节点,直至较小簇成为正常簇,图4中,较小簇C与正常簇B沟通,簇B的非簇头节点e加入可接收的非簇头节点名单,簇头节点a选择簇B中的非簇头节点e选择加入簇C,簇C由较小簇变成正常簇,如图6所示。
3.2协同验证方案:
由于区块是由每个非簇头节点分别存储的,单一节点并不具备验证来自其他簇的区块的能力,此处提出一个协同验证方案,具体的执行如图7所示。
图7中,箭头表示的是块传输的方向。当簇内节点收到来自其他簇的新区块时,节点需要首先发送给节点所在簇的簇头节点,簇头节点通过存储状态表,选择出具体区别区块高度的最少节点数量,并将区块发给这几个节点进行验证。节点验证成功后,将验证结果发送给簇头节点。
3.3出错修复:
由于簇内的操作执行十分依赖于簇头节点,当簇头节点出现宕机错误或是消极节点时,会对簇的稳定造成非常大的影响,为降低这一问题产生的影响,此处提出一个出错修复方案,具体方法如下:每隔一段时间,簇头节点对与其同属一簇的非簇头节点广播簇内节点信息与存储状态表,如果发生簇头节点宕机或错误事件时,非簇头节点可依据这些信息重新建立连接,随后由原属于该簇的节点进行竞争,选出新的簇头节点,如图8所示。
图8中,簇头节点a对与其同属一簇的非簇头节点b、c、d、e广播簇内节点信息与存储状态表,簇头节点a出现宕机或错误事件,非簇头节点b、c、d、e可依据这些信息重新建立连接,随后由非簇头节点b、c、d、e进行竞争,选出新的簇头节点b。
4、簇内区块协同存储方法研究:
在一个簇中,由簇头节点担当区块的总接受,总分发工作。当非簇头收到一个块后,发送给簇头节点进行分发验证,然后由非簇头节点反馈验证结果,通过后再由簇头节点进行分发存储,本章重点讨论分发存储的过程。
4.1存储方案:
(1)分包步骤:
1)收集该簇非簇头节点的可用空间情况以及收到的区块交易数目,根据可用空间设计分包方案,即有多少个组,每个组可以存放多少个区块交易。
2)按照分包方案从区块中抽出一个或数个区块交易并入一组,最终形成若干个组,每组包含一个或数个区块交易。
3)根据可用空间将一个或多个组传输给非簇头节点存储,确保每个组均有非簇头节点来存储,每个非簇头节点均有组去存储。
(2)具体分包方案:
由于每个区块交易的大小B是设定好的,当簇头节点收到所有该簇非簇头节点的可用存储空间大小后,即可得出簇I中非簇头节点存储空间总和,记为S I ,计算如式(1-6)所示:
(1-6);
式(1-6)中,S i 即为节点i的存储空间大小,M I 为簇I的非簇头节点集合,然后计算簇I的空间利用率,记为R I ,计算如式(1-7)所示:
(1-7);
式(1-7)中,S n 为当前簇头节点收到的区块大小,r为正整数,表示整个簇所存储的区块交易加在一起是簇头节点收到的区块交易的倍数,这里涉及到新引入的机制:冗余存储。为了防止部分节点宕机或长时间不上线等异常原因影响区块的验证、传输工作,因此当一个节点异常时,可以调用其他存有异常节点所存储的区块交易进行验证、传输等工作。具体数值交由簇头本身根据该簇实际情况进行设置。
此后便可计算出非簇头节点i可存储的区块交易数目,记为T i num ,计算如式(1-8)所示:
(1-8);
图9为某一情况下的分包方案,图9中第一行的各个Transaction为区块中的各个区块交易后接其编号,第二行的各个Packet为将要分发给非簇头节点的区块交易包后接其编号,箭头连线表示这个Transaction被存储到某一Packet中,如图9所示,Packet_1存储三个区块交易:Transaction_1、Transaction_2、Transaction_3;Packet_2存储五个区块交易:Transaction_2、Transaction_3、Transaction_4、Transaction_5、Transaction_6;Packet_3存储四个区块交易:Transaction_1、Transaction_4、Transaction_5、Transaction_6。由于每个Transaction都被存储了两次,可见r值设定为2,分发过程如图10所示。
如图10所示,箭头表示区块的传输方向,当簇头节点收到区块之后,簇头节点将区块交易分成三个区块交易包:Packet_1,Packet_2和Packet_3,然后将其发送给对应的非簇头节点存储。
实施例2,与其它实施例基于相同的发明构思,本实施例介绍一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行任一所述方法。
实施例3,与其它实施例基于相同的发明构思,本实施例介绍一种计算机设备,包括,
一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任一所述方法的指令。
实施例4,实验的对比方法是两个比较经典的方法:
Layer-Chain:该方法提出了一种被称为分层链的分层边缘云区块链系统,将设备的长期区块链事务数据由轻和全边缘节点和多个分布式云共同保持为三层继承结构,通过构建层链(Layer-Chain)来减少块传输事件。此外,该方法设计了一种边缘节点分类方法,以有效适应不同边缘节点的计算功率和存储空间的差异。
BlockP2P-EP:该方法提出了一种新的网络协议BlockP2P-EP,将区块链网络的工作流划分为两个阶段。在第一阶段,BlockP2P-E实现了构建信任增强的P2P拓扑的目标。在第二阶段,BlockP2P-EP在考虑非活动节点检测的同时,采用优化的广播算法。
实验指标:
区块占用存储比:记录每个区块协同存储事件发生时,存储区块的节点的使用空间大小占存储空间大小的比例,统计数据得到各个比例分段下的节点数目,第k个比例分段下的节点数目记为Num k ,以尽可能减少问题二带来的影响,Num k 的计算如式(1-9)所示:
(1-9);
式(1-9)中,count()表示计算集合的成员数目,节点i属于区块链网络中的所有节点集合,min k max k 分别表示第k个比例分段的最小值和最大值,例如0%和10%,由此0%-10%可形成一个分段,S i u 表示节点i在区块协同存储事件中所使用空间大小,S i 表示节点i的存储空间大小。
区块占用存储比,如图11所示,因为Layer-Chain方法和本专利方法均设有不存储主要区块信息的节点(Layer-Chain方法中的基础节点和本专利方法中的簇头节点)。由于此外,由于Layer-Chain方法选取区块链网络中存储空间较大或者算力较大的节点存储区块,其余的不存储,因此区块占用存储比均低于60%,BlockP2P-EP方法并没有针对存储空间进行存储安排,所以存在较多区块占用存储比较大的节点。而本专利方法是根据各个节点的存储空间大小针对性的分配区块,因此区块占用存储比分布集中,而且不同于其他两个方法,存储区块的节点仅存储完整区块的部分内容,因此可以使用较小的区块占用存储比即可存储完整的区块信息,即本专利方法的绝大部分节点均只消耗20%-30%的空间,是三者中最好。
本实施例中的具体实验环境:操作系统为Windows 10,处理器为Intel(R) Core(TM) i5-10300H CPU 2.50 GHz,8G运行内存。实验基于Omnet++ 5.4.1模拟器,该模拟器是一个离散事件驱动的仿真模拟器,用来模拟区块链网络中块传输过程,
1)块产生事件:通过生成随机数控制块的产生,当一个节点生成的随机数低于设定好的块产生的概率/>时,视为产生一个块;
2)块传输事件:当节点收到块之后选择传输对象并传输的过程;
3)块存储事件:簇头节点按照方法将区块交易分发给非簇头节点的过程。
实验中涉及的区块交易数量决定了块的大小。在这项发明中,节点的CPU功率和存储空间对于测量节点的容量同样重要。因此,e 1e 2都被设置为0.5。σ 1σ 2、λ1和λ2也是如此,它们分别是传输效率和信任值的系数以及当前和历史信任值的系数。相关参数设置如表1所示:
表1
符号 名称 数值
E i 节点的性能 0.5
e 1 节点CPU功率系数 0.5
e 2 节点可用存储空间大小系数 0.5
O 候选节点冗余率 2
p 为簇头节点占总节点数的百分比 log2(N)
η 区块传输速率 1
d 系数 0.85
N 节点总数 500
α I 0 传输效率初始值 1/N
β I 0 信任值初始值 1/N
λ1 当前信任值系数 0.5
λ2 历史信任值系数 0.5
B 单个区块交易的大小 500 Mb
σ 1 传输效率系数 0.5
σ 2 信任值系数 0.5
T gap 更新间隔时间 1
num Block内含的区块交易数目 300
p b 恶意节点占比 0, 0.8
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (5)

1.一种区块链中基于动态分簇的区块协同存储方法,其特征在于,包括:
区块链中目标动态分簇的簇头节点收集该目标动态分簇的所有非簇头节点的可用空间情况以及获取待存储的区块交易数目;
根据所述所有非簇头节点的可用空间情况确定分包方案,所述分包方案用于从区块中抽出一个或数个区块交易并入一组,形成若干个组,根据可用空间情况将一个或多个组传输给非簇头节点存储,确保每个组均有非簇头节点来存储,且每个非簇头节点均有组去存储;
根据所述分包方案进行分发存储;
所述确定分包方案的过程,包括:
根据目标动态分簇I所有的非簇头节点的可用存储空间大小,计算目标动态分簇I中非簇头节点存储空间总和,记为S I ,计算如式(1-6)所示:
(1-6);
式(1-6)中,S i 为节点i的存储空间大小,M I 为目标动态分簇I的非簇头节点集合;
计算目标动态分簇I的空间利用率,记为R I ,计算如式(1-7)所示:
(1-7);
式(1-7)中,S n 为当前簇头节点收到的区块大小,r为所有非簇头节点所存储的区块交易加在一起是簇头节点收到的区块交易的倍数,r为正整数;
计算节点i可存储的区块交易数目,记为T i num ,计算如式(1-8)所示:
(1-8);
式(1-8)中,B为预先设定好的区块交易的大小;
所述目标动态分簇的动态调整过程,包括:
在区块链的节点中筛选得到若干个簇头节点;
根据簇头节点建立包含该簇头节点和若干非簇头节的簇;
在区块链中确定好所有簇后,根据预先设定簇成员下限和簇成员上限动态调节各个簇的簇内节点数目;
所述在区块链的节点中筛选得到若干个簇头节点,包括:
首先通过式(1-1)计算节点i的性能,记为E i
(1-1);
式(1-1)中,e 1e 2分别表示CPU功率系数和可用存储空间大小系数,取值范围是(0,1),且e 1+e 2=1,C i * S i * 分别表示节点i的CPU功率和存储空间大小的无量纲化数值,计算方法如式(1-2)和式(1-3)所示:
(1-2);
(1-3);
式(1-2)和式(1-3)中,C i 是节点i的CPU功率,S i 是节点i的存储空间大小,
然后通过式(1-4)筛选出候选集合:
(1-4);
式(1-4)中,候选集合为WP i 为节点i生成的(0,1)随机数,O为候选节点冗余率,p为簇头节点占总节点数的百分比,p∈(0, 1);
确定簇头节点集合,包括以下步骤:
1)计算候选集合W中每个节点各自计算自己与该集合中其他节点的距离;
2)候选集合W中选取任一节点加入集合H,然后将其从候选集合W中删除;
3)最新加入集合H的节点提名距自己最远的候选集合W内的节点,广播至集合H
4)集合H内的节点与步骤 3)广播的节点广播时收到的节点延迟均大于集合H内簇头节点之间的最小传输延迟,则通过,进入步骤5),反之,将其从集合W中删除,进入步骤3);
5)步骤4)中通过的节点加入集合H,并将其从候选集合W中删除;
6)计算集合H的成员数占总节点数的比例,如超过p,进入步骤7),反之,进入步骤3);
7)结束集合H的选取,当前的集合H为簇头节点集合;
所述根据簇头节点建立包含该簇头节点和若干非簇头节的簇,包括:
节点当选为簇头节点后,向周围广播消息,消息中包含簇头节点信息及加入该簇的要求;
当其他非簇头节点收到广播消息后,将其保留,经过固定时间后,选取在此期间收到的距离最近的簇头节点,加入该簇头节点对应的簇,并发送含有该非簇头节点的信息的确认加入消息给选中的簇头节点,随后簇头节点决定是否建立连接;
经过固定时间后,发送确认加入信息的节点未与簇头节点建立连接,则向距离第二近的簇头节点发送确认加入信息,以此类推,直至加入任意簇或没有新的簇头节点选择;
所述在区块链中确定好所有簇后,根据预先设定簇成员下限和簇成员上限动态调节各个簇的簇内节点数目,包括:
当目标簇中的节点数量超过簇成员上限时,该目标簇的簇头节点与其他簇的簇头节点沟通,获得数个可接收节点的簇头节点名单,将目标簇中离簇头节点最远的节点踢出,使之加入可接收节点的簇头节点名单中与之距离最近的簇头节点,直到目标簇的节点数量在簇成员下限和簇成员上限动态之间,转为正常簇;
当目标簇中的节点数量低于簇成员下限时,该目标簇的簇头节点与其他簇的簇头节点沟通,获得数个可接收的非簇头节点名单,目标簇的簇头节点根据到期距离的大小依次从近到远逐个收入非簇头节点名单内的非簇头节点,直至目标簇成为正常簇。
2.根据权利要求1所述的区块链中基于动态分簇的区块协同存储方法,其特征在于,在根据所述分包方案进行分发存储之前,还需进行协同验证,所述协同验证包括:
将待存储的区块交易信息发送给对应分包方案确定的要存储该区块的节点进行区块交易有效性验证,节点验证成功后,将验证结果发送给簇头节点,再由簇头节点根据分包方案进行分发存储。
3.根据权利要求1所述的区块链中基于动态分簇的区块协同存储方法,其特征在于,所述目标动态分簇还包括目标簇头节点修复方案,所述目标簇头节点修复方案,包括:
每隔一段时间,簇头节点对与其同属一簇的非簇头节点广播簇内节点信息与存储状态表,如果发生簇头节点宕机或错误事件时,非簇头节点依据之前存储的节点信息与存储状态表重新建立连接,随后由原属于该簇的非簇头节点根据节点的性能进行竞争,选出性能最高的节点作为新的簇头节点。
4.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行权利要求1至3中的任一所述方法。
5.一种计算机设备,其特征在于,包括,
一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至3中的任一所述方法的指令。
CN202410143172.8A 2024-02-01 2024-02-01 区块链中基于动态分簇的区块协同存储方法、介质及设备 Active CN117687578B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410143172.8A CN117687578B (zh) 2024-02-01 2024-02-01 区块链中基于动态分簇的区块协同存储方法、介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410143172.8A CN117687578B (zh) 2024-02-01 2024-02-01 区块链中基于动态分簇的区块协同存储方法、介质及设备

Publications (2)

Publication Number Publication Date
CN117687578A CN117687578A (zh) 2024-03-12
CN117687578B true CN117687578B (zh) 2024-04-16

Family

ID=90137470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410143172.8A Active CN117687578B (zh) 2024-02-01 2024-02-01 区块链中基于动态分簇的区块协同存储方法、介质及设备

Country Status (1)

Country Link
CN (1) CN117687578B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110941682A (zh) * 2019-12-19 2020-03-31 浙江云朵网科技股份有限公司 一种高效安全的去中心化数据链服务与存储方式
WO2020147673A1 (zh) * 2019-01-17 2020-07-23 华为技术有限公司 区块链账本的存储方法及装置
CN112235379A (zh) * 2020-09-30 2021-01-15 电子科技大学 一种区块链底层共享存储方法
CN113452801A (zh) * 2021-09-01 2021-09-28 南京信息工程大学 区块链网络中一种面向块传输的可信节点选择优化方法
CN113573312A (zh) * 2021-07-27 2021-10-29 西安电子科技大学 一种无人机自组织网络的路由安全保护方法及系统
CN114064663A (zh) * 2022-01-17 2022-02-18 武汉研众科技有限公司 一种基于分布式索引的区块链存储方法及系统
WO2022100191A1 (zh) * 2020-11-10 2022-05-19 北京市天元网络技术股份有限公司 一种分布式传感器网络数据融合方法及系统
CN117176736A (zh) * 2023-09-21 2023-12-05 南京信息工程大学 基于近邻节点分簇的区块传输方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020126025A1 (en) * 2018-12-21 2020-06-25 Telefonaktiebolaget Lm Ericsson (Publ) Technique for computing a block in a blockchain network
CN112600699B (zh) * 2020-12-07 2022-04-01 华中科技大学 基于区块链跨链交互的动态覆盖网络拓扑构建方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020147673A1 (zh) * 2019-01-17 2020-07-23 华为技术有限公司 区块链账本的存储方法及装置
CN110941682A (zh) * 2019-12-19 2020-03-31 浙江云朵网科技股份有限公司 一种高效安全的去中心化数据链服务与存储方式
CN112235379A (zh) * 2020-09-30 2021-01-15 电子科技大学 一种区块链底层共享存储方法
WO2022100191A1 (zh) * 2020-11-10 2022-05-19 北京市天元网络技术股份有限公司 一种分布式传感器网络数据融合方法及系统
CN113573312A (zh) * 2021-07-27 2021-10-29 西安电子科技大学 一种无人机自组织网络的路由安全保护方法及系统
CN113452801A (zh) * 2021-09-01 2021-09-28 南京信息工程大学 区块链网络中一种面向块传输的可信节点选择优化方法
CN114064663A (zh) * 2022-01-17 2022-02-18 武汉研众科技有限公司 一种基于分布式索引的区块链存储方法及系统
CN117176736A (zh) * 2023-09-21 2023-12-05 南京信息工程大学 基于近邻节点分簇的区块传输方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"A Novel Block Storage Model for Consortium Blockchains";PeiYun Zhang 等;《IEEE》;20221118;第1437-1442页 *
"Optimized Blockchain Sharding Model Based on Node Trust and Allocation";PeiYun Zhang 等;《IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT》;20230116;第20卷(第3期);第2804-2816页 *
"区块链的分叉应对和存储策略研究";刘兵;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20210115(第2021年第01期);第I138-785页 *
"区块链网络拓扑优化和转发策略设计";霍如 等;《通信学报》;20221226;第43卷(第12期);第89-100页 *

Also Published As

Publication number Publication date
CN117687578A (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
CN111800758B (zh) 基于区块链的无人机蜂群分层共识方法
CN108616596A (zh) 基于动态授权和网络环境感知的区块链自适应共识方法
Pei et al. Blockchain-enabled dynamic spectrum access: cooperative spectrum sensing, access and mining
CN113570357B (zh) 一种动态分层的高效pbft算法
CN112636905B (zh) 基于多角色的可扩展共识机制的系统及方法
Wang et al. Beh-Raft-Chain: a behavior-based fast blockchain protocol for complex networks
CN111078787B (zh) 一种基于随机数映射的区块链共识方法
EP3900287A1 (en) Technique for computing a block in a blockchain network
CN105791443A (zh) 基于分布式集群的直播网站中用户服务提供系统及方法
CN113781218A (zh) 基于特征信任的分组pbft共识算法
CN111093201A (zh) 一种无线传感器网络及其分簇方法
CN114938292B (zh) 一种基于节点可信度的多层次优化pbft共识方法
CN111372296B (zh) 一种无线传感网络路由协议的选举阈值的优化方法
CN110854891A (zh) 一种配电网灾前资源配置方法及系统
CN115460088A (zh) 一种5g电力多业务切片资源分配与隔离方法
Wang et al. A node rating based sharding scheme for blockchain
CN117687578B (zh) 区块链中基于动态分簇的区块协同存储方法、介质及设备
CN113242553B (zh) 一种基于区块链分片的恶意节点检测方法
CN113298668B (zh) 考虑社交网络的移动群智感知用户大规模快速招募方法
CN102624596B (zh) 一种p2p直播覆盖网的可靠性最优树状核心拓扑求解方法
Zhou et al. An improved spectrum trading design based on dynamic credit aggregate-signature blockchain
CN106330774A (zh) 一种微波链路传输业务数据的方法及装置
CN115065689B (zh) 一种基于历史评价的联盟链区块数据存储方法及系统
Tan et al. Inter-overlay cooperation in high-bandwidth overlay multicast
CN118118396A (zh) 一种区块链分簇网络的构建方法、区块协同存储方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant