摘要
区块链类比于一种分布式存储系统,
这种存储系统有可持续增长,不可篡改的特点。
区块链中的共识是多个节点对某一个状态达成一致的过程。
PBFT是一种快速的共识机制。
但有无法动态调整网络的缺陷。
对此缺陷,江苏大学的储劲松提出了DNBFT共识,这里来学习一下。
PBFT共识
PBFT流程简述
PBFT共识过程分为四个阶段,分别是pre-prepare、Prepare、Commit、Reply。
pre-prepare: 所有普通节点向leader节点发送transaction交易信息,leader收集交易信息,并对transactions进行选择和排序,整理出来要写入新区块的交易集合,并广播这个transactions集合。
Prepare: 各节点收到transactions集合之后,在本地对transactions进行演算,更新节点状态。更新后,根据transactions计算的结果生成一个校验值,并将自己生成的校验值广播出去。
commit:当节点收到2f个不同节点发来的校验值,和自己的校验值比较相等之后,向全网广播一个commit消息。
Relay: 当leader节点收到2f个不同节点发来的commit消息之后,将提交新区块到本地的链上,并提交新区块。至此,新的区块上链。
详细共识流程和原理PBFT机制原理
PBFT节点进出机制
PBFT共识协议本身没有动态机制
PBFT本身不能动态共识,每一轮的节点数是固定的。这个特性在现实环境中有很多不利影响。例如,想新节点无法加入到网络中;恶意节点无法从网络中剔除。
例如,想用高吞吐、快速