Hyperledger实战之——分布式系统(2)

——本文是作者自己原创编写的电子书中的部分章节,在此分享给各位CSDN的读者。

接上篇

3.3 共识

一些资料会把「共识」和「一致性」混在一起不做区分,这二者在一些场景也确实可以不作区分,不过实际上它们是有强关联的两个不同概念。一致性是说所有节点的数据在某一个时刻的是否一致的状态,而共识是为了保证某一笔交易在所有节点上达成一致结果的过程。换句话说,共识会部分地解决一致性问题。

有效的共识需要具备以下特性:

  • 认同性(Agreement):所有非故障节点都认同一次共识的结果;
  • 合法性(Validity):共识的结果必须是参与共识的节点提出的;
  • 可终止性(Termination):共识的过程在一定时间内结束,而不会无休止地执行下去。

在一个理想的网络环境中要实现这样的共识,看起来并不难。但是当考虑到网络异常、节点故障等情况时,系统还能针对每一笔提议达成共识并不是一件很容易的事情。

同步系统 VS 异步系统

根据是否存在全局时钟,可以将分布式系统分为\textbf{同步系统}和\textbf{异步系统}。相应的,分布式系统的共识算法也有同步共识算法和异步共识算法。

满足下列三个条件的系统是同步系统,否则就是异步系统:

  • 各节点的时钟差有限;
  • 网络传输延迟有限;
  • 节点处理时间有限。

同步系统的共识问题显然要比异步系统更容易解决,在异步系统中能正常运行的共识,到同构的同步系统中也能正常运行,但反过来却不一定成立。

随着分布式技术的发展,很快就出现了一些可行的同步系统的共识算法,但是却一直没有公认可行的异步系统的共识算法,很多人曾试图挑战这一难题但都失败了,直到 FLP 原理横空出世。

FLP 原理

1985年,Michael J ⋅ \cdot Fisher,Nany A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值