异步共识

任务:

  1. 考虑将异步共识(小飞象)融入系统中(1)什么是异步共识,与同步、半同步的区别  (2)异步共识的优缺点,什么情况下适合使用异步共识

异步共识

1、什么是异步共识

异步共识是指在共识协议的设计中,不对网络能力进行假设(符合真实网络情况,即消息可能在任意时间后到达),为了更清除的解释,在这里对比非异步共识:假设消息会在一定时间范围内到达,若超过某个时间阈值(系统根据网络能力进行设定)之后,没有收到某个期待的消息,则认为消息并未被发出,从而推断消息发送方出现异常。

那么非异步共识为什么要对网络进行假设呢?

这里就涉及协议本身了,了解 PBFT 协议的人会知道协议中关于超时异常检测机制1的设计:当节点收到对(v,x,m)的 pre-prepare 消息之后,就会开启一个时钟(设定一个超时时间),若在超时之前没对该(v,x,m)进入commited状态,则认为主节点异常,推动协议下一步进展(触发视图切换),不会使得主节点一直异常而破坏系统活性。

而异步共识不存在对网络的假设,显然无法利用PBFT 等非异步共识设置的主节点异常检测机制(实际上,非异步共识通过设计主节点,将系统活性交由异常检测来保障,从而将协议设计的重点放在安全性上2)。因此,异步共识协议设计看起来更加复杂。

1 补充超时异常检测机制的优缺点

如果为检测主节点是否发生异常而设置的超时时限过低,则可能由于副本节点接收消息不及时而导致频繁的视图切换;如果时限过长,则可能会导致主节点异常无法被及时发现,导致其被攻击者长期控制。

2 关于PBFT 安全性保障的分析(自己总结的)

https://blog.csdn.net/m_iNoError/article/details/116019565?spm=1001.2014.3001.5501

2、异步共识(Dummo)优缺点总结(与 PBFT 对比分析)

 

HB-BFT 性能表现
吞吐量表现(处理请求的能力)优秀(适合大规模网络)
时延表现(响应客户端请求的速度)

不好:

(1)节点规模扩大时暴增,104个节点——600s

(2)慢,看 Dummo 论文中的测试,8nodes,跨洲分布式部署大概在2s-3s

 优点缺点
Dummo适用于节点规模相对较大、网络环境不可预测的场景协议设计复杂(但工程实现上应该还行)
PBFT协议设计简单

(1)不适用于网络环境不可预测的场景(timer 的设置较难权衡

(2)不适合节点规模过大的场景 

PBFT不适用于某些网络延迟较大的真实场景

运行在真实网络中时(在异步环境下),failure detector 就会失去作用,可能导致无休止的 view change(消息到达的太慢,无法满足超时时间,并不是因为节点作恶才导致的超时)

PBFT不适合节点规模过大的场景

吞吐量随着节点规模增大而下降:HB-BFT PBFT 吞吐量的对比,如下图所示。我们可以看到在节点数为 816 的时候,两者差别不大,但随着节点个数增加,PBFT 的吞吐量有明显下降,而 HB-BFT 则几乎没有什么变化

吞吐率:单位时间内系统能成功处理的交易数

3、异步共识适用场景总结

极端网络、节点规模大

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值