美文网首页
公链开发学习笔记(四):公链共识部分设计

公链开发学习笔记(四):公链共识部分设计

作者: 一个大于号 | 来源:发表于2018-10-28 18:22 被阅读17次

1 CAP在公式设计中的展现

  • CAP定理:任何一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得
    • 一致性:在分布式系统中所有的数据备份,是否在同一时间是同样的值
    • 可用性:在集群中一部分节点故障以后,集群整体是否还能响应读写请求
    • 分区容错性:系统不能在时限内达成一致,就发生了分区。所以,对时限的要求就是分区容错性
  • CAP定理对区块链共识设计的作用
    • 区块链作为系统设计,也是属于分布式系统
    • 单机设计共识没有分区容错性的体现,所以单机设计共识很大程度上会有问题
    • 由于一定要保证分区容错性,所以只能在C和A二选一就有了两类共识
      • 类BFT:一致性,每个时间节点是finality的
      • POX:可用性,每个时间节点都是possibility的
    • 有没有保证CA的情况
      • 假如你设计了一个单机共识,又觉得特别好
      • 主备同步了解一下
        • 当没有故障时,系统正常处理请求并且返回一致的结果。出现故障后,首先把所有请求切换到正常机器,故障机器下线。接着人工恢复故障机器上的数据,保证数据一致性。最后机器正常上线,恢复系统容量。
      • 带来的就是中心节点来run整个事情

2 链式和拜占庭式设计的优劣

  • 链式设计的优点:因为没有保证一致性,只要最终一致
    • 可以很去中心化:POW
    • 可以很低功耗:POS
    • 可以很有创造性:POX
  • BFT类设计的有点:
    • 保证了一致性,所以适合商业场景
    • finality用来保障不分叉,提高商业场景的稳定性
  • 链式与BFT式的缺点
    • 链式:缺少finality,所以经常会有分叉,需要解决分叉问题
    • BFT式:因为保障一致性,所以会有相互的通信,节点数量高了会有通信风暴

3 POW、POS和POX在设计中的侧重点

  • POW:如何设计一个新的抗ASIC的POW
  • POS:如何设计一个合理的队列方式
  • POX:如何保障这个X factor是可以证明以及被别人证明的

4 如何工程化设计融合型共识

  • 链式共识:融合设计需要一定的finality加入
  • 类BFT共识:融合设计需要一定的成本加入

相关文章

  • 公链开发学习笔记(四):公链共识部分设计

    1 CAP在公式设计中的展现 CAP定理:任何一个分布式系统中,Consistency(一致性)、Availabi...

  • 周报丨Insight Chain(INB)公链&生态周报(201

    摘要:设计子链PBFT共识具体实现方案。 ▶****公**** 链****◀ 一、INB公链 1.子链数据结构的...

  • 周报丨Insight Chain(INB)公链&生态周报(201

    摘要:子链PBFT共识模块开发完成。 ▶公链◀ 一、INB公链1.子链PBFT共识模块数据结构优化修改。2.子链P...

  • 比原链是最接近区块链本质的公链

    我研究过很多公链项目,比如EOS NEO QTUM ONT 等,这些公链都被称为行业的优质公链,他们的共识机...

  • Basechain 1

    Basechain致力于降低公链的开发成本和难度,提高开发速度,降低公链开发门槛。 Basechain 将提供公链...

  • 开源区块链Tendermint开发详解

    简介 tendermint是一个开源的完整的区块链实现,可以用于公链或联盟链,其官方定位 是面向开发者的区块链共识...

  • Basechain 4

    Basechain 致力于降低公链的开发成本和难度,提高开发速度,降低公链开发门槛。 Basechain 将提供公...

  • Basechain5

    Basechain 致力于降低公链的开发成本和难度,提高开发速度,降低公链开发门槛。 Basechain 将提供公...

  • Basechain 2

    Basechain 致力于降低公链的开发成本和难度,提高开发速度,降低公链开发门槛。 Basechain 将提供公...

  • Basechain 3

    Basechain 致力于降低公链的开发成本和难度,提高开发速度,降低公链开发门槛。 Basechain 将提供公...

网友评论

      本文标题:公链开发学习笔记(四):公链共识部分设计

      本文链接:https://www.haomeiwen.com/subject/cmlmtqtx.html