介绍一下你所了解的共识算法。
Raft
什么是raft? Raft最初用于管理复制日志的共识算法,是能够实现非拜占庭下的强一致性的共识算法。
大致流程?
- 系统初始都为候选人角色,各自倒计时一个随机时间,某个节点的时间到了,便可以向其他节点发生请求,收到n/2-1的回复就成为leader节点。
- 其他节点变成follower,主节点向其他节点同步数据,其他节点收到后回复确认。
- 当主节点与其他节点断开,其他节点在选举leader节点,继续同步数据。当旧leader连回后,自动变成follower节点,同步其他节点数据。
缺点是什么? 算法不能解决拜占庭问题。
优点是什么? 节点之间能够同步相同的数据。
POW
POW是什么 工作量证明算法(在比特币和以太坊中使用)\\
大致过程 算法需要随机生成一个nonce(8字节)值,结合区块头(32字节),共40字节,经过多次哈希和异或计算,得到一个数,如果这个数小于2的256次方除以difficult。那个该节点就拥有区块的打包权利。
优点是什么 参与者无需经过许可就能参与挖矿计算,因此匿名性高。