zoukankan      html  css  js  c++  java
  • 分布式学习笔记(四)-分布式共识

    什么是分布式共识

         在多个节点均可独自操作或者记录的情况下,使得所有节点针对某个状态达成一致的过程。通过共识机制,我们可以使得分布式系统中的多个节点的数据达成 一致。
         选主过程就是一个分布式共识问题,因为每个节点在选出主节点之前都可以认为自己会成为主节点,也就是说集群节点“存异”;而通过选举的过程选出主节点,让所有的节点都认可该主节点,这叫“求同”。由此可见,分布式共识的本质就是“存异求同”。所以,从本质上看,分布式选举问题,其实就是传统的分布式共识方法,主要是基于多数投票策略实现的。

    分布式共识方法

    • Pow(Proof of Work,工作量证明)算法
      • 原理:是以每个节点或服务器的计算能力(即“算力”)来竞争记账权的机制,因此是一种使用工作量证明机制的共识算法。也就是说谁的计算力强、工作能力强,谁获得记账权的可能性就越大。
      • 优点:相对公平,有容错机制,完全去中心化,简单易懂,容易实现
      • 缺点:共识效率低,每秒完成交易量少,存在阻塞问题,资源浪费严重,交易服务费高
      • 应用场景:比特币等
    • PoS(Proof of Stake,权益证明)算法
                    为了解决 PoW 算法的问题,引入了 PoS 算法
      • 原理: 由系统权益代替算力决定区块记账权的共识机制,拥有的权益越大则成为下一个区块生产者的概率也越大
      • 优点:消耗资源低,达成共识周期短,交易服务费低
      • 缺点:每秒完成交易量较低,容易被垄断,无法处理分叉链的情况
      • 应用场景:以太坊、点点币等
    • DPoS(Delegated Proof of Stake,委托权益证明)算法
                为了解决 PoS 算法的垄断问题,2014 年比特股(BitShares)的首席开发者丹尼尔 · 拉里 默(Dan Larimer)提出了委托权益证明法,也就是 DPoS 算法。
      • 原理:持有币的人可以进行投票选举,选举出一些节点作为代表来记账
      • 优点:能耗更低,每秒完成交易量高,无垄断情况,交易服务费低,更加安全  
      • 缺点:持币人投票的积极性并不高,故障问题解决效率低,易出现安全隐患
      • 应用场景:以太股、EOS等

    一致性与共识的区别是什么

    • 一致性是指,分布式系统中的多个节点之间,给定一系列的操作,在约定协议的保障下,对外界呈现的数据或状态是一致的。
    • 共识是指,分布式系统中夺冠节点之间,彼此对某个状态达成一致结果的过程。

        一致性强调的是结果,共识强调的是达成一致的过程,共识算法是保障系统满足不同程度一致性的核心技术。

  • 相关阅读:
    LeetCode OJ 112. Path Sum
    LeetCode OJ 226. Invert Binary Tree
    LeetCode OJ 100. Same Tree
    LeetCode OJ 104. Maximum Depth of Binary Tree
    LeetCode OJ 111. Minimum Depth of Binary Tree
    LeetCode OJ 110. Balanced Binary Tree
    apache-jmeter-3.1的简单压力测试使用方法(下载和安装)
    JMeter入门教程
    CentOS6(CentOS7)设置静态IP 并且 能够上网
    分享好文:分享我在阿里8年,是如何一步一步走向架构师的
  • 原文地址:https://www.cnblogs.com/Onlywjy/p/12913430.html
Copyright © 2011-2022 走看看