CN112527647A - 基于NS-3的Raft共识算法测试系统 - Google Patents

基于NS-3的Raft共识算法测试系统 Download PDF

Info

Publication number
CN112527647A
CN112527647A CN202011479646.4A CN202011479646A CN112527647A CN 112527647 A CN112527647 A CN 112527647A CN 202011479646 A CN202011479646 A CN 202011479646A CN 112527647 A CN112527647 A CN 112527647A
Authority
CN
China
Prior art keywords
raft
node
application
consensus algorithm
message
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
Application number
CN202011479646.4A
Other languages
English (en)
Other versions
CN112527647B (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202011479646.4A priority Critical patent/CN112527647B/zh
Publication of CN112527647A publication Critical patent/CN112527647A/zh
Application granted granted Critical
Publication of CN112527647B publication Critical patent/CN112527647B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于NS‑3的Raft共识算法测试系统,包括NS‑3网络模拟平台,多个应用节点以及用于管理应用节点与NS‑3网络模拟平台通信的远程通信子系统;每个应用节点包括实现测试Raft共识算法的基础组件,包括Raft状态机单元、Raft内核单元、日志存储单元,Raft状态机单元用于管理Raft共识算法在应用节点中的运行状态,Raft内核单元用于执行Raft共识算法完成共识内容,构造和处理交互消息,同时测试Raft共识算法执行的安全性和正确性,日志存储单元用于存储应用节点工作产生的日志;NS‑3网络模拟平台用于实现应用节点之间的消息传输。以实现对Raft共识算法的共识计算和灵活测试。

Description

基于NS-3的Raft共识算法测试系统
技术领域
本发明属于软件开发与测试技术领域和区块链领域,具体涉及一种基于NS-3的Raft共识算法测试系统。
背景技术
物联网借助互联网发展的技术,将物理世界的传感器、基础设施等以往不属于网络终端的设备连接起来,让越来越多的设备能够加入计算机通信网络。物联网群组的节点数目往往非常庞大,使用传统的分布式系统研究方法诸如使用虚拟机、Docker容器或者多台物理主机难以满足研究需求。
2013年,Ongaro等人提出Raft共识算法,解决了多年来(multi-)Paxos算法协议复杂、难以理解、不能在工程上直接实现的弊病,也比区块链中采用的工作量证明或权益证明的简单协议更高效、节能。2019年EBay正式开源发布开发的Raft算法实现NuRaft。Raft凭借其对公司内部大型服务器提供的快速、高效的共识能力得到了大公司的青睐。但是,分布式系统的测试往往是需要耗费巨大的人力、物力和财力的,因此希望能够使用计算机网络模拟器,在软件层面完成对共识算法的测试。
NS-3网络模拟器是一款用C++语言编写的开源项目,可以让人们在一台计算机中搭建出不同模型和类型的网络,从而以一种经济的方式模拟物理网络环境。大体上来讲,计算机网络的模拟可以分为两个部分:(1)由若干节点和连接这些节点的信道所组成的网络拓扑;(2)运行在节点和信道的网络协议。NS-3使用了一种称为离散事件的模拟技术,把物理世界中一个连续的过程抽象成了虚拟世界中一系列离散的事件,这种技术使得NS-3可以非常逼真地模拟物理世界中的各种网络协议。自2008年创始以来,先后有两百多名开发者参与开发,现在NS-3已经支持应用层的各种分组产生器、传输层的TCP和UDP、网络层的IPv4和IPv6协议、链路层和物理层的PPP、IEEE 802.11a/b/g/n和LTE协议等。
共识算法通常用于分布式、去中心化的群组节点针对某个事项达成一致,这在物联网、工业控制系统中有着广泛应用前景。然而传统系统设计并未实现高效、安全的共识方案,因此也制约了分布式架构在这些场景下的充分运用。如果能将区块链协议中的相关共识算法,提取、优化后运用于群组节点的通信,则能够实现传统技术无法比拟的优势,可以为系统提供更强大的容错能力和鲁棒性。
区块链协议中包含很多不同的共识算法,它们大多侧重共识过程中的安全行,往往会带来极大的计算量、工作量,这对于物联网等计算能力弱的分布式群组来说是难以适应的。此外物联网分布式应用环境与电子货币等主流的应用场景也不同,前者是限制在特定范围内、部分可控的,而后者则是完全开放的环境,因此在选择共识算法时的偏好也不同,在部分可控的情况下,可以使用更加注重效率而非一味准求安全的算法。
在对各种共识算法进行测试时,传统的思路一般是使用物理的服务器,或者基于比较新型的云计算平台,通过虚拟主机模拟节点直接的通信过程。然而由于物联网节点的规模一般成百上千,无论是物理服务器还是云平台,它们本身的运行都会带来极大的资源消耗,这对于大规模的集群是不显示的。如果能够使用轻量级的网络模拟平台,每台主机简化为逻辑上的通信节点,这样就可以关注协议的本身,无需考虑资源的问题。
诸如NS-3之类的传统网络模拟平台,其提供的网络模块大多都是基于传统网络模型,对于区块链相关的网络协议基本没有全面支持或基本兼容,这就给在这类平台上实现、测试各类共识算法带来了一定的难度。如果能够适当修改这些传统平台的底层架构,在基础功能之上加入各类共识算法的基础组件,就可以方便、灵活地对Raft共识算法进行实现和测试,从而进一步获得最优的效果。
发明内容
鉴于上述,本发明的目的是提供一种基于NS-3的Raft共识算法测试系统,以实现对Raft共识算法的灵活测试。
为实现上述发明目的,本发明提供以下技术方案:
一种基于NS-3的Raft共识算法测试系统,包括NS-3网络模拟平台,挂载在所述NS-3网络模拟平台上的多个能够实现Raft共识算法测试的应用节点,以及用于管理应用节点与NS-3网络模拟平台通信的远程通信子系统;
每个应用节点包括实现测试Raft共识算法的基础组件;其中,基础组件包括Raft状态机单元、Raft内核单元、日志存储单元,Raft状态机单元用于管理Raft共识算法在应用节点中的运行状态,Raft内核单元用于执行Raft共识算法完成共识内容,构造和处理交互消息,同时测试Raft共识算法执行的安全性和正确性,日志存储单元用于存储所有基础组件工作产生的日志;
NS-3网络模拟平台作为通信网络用于实现应用节点之间的消息传输。
与现有技术相比,本发明至少包括以下技术效果:
本发明提供的NS-3的Raft共识算法测试系统,通过在NS-3网络模拟平台上挂载多个实现Raft共识算法测试的应用节点,为每个应用节点设置实现测试Raft共识算法的基础组件,以在NS-3网络模拟平台灵活提供的网络环境中实现Raft共识算法的共识和测试,测试灵活,成本低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是本发明实施例提供的基于NS-3的Raft共识算法测试系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
图1是本发明实施例提供的基于NS-3的Raft共识算法测试系统的结构示意图。如图1所示,该基于NS-3的Raft共识算法测试系统包括NS-3网络模拟平台,挂载在所述NS-3网络模拟平台上的多个能够实现Raft共识算法测试的应用节点,以及用于管理应用节点与NS-3网络模拟平台通信的远程通信子系统,NS-3网络模拟平台作为通信网络用于实现应用节点之间的消息传输。
分布式的每个应用节点用于执行Raft共识算法并对测试Raft共识算法在网络环境中测试安全性和准确性。要想让Raft共识算法能够正常运行在NS-3网络模拟平台上,就必须对Raft共识算法的核心内容进行实现,实现内容包括2部分,第一部分由数据封装、日志、调试等组成的外围支持组件,他们负责为Raft算法的实现提供数据管理、日志收集等基础的支撑。该部分要负责为系统建立稳定并合理的网络连接,作为节点间通信的基础信道,同时还要自动地将算法生成的数据以合适的形式封装起来,以保证传输过程中的稳定可靠,最后还需要为系统的调试提供必要的日志数据。第二部分是Raft状态机和Raft内核,作为整个算法的核心实现,提供共识算法的基本功能,由它来负责解析收到的各种通信消息,并对这些消息做出响应,以推动共识过程的进行,它是基于日志记录实现的,支持提交、预提交、创建快照、应用快照、回滚等多种基本的操作,以适应各种不同的业务逻辑。此外,还为Raft共识算法的实现预留与NS-3网络模拟平台相对应的网络接口,才能保证Raft共识算法的正常运行。
实施例中,每个应用节点实现Raft共识算法的基础组件包括Raft状态机单元、Raft内核单元、日志存储单元。Raft状态机单元用于管理Raft共识算法在应用节点中的运行状态。Raft内核单元用于执行Raft共识算法完成共识内容,构造和处理交互消息,同时测试Raft共识算法执行的安全性和正确性。日志存储单元用于存储所有基础组件工作产生的日志。
Raft状态机单元提供Raft共识算法实现对应的状态机来管理Raft共识算法在应用节点中的运行状态。其中,运行状态包括提交状态、预提交状态、回滚状态、创建快照状态以及应用快照状态,每个状态的作用详见表1。
表1 Raft共识算法的运行状态
Figure BDA0002837026540000051
Figure BDA0002837026540000061
当应用节点支持Raft状态机之后,一方面节点在与NS-3网络模拟平台交互时可以只关心网络通信的过程,无需关注具体的业务逻辑,另一方面集群节点上可以实现各种简单或复杂的业务逻辑,而无需关注Raft共识的网络细节。
Raft内核单元包含了对Raft共识算法的核心实现,状态机的所有操作最终还是会通过内核的功能进行完成,即不管是处理请求消息,还是构造响应消息,都是由Raft内核单元的算法实现。算法的基本流程为:
所述Raft内核单元执行Raft共识算法时,每个应用节点具有三种状态,分别为跟随者(Follower)、候选者(Candidate)以及领导者(Leader);开始时,所有应用节点处于跟随者状态,每个跟随者启动一个计时器,在超时后还未收到领导者发来的心跳(追加消息)响应遍进入候选者状态;
候选者发起一轮新竞选,向周围应用节点发送包含当前任期的投票请求消息,每个跟随者对比请求消息包含的任期(即消息中的优先级)与当前保存的目标任期,如果消息内任期更高就支持候选者竞选,候选者收到超过半数的跟随者的投票后就成为领导者,否则就退出领导者竞选;
领导者每隔一定时间会向所有其他应用节点发送心跳,同时与应用客户交互完成相应任务,即为客户处理可复制状态机的控制请求,客户通过指令与领导者交互,领导者为收到的客户请求消息增加当前任期和一个索引值,索引值用来唯一确定指令在应用节点日志中的位置;领导者接下来尝试将这一条指令复制到严格多数的其他应用节点上,如果复制是成功的,这条指令就被提交执行,在领导者的Raft内核单元上执行并将结果返回给客户。
日志存储单元是应用节点保存工作数据的关键单元,即便服点宕机或故障,只要日志均保存完好,重启后依然可以恢复状态机的状态。为了实现更加灵活的日志存储方式,平台提供了可以供节点自定义的日志存储接口,同时也内置了内存存储、普通文件存储、分布式文件存储等常见的方式。日志存储单元包括空间管理功能,读写功能以及日志压缩和解压功能。读写功能包括追加功能,末尾读取功能,指定写功能,集合读取功能,随机读取功能,具体功能说明详见表2。
表2日志存储单元的功能说明
Figure BDA0002837026540000071
Figure BDA0002837026540000081
远程通信子系统是应用节点与NS-3网络模拟平台的通信单元,利用远程通信子系统,应用节点的状态机才能在NS-3的网络环境中收发消息,从而将Raft共识算法于计算机网络统一起来,实现整个系统的完整流程。通信管理子系统负责实现NS-3应用(也就是应用节点)和NS-3网络模拟平台的对接,用于将NS-3应用产生的数据封装成平台可以传递的数据包,同时将从其他节点接收的数据解包后交给上层的应用使用,以完成整个共识过程。在收发系统消息的工程中,该部分会自动根据协议的需要将消息封装成各种类别,以供核心算法的逻辑使用。
具体地,远程通信子系统具有创建通信接口功能和发送消息功能;具体功能说明详见表3。
表3远程通信子系统的功能
Figure BDA0002837026540000082
通信消息采用JSON格式,其基本格式包括优先级、消息类别、源应用节点编号、目标应用节点编号、前序消息优先级、前序消息编号、提交编号以及消息内容,具体说明如表4所示。
表4通信消息格式说明
Figure BDA0002837026540000083
Figure BDA0002837026540000091
请求消息类型以及响应消息类型说明如表5和表6所示。
表5请求消息类型的功能说明
类别 功能
1 用于在应用节点欲成为候选节点时,向其他应用节点请求投票
2 用于应用节点在收到1类消息时,对是否支持竞选的响应
3 用于领导节点发送心跳消息或状态机指令,是最常用的消息
4 用于应用节点在收到3类消息时,发送响应
5 用于客户发送状态指令,或跟随节点转发指令
6 用于新应用节点向Raft集群申请加入
7 用于领导节点对收到的6类消息进行响应
8 用于应用节点退出集群的请求
9 用于领导节点对收到的8类消息进行响应
表6响应消息类型的功能说明
Figure BDA0002837026540000092
Figure BDA0002837026540000101
Raft内核中生成的各种消息,需要经过封装之后才能发送出去。实施例提供的应用节点还包括数据封装单元,用于对Raft内核单元产生的各种消息进行封装。由于这些消息本身已经采用JSON格式进行标识,因此可以很容易将其转换成标准的字符流,但应用节点还需要对其进行进一步处理,才能保证发送过程的高效,具体的封装处理过程包括:采用ZIP压缩,减小消息的体积,然后将压缩的字节留使用BASE64编码重新转换为字符流。
实施例中,所述Raft共识算法测试系统还包括日志子系统,日志子系统用于记录系统的运行状态,以便于更好地对系统进行调优。NS-3网络模拟平台本身自带完善的日志系统,但为了使整个系统在脱离NS-3网络模拟平台的其他环境下也可以正常运行,因此本系统自行实现了一套日志子系统。该日志子系统具有调试功能、信息功能、警告功能以及错误功能。具体功能说明详见表7
表7日志子系统的功能说明
Figure BDA0002837026540000102
Figure BDA0002837026540000111
在NS-3网络模拟平台之上,所有的交互逻辑被统一抽象成应用,即通过封装好的应用实现网络内部的通信。因此除了实现Raft共识算法本身的内容外,还需要为Raft共识算法的运行设计并实现合理的应用架构。
NS-3网络模拟平台支持各种不同的网络通信方式,为了实现更好的分布式效果,Raft共识算法测试系统采用点对点的网络模型,没有中心服务,所有应用节点都是通过两两之间的链路连接进行通信的。因此,NS-3网络模拟平台拓展创建多个NS-3节点,每个NS-3节点对应连接一个应用节点,为每个NS-3节点设置通信网络信息,包括安装网络层和传输层以支持TCP连接,设置链路层参数和IP地址;为每个NS-3节点设置跟踪器和参数。
应用节点通过NS-3网络模拟平台的连接过程为:
(1)创建NS-3节点:这是平台的基础功能;(2)设置链路层参数并装入节点:主要包括网络的连接速率和延迟;(3)为节点安装网络层和传输层支持:使用平台提供的TCP连接;(4)为各个节点分配IP地址:使用平台提供的自动分配IPv4地址的功能;(5)通过应用辅助类为节点安装应用:将上述Raft状态机应用装入节点中;(6)为应用设置跟踪器和参数:根据应用的实际需要,跟踪某些具体的行为,或者控制应用的某些特性。
此外,还可以利用NS-3网络模拟平台提供的模板功能,快速完成上述步骤:只需创建一次,随后再需要使用到更多应用时可以直接克隆。
上述Raft共识算法测试系统中,基于NS-3网络模拟器平台,构建可供Raft共识算法运行调试的应用框架,除了为Raft共识算法提供基本的网络通信支持以外,还需要支持各种灵活的动态配置:如提供多种不同的网络环境,可动态调整的作业集群节点数量、与集群交互的客户端数量,以及网络延迟、网络传输、传播速度等性能参数,从而可以针对现实中各种不同的情况,提供针对性的测试环境,从而实现比传统平台更高的灵活度、更低的成本。
上述Raft共识算法测试系统中,在Raft传统实现的技术上,针对NS-3网络模拟平台的特点,对其底层的网络通讯模块、调度器等架构进行针对性的修改,并将Raft共识算法的内核、缓存、日志收集等单元在NS-3网络模拟平台上通过NS-3节点进行完整的移植适配,进而将这些单元整合起来,最终实现完整的算法流程,即在NS-3网络模拟平台的基础环境下,提供基于Raft公式算法的测试框架,同时系统的参数支持灵活地调整。
上述Raft共识算法测试系统中,为了更加灵活地模拟、测试共识算法的各个阶段,还需要上述基本的算法流程基础上设计并实现小型的区块链状态机(表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型),利用状态机在不同状态下的转换,可以更好地模拟共识算法提交、快照、回归等行为,相比较传统的方法更加轻便和高效,此外状态机的引入还为整个算法提供了更好的扩展能力,可以适应不同的行为。
实施例中,Raft共识算法测试系统采用C++17开发,一方面是因为NS-3网络模拟平台的内核代码均使用C++编写,采用C++语言兼容性较高,另一方面可以让代码更精简、更安全,也更符合现代开发规范,可满足未来的发展需求。此外为了提高构建效率,加快系统的开发进度,Raft共识算法测试系统使用CLion代替NS-3默认的构建工具,可以实现构建时基于代码差异只编译改动的部分,从而大大提高了构建工作的效率。实施例中,还使用CTest组件进行单元测试,针对每部分编写独立的测试单元,遵从先写测试再开发的原则,以实现更高的开发效率。
上述基于NS-3的Raft共识算法测试系统,可以使得区块链共识算法在物联网、群组作业的应用更具有容错能力和鲁棒性。应用的区块链算法比传统的应用更加高效。比传统的实现方法更加灵活多样,更加适合物联网等大规模节点场景下的测试。利用传统的网络模拟平台实现了区块链算法的新应用。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于NS-3的Raft共识算法测试系统,其特征在于,包括NS-3网络模拟平台,挂载在所述NS-3网络模拟平台上的多个能够实现Raft共识算法测试的应用节点,以及用于管理应用节点与NS-3网络模拟平台通信的远程通信子系统;
每个包括实现测试Raft共识算法的基础组件;其中,基础组件包括Raft状态机单元、Raft内核单元、日志存储单元,Raft状态机单元用于管理Raft共识算法在应用节点中的运行状态,Raft内核单元用于执行Raft共识算法完成共识内容,构造和处理交互消息,同时测试Raft共识算法执行的安全性和正确性,日志存储单元用于存储所有基础组件工作产生的日志;
NS-3网络模拟平台作为通信网络用于实现应用节点之间的消息传输。
2.如权利要求1所述的基于NS-3的Raft共识算法测试系统,其特征在于,所述运行状态包括提交状态、预提交状态、回滚状态、创建快照状态以及应用快照状态。
3.如权利要求1所述的基于NS-3的Raft共识算法测试系统,其特征在于,所述日志存储单元包括空间管理功能,读写功能以及日志压缩和解压功能。
4.如权利要求1所述的基于NS-3的Raft共识算法测试系统,其特征在于,所述远程通信子系统具有创建通信接口功能和发送消息功能;
针对创建通信接口功能,为每个应用节点创建一个用于NS-3网络模拟平台通信的通信接口,通信接口包括为应用节点提供请求消息的发送接口和为应用节点提供响应消息的接收接口;
针对发送消息功能,为应用节点发送与NS-3网络模拟平台的网络环境对应类型的通信消息,通信消息包括请求消息和响应消息。
5.如权利要求4所述的基于NS-3的Raft共识算法测试系统,其特征在于,所述通信消息的基本格式包括优先级、消息类别、源应用节点编号、目标应用节点编号、前序消息优先级、前序消息编号、提交编号以及消息内容。
6.如权利要求5所述的基于NS-3的Raft共识算法测试系统,其特征在于,所述请求消息类型包括:1类,用于在应用节点欲成为候选节点时,向其他应用节点请求投票;2类,用于应用节点在收到1类消息时,对是否支持竞选的响应;3类,用于领导节点发送心跳消息或状态机指令;4类,用于应用节点在收到3类消息时,发送响应;5类,用于客户发送状态指令,或跟随节点转发指令;6类,用于新应用节点向Raft集群申请加入;7类,用于领导节点对收到的6类消息进行响应;8类,用于应用节点退出集群的请求;9类,用于领导节点对收到的8类消息进行响应;
所述响应消息类型包括:10类,对日志进行同步的申请,用于对新加入应用节点同步日志;11类,应用节点在收到日志同步申请后作出的响应;12类,应用节点申请加入集群,领导节点处理6类消息时使用,随后会发送10类消息进行日志同步;13类,应用节点对12类消息做出的响应;14类,应用节点离开集群请求,由领导节点在处理8类时发出;15类,应用节点对14类消息做出的响应;16类,应用节点申请安装一个快照;17类,应用节点对16类消息做出的响应;18类,对Raft算法的一个小升级,通过预投票的方式确定每个投票节点都与领导节点连接正常;19类,在网络分区存在的情况下,18类和19类消息判断各节点与当前领导节点的连接,避免出现多个领导节点的问题。
7.如权利要求1所述的基于NS-3的Raft共识算法测试系统,其特征在于,所述Raft内核单元执行Raft共识算法时,每个应用节点具有三种状态,分别为跟随者、候选者以及领导者;开始时,所有应用节点处于跟随者状态,每个跟随者启动一个计时器,在超时后还未收到领导者发来的心跳响应遍进入候选者状态;
候选者发起一轮新竞选,向周围应用节点发送包含当前任期的投票请求消息,每个跟随者对比请求消息包含的任期与当前保存的目标任期,如果消息内任期更高就支持候选者竞选,候选者收到超过半数的跟随者的投票后就成为领导者,否则就退出领导者竞选;
领导者每隔一定时间会向所有其他应用节点发送心跳,同时与应用客户交互完成相应任务,即为客户处理可复制状态机的控制请求,客户通过指令与领导者交互,领导者为收到的客户请求消息增加当前任期和一个索引值,索引值用来唯一确定指令在应用节点日志中的位置;领导者接下来尝试将这一条指令复制到严格多数的其他应用节点上,如果复制是成功的,这条指令就被提交执行,在领导者的Raft内核单元上执行并将结果返回给客户。
8.如权利要求1~7任一项所述的基于NS-3的Raft共识算法测试系统,其特征在于,所述应用节点还包括数据封装单元,用于对Raft内核单元产生的各种消息进行封装。
9.如权利要求8所述的基于NS-3的Raft共识算法测试系统,其特征在于,所述Raft共识算法测试系统还包括日志子系统,具有以下功能:调试功能,用于记录附加内容;信息功能,用于展示系统的运行情况;警告功能,用于记录系统运行中的异常情况;错误功能,用于记录系统运行中可导致系统崩溃、数据错乱的重大问题。
10.如权利要求8所述的基于NS-3的Raft共识算法测试系统,其特征在于,所述NS-3网络模拟平台拓展创建多个NS-3节点,每个NS-3节点对应连接一个应用节点,为每个NS-3节点设置通信网络信息,包括安装网络层和传输层以支持TCP连接,设置链路层参数和IP地址;为每个NS-3节点设置跟踪器和参数。
CN202011479646.4A 2020-12-15 2020-12-15 基于NS-3的Raft共识算法测试系统 Active CN112527647B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011479646.4A CN112527647B (zh) 2020-12-15 2020-12-15 基于NS-3的Raft共识算法测试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011479646.4A CN112527647B (zh) 2020-12-15 2020-12-15 基于NS-3的Raft共识算法测试系统

Publications (2)

Publication Number Publication Date
CN112527647A true CN112527647A (zh) 2021-03-19
CN112527647B CN112527647B (zh) 2022-06-14

Family

ID=75000175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011479646.4A Active CN112527647B (zh) 2020-12-15 2020-12-15 基于NS-3的Raft共识算法测试系统

Country Status (1)

Country Link
CN (1) CN112527647B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112994954A (zh) * 2021-04-21 2021-06-18 北京国科天迅科技有限公司 网络测试系统、测试网络的构建方法及装置
CN113630455A (zh) * 2021-08-02 2021-11-09 上海华能电子商务有限公司 一种适用于物联网的Raft共识方法
CN116737810A (zh) * 2023-05-06 2023-09-12 清华大学 一种用于分布式时序数据库的共识服务接口

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108876669A (zh) * 2018-05-28 2018-11-23 浙江大学 应用于多平台教育资源共享的课程公证系统及方法
US20190058581A1 (en) * 2017-08-03 2019-02-21 Gavin Wood Methods and Systems for a Heterogeneous Multi-Chain Framework
CN109446089A (zh) * 2018-10-30 2019-03-08 赛汇检测(广州)有限公司 一种基于区块链技术的软件测试平台
CN109460593A (zh) * 2018-10-26 2019-03-12 广东科学技术职业学院 一种区块链虚拟仿真系统
CN109964446A (zh) * 2018-06-08 2019-07-02 北京大学深圳研究生院 一种基于投票的共识方法
CN109981565A (zh) * 2019-01-29 2019-07-05 广州中国科学院软件应用技术研究所 基于Meta-BFT共识机制的区块链平台及实现方法
CN110572398A (zh) * 2019-09-10 2019-12-13 腾讯科技(深圳)有限公司 区块链网络的管控方法、装置、设备及存储介质
US20200167512A1 (en) * 2018-11-13 2020-05-28 Gauntlet Networks, Inc. Simulation-based testing of blockchain and other distributed ledger systems
CN111209345A (zh) * 2020-04-21 2020-05-29 台州市相闻信息技术有限公司 一种基于区块链的在线教学共识系统及学习记录方法
CN111241589A (zh) * 2018-11-29 2020-06-05 华为技术有限公司 一种数据库系统、节点和方法
CN111724145A (zh) * 2020-05-25 2020-09-29 天津大学 一种区块链系统分片协议的设计方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190058581A1 (en) * 2017-08-03 2019-02-21 Gavin Wood Methods and Systems for a Heterogeneous Multi-Chain Framework
CN108876669A (zh) * 2018-05-28 2018-11-23 浙江大学 应用于多平台教育资源共享的课程公证系统及方法
CN109964446A (zh) * 2018-06-08 2019-07-02 北京大学深圳研究生院 一种基于投票的共识方法
CN109460593A (zh) * 2018-10-26 2019-03-12 广东科学技术职业学院 一种区块链虚拟仿真系统
CN109446089A (zh) * 2018-10-30 2019-03-08 赛汇检测(广州)有限公司 一种基于区块链技术的软件测试平台
US20200167512A1 (en) * 2018-11-13 2020-05-28 Gauntlet Networks, Inc. Simulation-based testing of blockchain and other distributed ledger systems
CN111241589A (zh) * 2018-11-29 2020-06-05 华为技术有限公司 一种数据库系统、节点和方法
CN109981565A (zh) * 2019-01-29 2019-07-05 广州中国科学院软件应用技术研究所 基于Meta-BFT共识机制的区块链平台及实现方法
CN110572398A (zh) * 2019-09-10 2019-12-13 腾讯科技(深圳)有限公司 区块链网络的管控方法、装置、设备及存储介质
CN111209345A (zh) * 2020-04-21 2020-05-29 台州市相闻信息技术有限公司 一种基于区块链的在线教学共识系统及学习记录方法
CN111724145A (zh) * 2020-05-25 2020-09-29 天津大学 一种区块链系统分片协议的设计方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
WEIXIN_39806779: "ns3网络仿真_13个共识算法仿真开源框架", 《HTTPS://BLOG.CSDN.NET/WEIXIN_39806779/ARTICLE/DETAILS/110893076》 *
未知: "共识算法仿真【论文及实现代码】", 《HTTP://BLOG.HUBWIZ.COM/2020/03/11/CONSENSUS-SIMULATOR/》 *
郝悦: "区块链共识算法性能仿真及可视化平台的设计与实现", 《北京邮电大学》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112994954A (zh) * 2021-04-21 2021-06-18 北京国科天迅科技有限公司 网络测试系统、测试网络的构建方法及装置
CN113630455A (zh) * 2021-08-02 2021-11-09 上海华能电子商务有限公司 一种适用于物联网的Raft共识方法
CN113630455B (zh) * 2021-08-02 2022-06-21 上海华能电子商务有限公司 一种适用于物联网的Raft共识方法
CN116737810A (zh) * 2023-05-06 2023-09-12 清华大学 一种用于分布式时序数据库的共识服务接口

Also Published As

Publication number Publication date
CN112527647B (zh) 2022-06-14

Similar Documents

Publication Publication Date Title
CN112527647B (zh) 基于NS-3的Raft共识算法测试系统
CN108737168B (zh) 一种基于容器的微服务架构应用自动构建方法
CN111859832B (zh) 一种芯片仿真验证方法、装置及相关设备
CN103369054B (zh) 一种采集任务管理方法及系统
CN108306804A (zh) 一种Ethercat主站控制器及其通信方法和系统
CN103067501B (zh) PaaS平台的大数据处理方法
CN114329920A (zh) 一种虚实系统联合的大规模卫星网络仿真评估及测试系统
CN104639402A (zh) 一种用于服务器集群系统网络测试的方法
CN106375328A (zh) 一种大规模数据分发系统运行时自适应优化方法
CN114422010B (zh) 一种基于网络虚拟化的卫星通信仿真平台的协议测试方法
CN113572815A (zh) 一种跨异构平台的通信技术方法、系统及介质
CN112698838B (zh) 多云容器部署系统及其容器部署方法
CN114679380B (zh) 边缘集群的创建方法和相关装置
CN106354563A (zh) 用于3d重建的分布式计算系统以及3d重建方法
CN111541599B (zh) 基于数据总线的集群软件系统及方法
CN110750445A (zh) 一种yarn组件高可用性功能的测试方法、系统及设备
CN114513404A (zh) 时间敏感网络的配置方法、装置及计算机可读存储介质
CN114610440A (zh) 模拟机系统的运行环境构建方法及系统
CN113901047A (zh) 一种基于内存数据库的简便集群主从选举方法
CN116341298B (zh) 一种仿真引擎与模型解耦适配方法
CN109799728B (zh) 一种基于层次化自适应策略的容错cps仿真测试方法
CN112073499A (zh) 一种多机型云物理服务器的动态服务方法
CN109344059B (zh) 一种服务器压力测试方法及装置
CN112905332A (zh) 一种基于LVS负载均衡Django架构实现英文PDF在线快速翻译方法
CN112764995B (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