• 区块链算法


    1.共识算法:
    分别解决非拜占庭的普通错误和解决拜占庭错误,相应算法分为crash fault tolerance(CFT)和byzantine fault tolerance(BFT).
    对于CFT的算法有:Paxos,Raft及其变种。特点:性能好,处理快,容忍不超过一半的故障节点。
    对于BFT的算法有:PBFT(practical byzantine fault tolerance)确定性算法
    PoW(proof of work)为代表的概率算法。
    对于确定性算法,一旦达成某个共识就不可逆转,即共识是最终结果;
    而对于概率类算法,共识结果则是临时的,随着时间推移或某种强化,共识结果被推翻的概率越来越小,成为事实上的最终结果。
    拜占庭类容错算法往往性能较差,容忍不超过1/3的故障节点。
    XFT(cross fault tolerance)改进算法可以提供类似CFT的处理响应速度,并能在多数节点正常工作时提供BFT保障。
    2.FLP不可能原理
    定义:在网络可靠,但允许节点失败(即便只有一个)的最小化异步模型系统中,不可能存在一个可以解决一致性问题的确定性公式算法。
    理解:
    同步:指系统中的各个节点的时钟存在上限;并且消息传递必须在一定时间内完成,否则认为是失败的;同时各个节点完成处理消息的时间是一定的。
    异步:指系统中各个节点可能存在较大的时钟误差,同时消息传输时间是任意长的,各个节点对消息进行处理的时间也是任意长的。
    3.CAP原理
    定义:分布式计算系统不可能同时确保以下三个特性:一致性,可用性、分区容忍性性(可靠性,稳定性)。
    一致性:任何操作都应该是原子的,发生在后面的事件能看到前面事件发生导致的结果。这里说的是强一致性。
    可用性:在有限时间内,任何非失败节点都能应答请求;
    分区容忍性:网络可能发生在分区,即节点之间的通信不可保障。
    应用场景:
    (1)弱化可用性
    (2)弱化可用性
    (3)弱化分区容忍性
    4.ACID原则
    定义:Actomicity(原子性) Consistency(一致性) Isolation(隔离性) Durability(持久性)
    该原则描述了分布式数据库需要满足的一致性要求,同时允许付出可用性的代价。
    与该原则相对立的是BASE原则。该原则牺牲掉对一致性的约束,来换取一定的可用性。

  • 相关阅读:
    iOS -Swift 3.0 -for(循环语句用法)
    C++ 中的std::vector介绍(转)
    C++ 中的sort排序用法
    iOS获取当前AppStore版本号与更新
    cocos2dx 3.x(获得父类的node型指针调用父类函数this->getParent())
    cocos2dx 3.x(TexturePacker进行图片加密)
    cocos2dx 3.x(屏幕截图的两种方法)
    cocos2dx 3.x(在Mac平台下利用Eclipse打包安卓apk安装包详细教程)
    cocos2dx 3.x(定时器或延时动作自动调用button的点击响应事件)实现自动内测
    cocos2dx 3.x(移动修改精灵坐标MoveTo与MoveBy)
  • 原文地址:https://www.cnblogs.com/feifei123/p/9146604.html
Copyright © 2020-2023  润新知