CN115643008A - 一种基于划分聚类的pbft算法 - Google Patents
一种基于划分聚类的pbft算法 Download PDFInfo
- Publication number
- CN115643008A CN115643008A CN202211213014.2A CN202211213014A CN115643008A CN 115643008 A CN115643008 A CN 115643008A CN 202211213014 A CN202211213014 A CN 202211213014A CN 115643008 A CN115643008 A CN 115643008A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- cluster
- response
- consensus
- 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.)
- Pending
Links
- 238000005192 partition Methods 0.000 title claims abstract description 9
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000000638 solvent extraction Methods 0.000 claims abstract description 4
- 238000002360 preparation method Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 3
- 230000006854 communication Effects 0.000 abstract description 7
- 238000004891 communication Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于划分聚类的PBFT算法,它包括以下步骤:步骤1:采集区块链集群中所有节点的数据,数据包括节点的在共识过程中的响应速度、响应次数比例;步骤2:将节点的响应速度以及响应次数比例作为二维坐标系的两个数据维度,绘制得到节点响应情况分布图;步骤3:输入K‑means++划分聚类算法模型,通过节点的响应情况将集群内所有节点进行聚类划分;步骤4:将划分后的节点分为3种节点簇,分别为Good节点簇、Normal节点簇以及Bad节点簇;步骤5:划分后的三类节点分别参与到PBFT算法的不同共识阶段中,最后共同完成整个共识过程。本发明的目的是为了解决现有的PBFT算法会由于繁杂的通讯过程产生大量的通信开销,从而导致算法的性能大幅下降的技术问题。
Description
技术领域
本发明属于区块链技术领域,具体涉及一种基于划分聚类的PBFT算法。
背景技术
区块链技术作为一种分布式协议,通过数字加密技术实现了分布式系统。共识算法作为区块链中的核心技术之一,能够保证区块链中信息的一致性和集群的稳定性。随着区块链技术的快速发展,对于集群内节点数量的需求越来越大。使得共识算法的安全稳定性以及可扩展性成为了研究的热点问题。
PBFT作为联盟链的中的主流共识算法之一,在得到客户端的消息请求后,如附图2所示,会经过预准备、准备、提交、回复四个共识过程。因其可容纳集群内节点总数1/3的拜占庭节点,保证了系统的稳定性,且由多节点共同完成记账过程,使每个区块都具有最终性。PBFT算法的容错性使其在联盟链中得到了广泛应用,但是在集群内节点数量庞大的情况下,PBFT算法会由于繁杂的通讯过程产生大量的通信开销,从而导致算法的性能大幅下降,体现出了PBFT算法扩展性较差的问题。
例如,在对于PBFT算法的研究中,高娜等人在2021年第11期《计算机应用研究》期刊上发表的《基于网络自聚类的PBFT算法改进》中提出了根据集群的网络结构和系统节点等信息,选定若干种子节点,并以种子节点为中心,对集群内所有节点进行自聚类分组,将整个集群划分为若干个节点簇,并从划分后的不同节点簇内选举出各自的代理人,由各个代理人参与完成共识过程,能够有效提升共识效率。上述方法为了减少参与共识的节点数量,先进行簇内选举,再进行共识过程,增加了共识流程的步骤,且无法筛选出集群内共识效率低、或是宕机节点,在集群节点数量庞大的情况下,无法保证系统的稳定性。
因此PBFT算法的可扩展性问题并未得到彻底解决,且大数量的集群环境是不可避免的发展趋势。关于如何在保证集群稳定性的基础上提升算法的共识效率和稳定扩展性,
发明内容
本发明的目的是为了解决现有的PBFT算法会由于繁杂的通讯过程产生大量的通信开销,从而导致算法的性能大幅下降,这样存在PBFT算法扩展性较差的技术问题。
一种基于划分聚类的PBFT算法,它包括以下步骤:
步骤1:采集区块链集群中所有节点的数据,数据包括节点的在共识过程中的响应速度、响应次数比例;
步骤2:将节点的响应速度以及响应次数比例作为二维坐标系的两个数据维度,绘制得到节点响应情况分布图;
步骤3:输入K-means++划分聚类算法模型,通过节点的响应情况将集群内所有节点进行聚类划分;
步骤4:将划分后的节点分为3种节点簇,分别为Good节点簇、Normal节点簇以及Bad节点簇;
步骤5:划分后的三类节点分别参与到PBFT算法的不同共识阶段中,最后共同完成整个共识过程。
在步骤2中,二维坐标系中两个数据维度的定义如下:
将节点响应次数比例作为二维坐标系的x轴,且响应次数比例M满足公式: MGoodi为Good节点簇中任一节点i的响应次数比例,MNormali为Normal节点簇中任一节点i的响应次数比例,MBadi为Bad节点簇中任一节点i的响应次数比例。其中T为集群已经历的共识周期数,该节点在T个周期中参与了准备过程的次数为pi、参与了提交过程的次数为ci、参与了回复过程的次数为ri。
将节点的响应速度作为二维坐标系的y轴,并根据节点响应客户端或主节点信息的耗时来定义节点的响应速度,以n次响应速度的均值来表示该节点的响应速度V满足公式:V表示该节点的响应速度,其中,该节点的第i次的响应耗时时长为ti,并使用其倒数值表示节点单次的响应速度,若该节点在一个周期内的响应次数为n,将节点n次的响应速度求和后除以响应次数,得到n次响应速度的平均值V。
在步骤3中,将集群内所有节点进行聚类划分,采用以下步骤:
步骤1):定义最终期望得到的节点簇数量n(n>=3);
步骤2):K-means++将自主选择聚类中心点,并且按照远点优先原则选择其余的n-1个聚类中心点。
在步骤4中,在将划分后的节点分为3种节点簇时,采用以下步骤:
步骤1):根据二维坐标系中的节点簇划分结果,得到n个节点的聚类中心点坐标;
步骤2):对比得到一个与坐标系原点欧式距离最远的聚类中心点,作为Good节点簇的聚类中心;
步骤3):对比得到一个与坐标系原点欧氏距离最近的聚类中心点,作为Bad节点簇的聚类中心;
步骤4):剩下的节点簇为Normal节点簇。
Good节点簇表示一部分积极响应,且响应速度较快的节点;Normal节点簇表示大部分参与共识过程,表现平常的节点;Bad节点簇表示一部分消极参与共识,且响应速度慢的节点,存在恶意节点的概率更大。
在步骤5中,三类节点分别参与到PBFT算法的不同共识阶段中,以共同完成整个共识过程,包括以下步骤:
步骤1):Good节点从选举过程就参与到PBFT共识过程中,即在集群接收到客户端的消息请求后,从Good节点中选取一个主节点开始预准备和准备过程,所有的Good节点都将参与共识的全过程;
步骤2):Normal节点簇在提交阶段参与到共识过程,辅助信息的验证和转发,并参与回复过程;
步骤3):Bad节点簇在集群达成共识的回复过程参与共识,被动更新节点的本地日志,并向客户端发送回复信息;最终完成共识过程。
与现有技术相比,本发明具有如下技术效果:
1)本发明可根据集群内节点数量的变化,或者最终想得到的聚类结果,动态调整K-means++算法的初始聚类中心点的数值。使本方法具有更好的适应性;
2)本发明可根据需求更改不同级的节点参与共识过程的阶段,可以使算法具有更好的随机性或稳定性。
附图说明
下面结合附图和实施例对本发明作进一步说明:
图1为本发明的结构示意图;
图2为现有技术中PBFT共识阶段图;
图3为本发明的共识效率实验对比图。
具体实施方式
如图1所示,一种基于划分聚类的PBFT算法,其特征在于,它包括以下步骤:
步骤1:采集区块链集群中所有节点的数据,数据包括节点的在共识过程中的响应速度、响应次数比例;
步骤2:将节点的响应速度以及响应次数比例作为二维坐标系的两个数据维度,绘制得到节点响应情况分布图;
步骤3:输入K-means++划分聚类算法模型,通过节点的响应情况将集群内所有节点进行聚类划分;
步骤4:将划分后的节点分为3种节点簇,分别为Good节点簇、Normal节点簇以及Bad节点簇;
步骤5:划分后的三类节点分别参与到PBFT算法的不同共识阶段中,最后共同完成整个共识过程。
在步骤2中,二维坐标系中两个数据维度的定义如下:
将节点响应次数比例作为二维坐标系的x轴,且响应次数比例M满足公式: MGoodi为Good节点簇中任一节点i的响应次数比例,MNormali为Normal节点簇中任一节点i的响应次数比例,MBadi为Bad节点簇中任一节点i的响应次数比例。其中T为集群已经历的共识周期数,该节点在T个周期中参与了准备过程的次数为pi、参与了提交过程的次数为ci、参与了回复过程的次数为ri。
将节点的响应速度作为二维坐标系的y轴,并根据节点响应客户端或主节点信息的耗时来定义节点的响应速度,以n次响应速度的均值来表示该节点的响应速度V满足公式:V表示该节点的响应速度,其中,该节点的第i次的响应耗时时长为ti,并使用其倒数值表示节点单次的响应速度,若该节点在一个周期内的响应次数为n,将节点n次的响应速度求和后除以响应次数,得到n次响应速度的平均值V。
在步骤3中,将集群内所有节点进行聚类划分,采用以下步骤:
步骤1):定义最终期望得到的节点簇数量n(n>=3);
步骤2):K-means++将自主选择聚类中心点,并且按照远点优先原则选择其余的n-1个聚类中心点。
在步骤4中,在将划分后的节点分为3种节点簇时,采用以下步骤:
步骤1):根据二维坐标系中的节点簇划分结果,得到n个节点的聚类中心点坐标;
步骤2):对比得到一个与坐标系原点欧式距离最远的聚类中心点,作为Good节点簇的聚类中心;
步骤3):对比得到一个与坐标系原点欧氏距离最近的聚类中心点,作为Bad节点簇的聚类中心;
步骤4):剩下的节点簇为Normal节点簇。
在本发明中,Good节点簇表示一部分积极响应,且响应速度较快的节点;Normal节点簇表示大部分参与共识过程,表现平常的节点;Bad节点簇表示一部分消极参与共识,且响应速度慢的节点,存在恶意节点的概率更大。
在步骤5中,三类节点分别参与到PBFT算法的不同共识阶段中,以共同完成整个共识过程,包括以下步骤:
步骤1):Good节点从选举过程就参与到PBFT共识过程中,即在集群接收到客户端的消息请求后,从Good节点中选取一个主节点开始预准备和准备过程,所有的Good节点都将参与共识的全过程;
步骤2):Normal节点簇在提交阶段参与到共识过程,辅助信息的验证和转发,并参与回复过程;
步骤3):Bad节点簇在集群达成共识的回复过程参与共识,被动更新节点的本地日志,并向客户端发送回复信息;最终完成共识过程。
本发明针对PBFT算法的效率以及可稳定扩展性问题提出了一种基于划分聚类的优化PBFT共识算法。在PBFT的算法流程开始前,先通过K-means++划分聚类算法对集群内所有节点进行划分并分级,选择划分后的不同聚类的节点簇去参与PBFT共识的不同过程中,能够减少各共识过程中参与的节点数量,降低通信开销;并能提升参与共识的节点质量,提升共识效率;从而让集群能够在PBFT保证集群稳定性的前提下,容纳更多的节点数量,使算法具有更好的可扩展性。
实施例:
本发明在windows系统中使用Golang语言模拟了一个具有100个节点的区块链实验环境,在记录所有节点的相应情况数据后,本发明将K-means++划分聚类模型的n值定义为4,得到了聚类后的4个节点簇,并将距坐标原点欧氏距离最远的节点簇定义为Good节点簇,将距坐标原点欧氏距离最近的节点簇定义为Bad节点簇,其余两个节点簇为Normal节点簇。
使得不同的节点簇分别参与到不同的共识阶段中,且比较了100个节点的集群环境,通过改进后算法和原PBFT算法完成20个共识周期的耗时,实验结果如图3所示。通过比较可知,改进后的共识算法(实验中称为KPBFT)在PBFT的基础上,共识效率平均提升了40%。
本发明结合了PBFT算法和K-means++划分聚类算法,在共识过程开始前,先对集群内的节点进行评级划分。使分级后的节点分别参与到共识过程的不同阶段中。提升了共识算法的效率和可扩展性。
Claims (6)
1.一种基于划分聚类的PBFT算法,其特征在于,它包括以下步骤:
步骤1:采集区块链集群中所有节点的数据,数据包括节点的在共识过程中的响应速度、响应次数比例;
步骤2:将节点的响应速度以及响应次数比例作为二维坐标系的两个数据维度,绘制得到节点响应情况分布图;
步骤3:输入K-means++划分聚类算法模型,通过节点的响应情况将集群内所有节点进行聚类划分;
步骤4:将划分后的节点分为3种节点簇,分别为Good节点簇、Normal节点簇以及Bad节点簇;
步骤5:划分后的三类节点分别参与到PBFT算法的不同共识阶段中,最后共同完成整个共识过程。
2.根据权利要求1所述的算法,其特征在于,在步骤2中,二维坐标系中两个数据维度的定义如下:
将节点响应次数比例作为二维坐标系的x轴,且响应次数比例M满足公式: MGoodi为Good节点簇中任一节点i的响应次数比例,MNormali为Normal节点簇中任一节点i的响应次数比例,MBadi为Bad节点簇中任一节点i的响应次数比例,其中T为集群已经历的共识周期数,该节点在T个周期中参与了准备过程的次数为pi、参与了提交过程的次数为ci、参与了回复过程的次数为ri;
3.根据权利要求1所述的算法,其特征在于,在步骤3中,将集群内所有节点进行聚类划分,采用以下步骤:
步骤1):定义最终期望得到的节点簇数量n(n>=3);
步骤2):K-means++将自主选择聚类中心点,并且按照远点优先原则选择其余的n-1个聚类中心点。
4.根据权利要求1所述的算法,其特征在于,在步骤4中,在将划分后的节点分为3种节点簇时,采用以下步骤:
步骤1):根据二维坐标系中的节点簇划分结果,得到n个节点的聚类中心点坐标;
步骤2):对比得到一个与坐标系原点欧式距离最远的聚类中心点,作为Good节点簇的聚类中心;
步骤3):对比得到一个与坐标系原点欧氏距离最近的聚类中心点,作为Bad节点簇的聚类中心;
步骤4):剩下的节点簇为Normal节点簇。
5.根据权利要求1至4其中之一所述的算法,其特征在于,Good节点簇表示一部分积极响应,且响应速度较快的节点;Normal节点簇表示大部分参与共识过程,表现平常的节点;Bad节点簇表示一部分消极参与共识,且响应速度慢的节点,存在恶意节点的概率更大。
6.根据权利要求1至4其中之一所述的算法,其特征在于,在步骤5中,三类节点分别参与到PBFT算法的不同共识阶段中,以共同完成整个共识过程,包括以下步骤:
步骤1):Good节点从选举过程就参与到PBFT共识过程中,即在集群接收到客户端的消息请求后,从Good节点中选取一个主节点开始预准备和准备过程,所有的Good节点都将参与共识的全过程;
步骤2):Normal节点簇在提交阶段参与到共识过程,辅助信息的验证和转发,并参与回复过程;
步骤3):Bad节点簇在集群达成共识的回复过程参与共识,被动更新节点的本地日志,并向客户端发送回复信息;最终完成共识过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213014.2A CN115643008A (zh) | 2022-09-30 | 2022-09-30 | 一种基于划分聚类的pbft算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213014.2A CN115643008A (zh) | 2022-09-30 | 2022-09-30 | 一种基于划分聚类的pbft算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115643008A true CN115643008A (zh) | 2023-01-24 |
Family
ID=84941077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211213014.2A Pending CN115643008A (zh) | 2022-09-30 | 2022-09-30 | 一种基于划分聚类的pbft算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115643008A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117668576A (zh) * | 2023-11-22 | 2024-03-08 | 太极计算机股份有限公司 | 一种分层聚类共识构架的逻辑处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112599249A (zh) * | 2020-11-03 | 2021-04-02 | 浙江树人学院(浙江树人大学) | 一种基于信用等级划分的医疗数据安全共识方法 |
WO2021082863A1 (zh) * | 2019-10-30 | 2021-05-06 | 深圳前海微众银行股份有限公司 | 一种共识节点的评估方法及装置 |
CN114448997A (zh) * | 2022-01-04 | 2022-05-06 | 中国人民武装警察部队工程大学 | 一种基于pbft的装备质量信息管理节点共识方法 |
-
2022
- 2022-09-30 CN CN202211213014.2A patent/CN115643008A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021082863A1 (zh) * | 2019-10-30 | 2021-05-06 | 深圳前海微众银行股份有限公司 | 一种共识节点的评估方法及装置 |
CN112599249A (zh) * | 2020-11-03 | 2021-04-02 | 浙江树人学院(浙江树人大学) | 一种基于信用等级划分的医疗数据安全共识方法 |
CN114448997A (zh) * | 2022-01-04 | 2022-05-06 | 中国人民武装警察部队工程大学 | 一种基于pbft的装备质量信息管理节点共识方法 |
Non-Patent Citations (1)
Title |
---|
尚新;赵鹏;: "一种基于层次化聚类学习的区块链共识方法", 信息技术与信息化, no. 09, 25 September 2018 (2018-09-25) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117668576A (zh) * | 2023-11-22 | 2024-03-08 | 太极计算机股份有限公司 | 一种分层聚类共识构架的逻辑处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Guo et al. | Cloud resource scheduling with deep reinforcement learning and imitation learning | |
CN112235344B (zh) | 一种面向分布式机器学习的稀疏通信模型的实现方法 | |
CN113708969B (zh) | 一种基于深度强化学习的云数据中心虚拟网络的协同嵌入方法 | |
Huang et al. | Enabling DNN acceleration with data and model parallelization over ubiquitous end devices | |
CN114938292B (zh) | 一种基于节点可信度的多层次优化pbft共识方法 | |
CN111512332B (zh) | 一种联盟链共识下满足分区容忍性的拓扑构造方法及系统 | |
CN115643008A (zh) | 一种基于划分聚类的pbft算法 | |
CN111858033A (zh) | 基于集群和多进程的负载均衡方法 | |
CN111478795A (zh) | 一种基于混合拜占庭容错的联盟区块链网络共识方法 | |
CN117785490B (zh) | 一种图神经网络模型的训练架构、方法、系统及服务器 | |
Iotti et al. | Infection dynamics on spatial small-world network models | |
Baresi et al. | Open challenges in federated machine learning | |
CN111695701B (zh) | 基于联邦学习实现数据集构建处理的系统及其构建生成方法 | |
Zhou et al. | Towards efficient asynchronous federated learning in heterogeneous edge environments | |
Duan et al. | Lightweight federated reinforcement learning for independent request scheduling in microgrids | |
CN113746859B (zh) | 一种高网络性能与安全性的vaPBFT区块链共识方法 | |
Sha et al. | Optimizing data placement of mapreduce on ceph-based framework under load-balancing constraint | |
CN110597809B (zh) | 一种支持树状数据结构的一致性算法系统及其实现方法 | |
CN107911245A (zh) | 一种芯弹性光网络中虚拟网络映射模型及算法 | |
Guo et al. | Tree learning: Towards promoting coordination in scalable multi-client training acceleration | |
Jiang et al. | An asynchronous ADMM algorithm for distributed optimization with dynamic scheduling strategy | |
CN114595052A (zh) | 一种基于图分割算法的分布式通信负载均衡方法 | |
Wan et al. | Smart Contract Service Optimization in Blockchain-Cloud Collaborative Computing | |
CN111767567A (zh) | 社交信息安全管理方法 | |
CN110704693A (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 |