拜占庭将军问题:
寻找一个方法,使得将军们能在一个有叛徒的非信任环境中建立对战斗计划的共识。
共识算法的核心是在正常的节点间形成对网络状态的共识。
共识算法协议的属性:
1)一致性:所有的非缺陷进程必须同意同一个值
2)正确性:如果所有的非缺陷进程有相同的初始值,那么所有的非缺陷进行所同意的值是同一个初始值。
3)可结束性:非缺陷进程必须最终必须确定一个值。
BFT拜占庭容错系统:
拜占庭容错技术被设计用来处理异常行为(包括硬件错误、网络拥塞、以及恶意攻击),被设计用来处理这些异常行为。
发生故障的节点是拜占庭节点,正常的节点为非拜占庭节点。
一致性协议:
一致性协议要求来自客户端的请求在每个服务节点上都按照一个确定的顺序执行。
一致性协议把服务器节点分为两类:主节点和从节点,其中主节点仅有1个。
在协议中,主节点负责将客户端的请求排序;从节点按照主节点提供的顺序执行请求。
视图:每个服务器工作时所设定的配置信息;
一致性协议至少包含3个阶段:request---请求,pre-prepare---序号分配,reply---响应。
有的会有prepare---交互,commit---序号确认这俩阶段。
PBFT(实用拜占庭容错)算法流程:
PBFT算法前提,采用密码学算法保证节点之间的消息传送是不可篡改的。
PBFT容忍无效或者恶意节点数:f,为了保障整个系统可