计算出符合条件的哈希值后,矿工就会把这个信息广播给集群中所有其他节点,其他节点验 证通过后,会将这个区块加入到自己的区块链中,最终形成一串区块链,就像下图的样子:
所以,就是攻击者掌握了较多的算力,能挖掘一条比原链更长的攻击链,并将攻击链 向全网广播,这时呢,按照约定,节点将接受更长的链,也就是攻击链,丢弃原链。就像下 图的样子:
ZAB协议Zab协议 的全称是 Zookeeper Atomic Broadcast (Zookeeper原子广播)。Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性。ZAB 协议的最核心设计目标就是如何实现操作的顺序性。
由于ZAB不基于状态机,而是基于主备模式的 原子广播协议(Atomic Broadcast),最终实现了操作的顺序性。
主要有以下几点原因导致了ZAB实现了操作的顺序性:
首先,ZAB 实现了主备模式,也就是所有的数据都以主节点为准:
其次,ZAB 实现了 FIFO 队列,保证消息处理的顺序性。
最后,ZAB 还实现了当主节点崩溃后,只有日志最完备的节点才能当选主节点,因为日志 最完备的节点包含了所有已经提交的日志,所以这样就能保证提交的日志不会再改变。