0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

共识算法入门

清欢科技 来源:清欢科技 作者:清欢科技 2022-10-13 09:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

raft算法

算法动画演示:

节点的三种角色:跟随者(follower)、候选人(candidate)、领导者(leader)

最大容错故障节点:(N - 1)/ 2

选举超时(election timeout):一个节点在成为候选节点(candidate)之前等待的时间,150ms到300ms之间的随机值

心跳超时(heartbeat timeout):心跳超时

pbft算法

最大容错节点数:3f + 1 <= N

算法基本流程:

1.客户端发送请求给主节点

2.主节点广播请求给其他节点,节点执行pbft算法三阶段共识流程

3.节点处理完三阶段流程后,返回消息给客户端

4.客户端收到来自f + 1个节点的相同消息后,代表共识已经完成

pbft算法核心三阶段流程:

pYYBAGNGqCeAZfEAAASCv8Sy1-Y221.png

v:视图编号

d:客户端消息摘要

m:消息内容

n:在[h,H]区间之间,请求编号

i:节点编号

进行主节点签名,v,n,d>

1.Pre-prepare 阶段:节点收到 pre-prepare 消息后,会有两种选择,一种是接受,一种是不接受。什么时候才不接受主节点发来的 pre-prepare 消息呢?一种典型的情况就是如果一个节点接受到了一条 pre-pre 消息,消息里的 v 和 n 在之前收到里的消息是曾经出现过的,但是 d 和 m 却和之前的消息不一致,或者请求编号不在高低水位之间(高低水位的概念在下文会进行解释),这时候就会拒绝请求。拒绝的逻辑就是主节点不会发送两条具有相同的 v 和 n ,但 d 和 m 却不同的消息。

2.Prepare 阶段:节点同意请求后会向其它节点发送 prepare 消息。这里要注意一点,同一时刻不是只有一个节点在进行这个过程,可能有 n 个节点也在进行这个过程。因此节点是有可能收到其它节点发送的 prepare 消息的。在一定时间范围内,如果收到超过 2f 个不同节点的 prepare 消息,就代表 prepare 阶段已经完成。

3.Commit 阶段:于是进入 commit 阶段。向其它节点广播 commit 消息,同理,这个过程可能是有 n 个节点也在进行的。因此可能会收到其它节点发过来的 commit 消息,当收到 2f+1 个 commit 消息后(包括自己),代表大多数节点已经进入 commit 阶段,这一阶段已经达成共识,于是节点就会执行请求,写入数据。

poYBAGNGqC2AQJSnAAe0oa1otFM133.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4761

    浏览量

    97147
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    华兴资本王力行:预见AI,从技术创新走向产业变革——基础共识之上的非共识

    在2025科创大会11月27日的「人工智能创新项目“掘金汇”」论坛上,华兴资本集团首席执行官王力行发表主题演讲《预见AI:从技术创新到产业变革——基础共识之上的非共识》围绕技术演进、应用趋势与生态
    的头像 发表于 11-30 15:43 451次阅读
    华兴资本王力行:预见AI,从技术创新走向产业变革——基础<b class='flag-5'>共识</b>之上的非<b class='flag-5'>共识</b>

    SM4算法实现分享(一)算法原理

    SM4分组加密算法采用的是非线性迭代结构,以字为单位进行加密、解密运算,每次迭代称为一轮变换,每轮变换包括S盒变换、非线性变换、线性变换、合成变换。加解密算法与密钥扩展都是采用32轮非线性迭代结构
    发表于 10-30 08:10

    SM4算法原理及分享1

    SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均
    发表于 10-30 06:54

    国密系列算法简介及SM4算法原理介绍

    一、 国密系列算法简介 国家商用密码算法(简称国密/商密算法),是由我国国家密码管理局制定并公布的密码算法标准。其分类1所示: 图1 国家商用密码
    发表于 10-24 08:25

    加密算法的应用

    加密是一种保护信息安全的重要手段,近年来随着信息技术的发展,加密技术的应用越来越广泛。本文将介绍加密算法的发展、含义、分类及应用场景。 1. 加密算法的发展 加密算法的历史可以追溯到古代。在
    发表于 10-24 08:03

    labview入门手册

    电子发烧友网站提供《labview入门手册.pdf》资料免费下载
    发表于 09-23 17:15 1次下载

    DFT算法与FFT算法的优劣分析

    一概述 在谐波分析仪中,我们常常提到的两个词语,就是DFT算法与FFT算法,那么一款功率分析仪/谐波分析仪采用DFT算法或者FFT算法,用户往往关注的是能否达到所要分析谐波次数的目的,
    的头像 发表于 08-04 09:30 895次阅读

    CAN入门应用手册

    电子发烧友网站提供《CAN入门应用手册 .pdf》资料免费下载
    发表于 07-14 14:45 1次下载

    DeepSeek:从入门到精通

    电子发烧友网站提供《DeepSeek:从入门到精通.pdf》资料免费下载
    发表于 05-28 14:12 2次下载

    资料免费下!PID电机控制系统(控制原理+控制算法+程序范例)

    资料免费下啦!本资料包括PID调节控制做电机速度控制、ourdevBasic PID的经典文章、PID测速、由入门到精通-吃透PID2.0版、容易理解的PID等相关PID电机控制内容,从PID控制
    发表于 02-27 14:17

    PID控制算法的C语言实现:PID算法原理

    在工业应用中 PID 及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握 PID 算法的设计与实现过程,对于一般的研发人员来讲,应该是足够应对一般研发问题了,而
    发表于 02-26 15:24

    DeepSeek:从入门到精通

    DeepSeek:从入门到精通
    发表于 02-08 18:00 134次下载

    MODBUS串口通讯初级入门手册

    初级入门手册介绍
    发表于 01-23 16:24 4次下载

    #新年新气象,大家新年快乐!#AIGC入门及鸿蒙入门

    人工智能生成内容(AIGC)和鸿蒙系统是当前科技领域的两个热门话题。以下是对它们的入门指南: AIGC入门 1. 基础概念: AIGC,全称Artificial Intelligence
    发表于 01-13 10:46

    AIGC入门及鸿蒙入门

    人工智能生成内容(AIGC)和鸿蒙系统是当前科技领域的两个热门话题。以下是对它们的入门指南: AIGC入门 1. 基础概念: AIGC,全称Artificial Intelligence
    发表于 01-13 10:32