分布式技术原理与算法解析
聂鹏程
智载云帆CTO,前华为分布式Lab资深技术专家
立即订阅
5969 人已学习
课程目录
已更新 36 讲 / 共 34 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 四纵四横,带你透彻理解分布式技术
免费
01 | 分布式缘何而起:从单兵,到游击队,到集团军
02 | 分布式系统的指标:啥是分布式的三围
第一站:分布式协调与同步 (6讲)
03 | 分布式互斥:有你没我,有我没你
04 | 分布式选举:国不可一日无君
05 | 分布式共识:存异求同
06 | 分布式事务:All or nothing
07 | 分布式锁:关键重地,非请勿入
08 | 分布式技术是如何引爆人工智能的?
第二站:分布式资源管理与负载调度 (6讲)
09 | 分布式体系结构之集中式结构:一人在上,万人在下
10 | 分布式体系结构之非集中式结构:众生平等
11 | 分布式调度架构之单体调度:物质文明、精神文明一手抓
12 | 分布式调度架构之两层调度:物质文明、精神文明两手抓
13 | 分布式调度架构之共享状态调度:物质文明、精神文明多手协商抓
14 | 答疑篇:分布式事务与分布式锁相关问题
第三站:分布式计算技术 (4讲)
15 | 分布式计算模式之MR:一门同流合污的艺术
16 | 分布式计算模式之Stream:一门背锅的艺术
17 | 分布式计算模式之Actor:一门甩锅的艺术
18 | 分布式计算模式之流水线:你方唱罢我登场
第四站:分布式通信技术 (4讲)
19 | 分布式通信之远程调用:我是你的千里眼
20 | 分布式通信之发布订阅:送货上门
21 | 分布式通信之消息队列:货物自取
22 | 答疑篇:分布式体系架构与分布式计算相关问题
第五站:分布式数据存储 (5讲)
23 | CAP理论:这顶帽子我不想要
24 | 分布式数据存储系统之三要素:顾客、导购与货架
25 | 数据分布方式之哈希与一致性哈希:“掐指一算”与“掐指两算”的事
26 | 分布式数据复制技术:分身有术
27 | 分布式数据之缓存技术:“身手钥钱”随身带
特别放送 (3讲)
特别放送 | 分布式下的一致性杂谈
特别放送 | 徐志强:学习这件事儿,不到长城非好汉
特别放送 | 那些你不能错过的分布式系统论文
第六站:分布式高可靠 (5讲)
28 | 分布式高可靠之负载均衡:不患寡,而患不均
29 | 分布式高可靠之流量控制:大禹治水,在疏不在堵
30 | 分布式高可用之故障隔离:当断不断,反受其乱
31 | 分布式高可用之故障恢复:知错能改,善莫大焉
32 | 答疑篇:如何判断并解决网络分区问题?
分布式技术原理与算法解析
登录|注册

05 | 分布式共识:存异求同

聂鹏程 2019-10-02
你好,我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
首先,我们来回忆下上篇文章的分布式选举。分布式选举问题,是从多个节点中选出一个主节点,相关的选举方法几乎都有一个共同特点:每个节点都有选举权和被选举权。大部分选举方法采用多数策略,也就是说一个节点只有得到了大部分节点的同意或认可才能成为主节点,然后主节点向其他节点宣告主权。
其实,这个选主过程就是一个分布式共识问题,因为每个节点在选出主节点之前都可以认为自己会成为主节点,也就是说集群节点“存异”;而通过选举的过程选出主节点,让所有的节点都认可该主节点,这叫“求同”。由此可见,分布式共识的本质就是“存异求同”。
所以,从本质上看,分布式选举问题,其实就是传统的分布式共识方法,主要是基于多数投票策略实现的。基于多数投票策略的分布式选举方法,如果用于分布式在线记账一致性问题中,那么记账权通常会完全掌握到主节点的手里,这使得主节点非常容易造假,且存在性能瓶颈。因此,分布式选举不适用于分布式在线记账的一致性问题。在今天这篇文章中,我就带你了解另外一种用于解决分布式在线记账一致性问题的分布式共识技术。
这里所说的分布式在线记账,是指在没有集中的发行方,也就是没有银行参与的情况下,任意一台接入互联网的电脑都能参与买卖,所有看到该交易的服务器都可以记录这笔交易,并且记录信息最终都是一致的,以保证交易的准确性。而如何保证交易的一致性,就是该场景下的分布式共识问题。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式技术原理与算法解析》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(19)

  • 哇哦
    我感觉老师如果能够在相应章节,推荐相关的阅读资料或者书籍,这样可能会更好。
    2019-10-10
    19
  • Stealer
    我感觉老师如果能够在相应章节,推荐相关的阅读资料或者书籍,这样可能会更好。
    我也希望老师如果可以的话, 加上这个.
    2019-10-10
    7
  • 易儿易
    看完之后有几点没搞太明白:
    1.比特币“钱”从哪来?
    2.Pow算力如何证明?(老师讲的没看明白)
    3.通过什么方式向全网传播?
    4.“挖矿”到底是一个主动行为还是一个被动行为?
    发生交易--》需要记账--》证明算力获得记账权--》记账--》收益,大致过程是这样吗?
    如果对的话,那“挖矿”是不是更像一个“赏金猎人”?

    作者回复: 1.比特币系统设置的总量2100万个比特币,系统中的每个节点都有记账权,成功获得记账权的节点将获得记账奖励,这个奖励就来自于这个总量,这个就是比特币的来源。因为和黄金采矿原则类似,谁付出谁得到,因此记账的过程也被称形象的称为挖矿。
    2.“利用区块的 index、前一个区块的哈希值、交易的时间戳、区块数据、nonce值,通过SHA256计算出一个哈希值”,这里的nonce值是无法直接猜出的,所以只能大量的穷举尝试并且每次尝试都需要一定的计算量,因此需要大量的计算量才能得到一个正确的nonce值。每次为了争取一个区块的记账权,而获得正确nonce值的过程就是一个PoW(工作量证明)的过程。
    3.主要是通过广播的方式。
    4.挖矿当然是一个主动行为,首先加入到比特币网络就是一个主动过程,就是为了通过挖矿获利。你理解的没错,总体过程就是你说的这样。“赏金猎人”这个词用的很形象:)

    2019-10-10
    4
  • 忆水寒
    老师,有个地方没明白。POW算法计算题目的难度,那么各节点的题目怎么来的?

    作者回复: 各节点题目一样,就是计算文中所讲的哈希结果的前k位是0,这个k会指定,且在每个节点上是一致的

    2019-10-02
    1
    2
  • 浮世逍遥
    pow情况下,其他节点是如何确认的?不会存在同时计算出来的情况吗?多个节点同时计算出来结果怎么达成共识呢?我觉得改缺少这一步的说明?
    2019-10-13
    1
  • Li Shunduo
    请问Paxos分布式共识算法和这章的算法的区别?
    2019-10-12
    2
    1
  • Geek_54edc1
    拜占庭将军问题描述了将军给士兵传令如何保持士兵收到的命令是一致的这样一个问题,解决方法是提供了一种算法,这种算法可以保证在一定条件下,即使出现了命令的篡改,丢失等错误情况,也能保证士兵收到的命令是一致的
    2019-10-02
    1
  • 忆水寒
    拜占庭将军问题就是指节点不信任,一般在局域网内可以任务不存在拜占庭将军问题。不知道对不对……
    2019-10-02
    1
  • 王喜春
    相比于前一节, 这节更烧脑了。
    2019-11-21
  • 哥本
    聂老师好,我想问下服务器如何才能成为区块链的节点?
    2019-11-13
  • Eternal
    就像老师说的,区块链的共识算法没得那么神秘,常用的算法就PoW、PoS 和 DPoS,挺起来感觉明白了,但是还是有点迷惑,分布式选举和分布式共识的区别。
    1.分布式选举是为了是选举一个leader,分布式共识是为了产生一个最终拥有的记账权的节点,这也可以理解成为了产生一个leader;
    2.分布式选举是按照投票的少数服从多数来确定leader,分布式共识是通过比较工作量,权益大小来选举leader,两者为了选择leader的量化体系不一样。

    老师,请问我理解得对吗?
    2019-10-23
    1
  • 波波安
    拜占庭将军问题,就是一致性问题。在打仗的时候,拜占庭军队内的所有将军的必须达成一致的共识,才能更好的赢得胜利。但是内部存在有叛徒捣乱,这时需要一个方法,在存在叛徒的情况下去达成内部共识。
    raft算法和zap算法能解决拜占庭问题。
    2019-10-19
  • Jackey
    拜占庭将军问题:拜占庭的10个邻国打算入侵拜占庭,至少6个国家同时进攻才能成功。各个国家都存在叛变的情况,因此他们之间是不互相信任的。最后如何达成一致(进攻/撤退)就成了难题。本节老师讲的Pow算法就可以解决这一问题。
    2019-10-11
  • 子铭
    讲的好清楚,是因为很简单吗,反正看明白了
    2019-10-11
  • zhaozp
    打卡文章学习:
    1、分布式一致性是指集群对外提供的数据或状态是一致的,强调的是结果。分布式共识是指集群达到一致的过程,强调的是过程。
    2、分布式在线记账的3种共识算法:PoW、PoS和DPoS。
    以前没接触过区块链的知识,学习了。。。

    作者回复: 业精于勤,加油!

    2019-10-08
  • leslie
    打卡:提的东西没听过😂😂😂

    作者回复: 以前没听过没关系,现在听过就可以了:)

    2019-10-06
  • Better me
    PoW算法中是通过每个节点解题的能力从而去提现节点算力的,这里是有指定所有节点计算哈希值前k为0中的k是多少吗?还是没有指定,哪个节点算出的k大说明该节点算力更强。

    PoS算法中计算权益时都是默认每个节点发现一个PoS区块从而获得0.05个币的利息,那么每个节点都是这样的吗?可能存在某些节点币龄还没达到365,也有可能某些节点发现不止一个PoS区块,这种情况每个节点计算权益的利息也会有区别吧
    2019-10-05
  • 盖盖
    拜占庭将军问题是指如何在有拜占庭节点存在的情况下,使得诚实节点达成共识。例如facebook的libra采用的libraBFT算法(基于HotStuff)能够容忍1/3的拜占庭节点。BFT算法区别于PoW的地方主要在于安全性依赖于多轮的消息传递,虽然吞吐量秒杀PoW,也不需要挖矿,但消息复杂度高,只能在有限规模的网络中运行。
    2019-10-02
  • 盖盖
    以太坊目前运行的还是PoW,PoS是以太坊下一步的计划,最终方案还没定
    2019-10-02
    1
收起评论
19
返回
顶部