一.FLP 不可能性原理
FLP 不可能原理:在网络可靠,存在节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法。
提出该定理的论文是由 Fischer, Lynch 和 Patterson 三位作者于 1985 年发表,该论文后来获得了 Dijkstra(就是发明最短路径算法的那位)奖。
FLP 不可能原理实际上告诉人们,不要浪费时间去为异步分布式系统设计在任意场景下都能实现共识的算法。
FLP 原理实际上说明对于允许节点失效情况下,纯粹异步系统无法确保一致性在有限时间内完成。
二.CAP 原理
CAP 原理最早由 Eric Brewer 在 2000 年,ACM 组织的一个研讨会上提出猜想,后来 Lynch 等人进行了证明。
分布式计算系统不可能同时确保一致性(Consistency)、可用性(Availablity)和分区容忍性(Partition),设计中往往需要弱化对某个特性的保证。
一致性(Consistency):任何操作应该都是原子的,发生在后面的事件能看到前面事件发生导致的结果,注意这里指的是强一致性;
可用性(Availablity):在有限时间内,任何非失败节点都能应答请求;
分区容忍性(Partition):网络可能发生分区,即节点之间的通信不可保障。
比较直观地理解,当网络可能出现分区时候,系统是无法同时保证一致性和可用性的。要么,节点收到请求后因为没有得到其他人的确认就不应答,要么节点只能应答非一致的结果。
三.容错界限-DLS论文
我们得出结论:(1)在一个部分同步网络的模型(也就是说:网络延时有界限但是我们并不知道在哪里)下运行的协议可以容忍1/3任意(换句话说,拜占庭)错误,(2)在一个异步模型中的确定性的协议(没有网络延时上限)不能容错(不过这个论文没有提起随机化算法可以容忍1/3的错误),(3)同步模型中的协议(网络延时可以保证小于已知d时间)可以,令人吃惊的,达到100%容错,虽然对1/2的节点出错可以发生的情况有所限制。注意“验证拜占庭”模型是那个值得考虑的模型,而不是“拜占庭”模型;验证的部分基本上意味着我们可以在算法里使用公钥,此行为现在被研究得非常透彻并且已经非常便宜了。
四.拜占庭问题
拜占庭问题更为广泛,讨论的是允许存在少数节点作恶(消息可能被伪造)场景下的一致性达成问题。拜占庭算法讨论的是最坏情况下的保障。
中国将军问题
拜占庭将军问题之前,就已经存在中国将军问题:两个将军要通过信使来达成进攻还是撤退的约定,但信使可能迷路或被敌军阻拦(消息丢失或伪造),如何达成一致。根据 FLP 不可能原理,这个问题无解。
拜占庭问题
又叫拜占庭将军(Byzantine Generals Problem)问题,是 Leslie Lamport 1982 年提出用来解释一致性问题的一个虚构模型。拜占庭是古代东罗马帝国的首都,由于地域宽广,守卫边境的多个将军(系统中的多个节点)需要通过信使来传递消息,达成某些一致的决定。但由于将军中可能存在叛徒(系统中节点出错),这些叛徒将努力向不同的将军发送不同的消息,试图会干扰一致性的达成。
五.可靠性
很多领域一般都喜欢谈服务可靠性,用几个 9 来说事。这几个 9 其实是粗略代表了概率意义上系统能提供服务的可靠性指标,最初是电信领域提出的概念。
指标 概率可靠性 每年允许不可用时间 典型场景
一个九 90% 1.2 个月         不可用
二个九 99% 3.6 天         普通单点
三个九 99.9% 8.6 小时         普通企业
四个九 99.99% 51.6 分钟 高可用
五个九 99.999% 5 分钟         电信级
六个九 99.9999% 31 秒 极高要求
七个九 99.99999% 3 秒 N/A
八个九 99.999999% 0.3 秒 N/A
九个九 99.9999999% 30 毫秒 N/A
一般来说,单点的服务器系统至少应能满足两个九;普通企业信息系统三个九就肯定足够了(大家可以统计下自己企业内因系统维护每年要停多少时间),系统能达到四个九已经是业界领先水平了(参考 AWS)。电信级的应用一般号称能达到五个九,这已经很厉害了,一年里面最多允许五分钟的服务停用。六个九和以上的系统,就更加少见了,要实现往往意味着极高的代价。
科学告诉你什么是不可能的;工程则告诉你,付出一些代价,我可以把它变成可能。
参考: 
https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-proof-of-stake
https://www.gitbook.com/book/yeasy/blockchain_guide/details
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。

分布式领域重要原理_李孟_新浪博客相关推荐

  1. 2.2.2 胸腰差和胸臀差的应用_米人NOONE_新浪博客

    2.2.2 胸腰差和胸臀差的应用_米人NOONE_新浪博客 2.2.2  胸腰差和胸臀差的应用_米人NOONE_新浪博客 腰差和胸臀差的应用 (2009-06-16 19:24:57) 转载▼ 标签: ...

  2. ArcGIS MPK的两种打包方式_陈焜浩Arain_新浪博客

    最近发现用ArcGIS打包的MPK文件,如果数据的来源不一样:从shapefile源数据或者是从SDE源数据进行打包,能够引起打包文件的大小不一样已经在代码中引用文件的效率不一样的差异.开始发现这种差 ...

  3. MODIS MOD11A2地温产品_江仔91_新浪博客

    注意事项: 1.经MRT转换后的数据需要进一步处理,如:LST产品需经公式:NG*0.02-273.15运算后才可转换为设施温度.​

  4. 动画说明 李明杰新浪博客

    http://blog.csdn.net/liuting5521826/article/details/51121957 http://www.cnblogs.com/mjios/archive/20 ...

  5. 邓文迪撑杆跳,甩开老公要独立?_富杂志_新浪博客

    邓文迪撑杆跳,甩开老公要独立?_富杂志_新浪博客 邓文迪撑杆跳,甩开老公要独立? (2010-01-11 10:55:22) 转载▼

  6. cadence spb 16.5 破解过程实例和使用感受_赤松子耶_新浪博客

    cadence spb 16.5 破解过程实例和使用感受_赤松子耶_新浪博客 Cadence Allegro16.5详细安装具体的步骤 1.下载SPB16.5下来后,点setup.exe,先安装第一项 ...

  7. 关于幂律分布的一个笔记_哈克_新浪博客

    关于幂律分布的一个笔记_哈克_新浪博客 关于幂律分布的一个笔记     (2011-03-02 18:12:27)     转载▼     标签:     幂律     二八法则     杂谈     ...

  8. vim高级技巧(split)_小花_新浪博客

    vim高级技巧(split)_小花_新浪博客    :res(ize) +N 把当前窗口高度增加N个像素    :res(ize) -N 把当前窗口高度减少N个像素    :vertical res( ...

  9. 基于samba实现win7与linux之间共享文件_阳仔_新浪博客

    基于samba实现win7与linux之间共享文件_阳仔_新浪博客 然后启动samba执行如下指令: /dev/init.d/smb start 至此完成全部配置.

  10. Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf_爱过了就好_新浪博客

    Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf_爱过了就好_新浪博客 Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf     (2009-07- ...

最新文章

  1. Youth---青春
  2. python程序实例源代码-python下10个简单实例代码
  3. oracle实例文件,ORACLE实例管理之参数文件
  4. layer.alert 延迟自动关闭_自动门中的检测与延时预防事故,分享控制案例
  5. 【简洁写法】剑指 Offer 30. 包含min函数的栈
  6. windows下python视频加速调节_Windows下python+ffmpeg实现批量提取、切割视频中的音频...
  7. Linux 5.7 将支持国产 RISC-V 芯片 K210
  8. 闲话 - 火车硬座座位分布图
  9. 怎样为企业挑选正确的EDR解决方案
  10. KikaGO:一条数据线的AI之旅
  11. Github上多人协作方式之一
  12. mysql角色附权和解除权限_MySql授权和撤销权限操作
  13. 下拉框系统甄选火星推荐_微博下拉框技术选择5火星
  14. 酒桌游戏c语言,拯救冷场,这十三款经典酒桌游戏你玩过几个?
  15. WPF基础五:UI①布局元素StackPanel
  16. 开发竞赛作品展示网站上线!
  17. Windows11安装WSA教程android子系统安装方法(22000+dev) Msixbundle(1.2GB) 安装包下载
  18. PCB屏蔽罩图纸制作
  19. 猪齿鱼2.0版本发布,解锁更多新特性,提升研发管理效率
  20. Android ItemTouchHelper实现RecyclerView交互动画

热门文章

  1. Sublime Text 3中的OpenSees插件配置
  2. 【直流无刷电机与永磁同步电机有什么区别?】
  3. Linux安装Git(图文解说详细版)
  4. 代表委员眼中的国家大数据战略:融入生活 改变产业
  5. 技术员教你如何在PE下重装系统(包含win10和win7)
  6. nodejs框架express之错误中间件(初学)
  7. Telink TL825X 安信可TB-02在水塔水位控制器中的应用
  8. NFS- CentOS7安装使用NFS服务器
  9. python中in什么意思_python中5in什么意思
  10. 分享数据时代总结思维导图模板