CN110166295A - 一种用于判断网络拓扑支持拜占庭容错与否的方法 - Google Patents
一种用于判断网络拓扑支持拜占庭容错与否的方法 Download PDFInfo
- Publication number
- CN110166295A CN110166295A CN201910432372.4A CN201910432372A CN110166295A CN 110166295 A CN110166295 A CN 110166295A CN 201910432372 A CN201910432372 A CN 201910432372A CN 110166295 A CN110166295 A CN 110166295A
- Authority
- CN
- China
- Prior art keywords
- network topology
- node
- failure tolerance
- byzantine failure
- support
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种用于判断网络拓扑支持拜占庭容错与否的方法,该方法通过对网络中的用于处理共识的主机的网络连接拓扑进行分析,计算出该网络拓扑可支持的最大容错数K,然后将该数据与拜占庭容错数F进行比较,如果K大于F,则说明该网络拓扑可以支持拜占庭容错;否则,则说明该网络拓扑无法支持拜占庭容错。通过该方法可以有效的指导区块链网络的搭建,既可以避免建立不必要的连接,简化区块链,尤其是联盟链的部署,又可以防止由于网络连通能力不足,造成系统实际上无法达到拜占庭容错要求,个别主机成为区块链系统的瓶颈。
Description
技术领域
本发明涉及区块链技术,尤其涉及一种用于判断网络拓扑支持拜占庭容错与否的方法。
背景技术
区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改。区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性。通过所有节点共同维护同一个账本,可以保证区块链中的信息无法被篡改,在有节点作恶的情况下仍然可以维护数据的完整性。
区块链又可以细分为公有链,联盟链,私有链。对于不同类型的区块链,使用的共识算法也不尽相同。对于公有链,常用工作量证明等算法来达成共识。但是这类算法效率比较低,对于联盟链和私有链,往往采用经典的拜占庭容错算法,例如PBFT,来保证一致性。这类算法效率高,可以极大的提升区块链系统处理交易的能力。经典的拜占庭容错算法要求使用3*F+1个节点来达到容忍F个节点发生拜占庭错误的效果。这也是理论上的最小值。
在联盟链的使用中,需要对各个组织机构进行组网,只有认证的主机才能够参与到共识中来。但是在组网的过程中,由于不同的组织机构网络管理的方法不同,对网络连接有不同的要求,要求所有主机可以直接相连不太现实,也没有必要。但是,如果主机之间的连接过少,则可能造成某些主机成为关键节点,达不到拜占庭容错要求。于是,分析网络拓扑支持拜占庭容错与否对于保证系统的稳定性和可维护性至关重要。
发明内容
针对现有技术的不足,本发明提出一种用于判断网络拓扑支持拜占庭容错与否的方法,从而为区块链系统的网络设计提供指导意见,具体技术方案如下:
一种用于判断网络拓扑支持拜占庭容错与否的方法,其特征在于,该方法具体包括如下步骤:
S1:接收用户输入的网络中的主机连接信息,生成原始网络拓扑,所述的原始网络拓扑中的节点为网络中的主机,两节点之间的连线表示连接的两台主机可直接通过IP地址进行连接;
S2:将所述的原始网络拓扑中的每个节点都拆成两个节点,分别称为原始节点的入节点和原始节点的出节点,并从所述的原始节点的入节点向所述的原始节点的出节点连接一条容量为1的连线,然后,将所述的原始网络拓扑中的两节点之间的连线拆分成两条有向连线,方向均为从其中一个原始节点的出节点到另一个节点的入节点,容量也均为1,从而形成新的网络拓扑;
S3:计算新的网络拓扑中原始网络拓扑任意两个节点之间最大流量,具体如下:
(1)设原始网络拓扑中的两个节点为A,B,节点A在新的网络拓扑中对应的入节点和出节点分别为A’、A”,节点B在新的网络拓扑中对应的入节点和出节点分别为B’、B”,采用使用Ford-Fulkerson最大流算法计算从A”到B’的最大流量;
(2)对新的网络拓扑中原始网络拓扑的所有节点两两进行以上操作,并记录每次得到的最大流的值,选取所有最大流值中的最小值作为原始网络拓扑中的K值;
S4:比较K值与拜占庭容错数F,如果K大于F,那么该网络拓扑可以支持拜占庭容错;如果K小于等于F,那么该网络拓扑不能支持拜占庭容错。
进一步地,所述的S3中采用Ford-Fulkerson最大流算法过程中,通过深度优先搜索来判断是否存在容量为1的增广路,从而加速最大流的计算。
进一步地,所述的S3中计算完任意两个节点间的最大流量f后,即将其与拜占庭容错数F比较,如果f小于等于F,则提前结束计算,并且给出该网络拓扑不支持拜占庭容错算法的结论。
本发明的有益效果如下:
本发明应用于区块链平台上,为区块链系统的网络设计提供指导意见。本发明的方法可以简明的判断当前的网络能否支持区块链系统要求的拜占庭容错数,避免网络成为区块链系统的瓶颈。也可以间接的指导网络中冗余连接的去除,从而提高区块链系统的稳定性和可维护性。
附图说明
图1是原始网络拓扑图;
图2是新的网络拓扑图;
图3是在新的网络拓扑图中A到F的最大流示意图;
图4是原始网络拓扑中A到F的路径示意图。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施案例仅仅用以解释本发明,并不用于限定本发明。
如图1-4所示,一种用于判断网络拓扑支持拜占庭容错与否的方法,该方法具体包括如下步骤:
S1:接收用户输入的网络中的主机连接信息,生成原始网络拓扑,所述的原始网络拓扑中的节点为网络中的主机,两节点之间的连线表示连接的两台主机可以直接通过IP地址进行连接;
S2:将所述的原始网络拓扑中的每个节点都拆成两个节点,分别称为原始节点的入节点和原始节点的出节点,并从所述的原始节点的入节点向所述的原始节点的出节点连接一条容量为1的连线,然后,将所述的原始网络拓扑中的两节点之间的连线拆分成两条有向连线,方向均为从其中一个原始节点的出节点到另一个节点的入节点,容量也均为1,从而形成新的网络拓扑;
S3:计算新的网络拓扑中原始网络拓扑任意两个节点之间最大流量,具体如下:
(1)设原始网络拓扑中的两个节点为A,B,节点A在新的网络拓扑中对应的入节点和出节点分别为A’、A”,节点B在新的网络拓扑中对应的入节点和出节点分别为B’、B”,采用使用Ford-Fulkerson最大流算法计算从A”到B’的最大流量;
(2)对新的网络拓扑中原始网络拓扑的所有节点两两进行以上操作,并记录每次得到的最大流的值,选取所有最大流值中的最小值作为原始网络拓扑中的K值;
S4:比较K值与拜占庭容错数F,如果K大于F,那么该网络拓扑可以支持拜占庭容错;如果K小于等于F,那么该网络拓扑不能支持拜占庭容错。
优选地,所述的S3中采用Ford-Fulkerson最大流算法过程中,通过深度优先搜索来判断是否存在容量为1的增广路,从而加速最大流的计算。
优选地,所述的S3中计算完任意两个节点间的最大流量f后,即将其与拜占庭容错数F比较,如果f小于等于F,则提前结束计算,并且给出该网络拓扑不支持拜占庭容错算法的结论。
如图1所示,原始网络拓扑是一个无向图,如图1所示,其中的节点A-G表示网络中的主机,边表示对应的两台主机可以直接通过IP地址进行连接;如图2所示,为新的网络拓扑,新的网络拓扑是一个有向图,对比图1和图2可知,将节点A拆成两个节点A’、A”。A’与A”直接连接一条容量为1的边,图1中A到B的边拆成A”到B’与B”到A’两条容量为1的有向边。
图3给出了新的网络拓扑图中A到F的最大流示意图,使用Ford-Fulkerson最大流算法计算从A”到F’的最大流量为1,用加粗线条表示。通过对所有节点两两进行以上操作,记录下每次得到的最大流的值。选取这些最大流值中的最小的值作为原始网络拓扑中的K值,即原始网络拓扑中的K值为1。因为图1中的原始网络拓扑中存在7个节点,F值为节点数减一后除以3再向下取整,为2,因此,K<F,所以该网络拓扑无法支持拜占庭容错数为2的容错算法。例如,当E节点断开,则F,G都无法连接到A节点,网络中不存在连通数为5的子图,无法进行拜占庭共识。
本发明应用于区块链平台上,为区块链系统的网络设计提供指导意见。可以简明的判断当前的网络能否支持区块链系统要求的拜占庭容错数,避免网络成为区块链系统的瓶颈。也可以间接的指导网络中冗余连接的去除,从而提高区块链系统的稳定性和可维护性。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
Claims (3)
1.一种用于判断网络拓扑支持拜占庭容错与否的方法,其特征在于,该方法具体包括如下步骤:
S1:接收用户输入的网络中的主机连接信息,生成原始网络拓扑,所述的原始网络拓扑中的节点为网络中的主机,两节点之间的连线表示连接的两台主机可直接通过IP地址进行连接。
S2:将所述的原始网络拓扑中的每个节点都拆成两个节点,分别称为原始节点的入节点和原始节点的出节点,并从所述的原始节点的入节点向所述的原始节点的出节点连接一条容量为1的连线,然后,将所述的原始网络拓扑中的两节点之间的连线拆分成两条有向连线,方向均为从其中一个原始节点的出节点到另一个节点的入节点,容量也均为1,从而形成新的网络拓扑。
S3:计算新的网络拓扑中原始网络拓扑任意两个节点之间最大流量,具体如下:
(1)设原始网络拓扑中的两个节点为A,B,节点A在新的网络拓扑中对应的入节点和出节点分别为A’、A”,节点B在新的网络拓扑中对应的入节点和出节点分别为B’、B”,采用使用Ford-Fulkerson最大流算法计算从A”到B’的最大流量;
(2)对新的网络拓扑中原始网络拓扑的所有节点两两进行以上操作,并记录每次得到的最大流的值,选取所有最大流值中的最小值作为原始网络拓扑中的K值;
S4:比较K值与拜占庭容错数F,如果K大于F,那么该网络拓扑可以支持拜占庭容错;如果K小于等于F,那么该网络拓扑不能支持拜占庭容错。
2.根据权利要求1所述的用于判断网络拓扑支持拜占庭容错与否的方法,其特征在于,所述的S3中采用Ford-Fulkerson最大流算法过程中,通过深度优先搜索来判断是否存在容量为1的增广路,从而加速最大流的计算。
3.根据权利要求1所述的用于判断网络拓扑支持拜占庭容错与否的方法,其特征在于,所述的S3中计算完任意两个节点间的最大流量f后,即将其与拜占庭容错数F比较,如果f小于等于F,则提前结束计算,并且给出该网络拓扑不支持拜占庭容错算法的结论。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910432372.4A CN110166295B (zh) | 2019-05-23 | 2019-05-23 | 一种用于判断网络拓扑支持拜占庭容错与否的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910432372.4A CN110166295B (zh) | 2019-05-23 | 2019-05-23 | 一种用于判断网络拓扑支持拜占庭容错与否的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110166295A true CN110166295A (zh) | 2019-08-23 |
CN110166295B CN110166295B (zh) | 2021-07-30 |
Family
ID=67632265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910432372.4A Active CN110166295B (zh) | 2019-05-23 | 2019-05-23 | 一种用于判断网络拓扑支持拜占庭容错与否的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110166295B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460484A (zh) * | 2019-10-10 | 2019-11-15 | 杭州趣链科技有限公司 | 一种基于pbft算法改进的单节点异常主动恢复方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017186317A1 (en) * | 2016-10-04 | 2017-11-02 | Nec Europe Ltd. | Method and system for byzantine fault-tolerance replicating of data on a plurality of servers |
CN109165092A (zh) * | 2018-07-10 | 2019-01-08 | 矩阵元技术(深圳)有限公司 | 一种基于有效算力贡献的共识方法、装置及系统 |
WO2019072263A2 (en) * | 2018-11-07 | 2019-04-18 | Alibaba Group Holding Limited | FACILITATION OF BLOCK CHAIN CONSENSUS AND NODE SYNCHRONIZATION FOR PRACTICAL TOLERANCE TO ARBITRARY FAILURES |
CN109684087A (zh) * | 2018-12-17 | 2019-04-26 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
US20190129809A1 (en) * | 2017-11-01 | 2019-05-02 | Vmware, Inc. | Byzantine Fault Tolerance with Verifiable Secret Sharing at Constant Overhead |
-
2019
- 2019-05-23 CN CN201910432372.4A patent/CN110166295B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017186317A1 (en) * | 2016-10-04 | 2017-11-02 | Nec Europe Ltd. | Method and system for byzantine fault-tolerance replicating of data on a plurality of servers |
US20190129809A1 (en) * | 2017-11-01 | 2019-05-02 | Vmware, Inc. | Byzantine Fault Tolerance with Verifiable Secret Sharing at Constant Overhead |
CN109165092A (zh) * | 2018-07-10 | 2019-01-08 | 矩阵元技术(深圳)有限公司 | 一种基于有效算力贡献的共识方法、装置及系统 |
WO2019072263A2 (en) * | 2018-11-07 | 2019-04-18 | Alibaba Group Holding Limited | FACILITATION OF BLOCK CHAIN CONSENSUS AND NODE SYNCHRONIZATION FOR PRACTICAL TOLERANCE TO ARBITRARY FAILURES |
CN109684087A (zh) * | 2018-12-17 | 2019-04-26 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
Non-Patent Citations (2)
Title |
---|
吕伟栋,周学广,袁志民: ""基于树形拓扑结构的拜占庭容错系统设计"", 《通信学报》 * |
董辉,杨金民,张大方: ""拜占庭容错服务的适应性失效检测研究"", 《微电子学与计算机》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460484A (zh) * | 2019-10-10 | 2019-11-15 | 杭州趣链科技有限公司 | 一种基于pbft算法改进的单节点异常主动恢复方法 |
US11841778B2 (en) | 2019-10-10 | 2023-12-12 | Hangzhou Qulian Technology Co., Ltd. | Method and system for active failure recovery of single node improved based on PBFT algorithm, computer device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN110166295B (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5035337B2 (ja) | Vlan通信検査システム、方法、およびプログラム | |
CN103688489B (zh) | 一种策略处理的方法及网络设备 | |
Wu et al. | Entry modes for international markets: Case study of Huawei, a Chinese technology enterprise | |
CN108040055A (zh) | 一种防火墙组合策略及云服务安全防护 | |
CN106452955B (zh) | 一种异常网络连接的检测方法及系统 | |
CN102291455A (zh) | 分布式集群处理系统及其报文处理方法 | |
US7808888B2 (en) | Network fault correlation in multi-route configuration scenarios | |
CN108062243A (zh) | 执行计划的生成方法、任务执行方法及装置 | |
CN112511350A (zh) | 联盟链多级共识方法、设备及存储介质 | |
CN107124365A (zh) | 一种基于机器学习的路由策略的获取系统 | |
Feng et al. | Bound-based network tomography with additive metrics | |
Essid et al. | Combining intrusion detection datasets using MapReduce | |
CN110535697B (zh) | 一种均衡区块链跨域广播网络负载的方法 | |
CN110166295A (zh) | 一种用于判断网络拓扑支持拜占庭容错与否的方法 | |
CN109978547A (zh) | 风险行为控制方法及系统、设备和存储介质 | |
Hellani et al. | Tangle the blockchain: towards connecting blockchain and DAG | |
CN107896165A (zh) | 定位网络故障的方法、装置和自动化测试设备 | |
CN105210335B (zh) | 用于数据分发的网络路由修改 | |
CN110290226A (zh) | 一种通用的客户端和服务端对接接口协议方法 | |
CN109359477A (zh) | 一种数据加密、数据验证方法及其系统 | |
CN103763210A (zh) | 一种基于链路聚合的流量负载分担方法和设备 | |
CN110855541B (zh) | 一种环状网络设备裂环方法及装置 | |
CN112801665A (zh) | 一种基于服务器中继的跨链交易方法及系统 | |
CN106549929B (zh) | 一种apt攻击源头的定位方法及系统 | |
Khebbache et al. | Dynamic placement of extended service function chains: Steiner-based approximation algorithms |
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 |