问题描述
所以我确实理解 Raft 协议的概念。
但在 Hyperledger Fabric Ordering Service 的用例中,我很挣扎。
目前我的理解:
当对等方提出并认可交易时,应用程序将其转发到排序服务。
Raft 领导节点收到此交易并将其写入他的日志,然后将其发送给他的跟随节点,这些跟随节点也更新他们的日志。
我不明白的地方:
- 块在哪里以及如何创建?
- 是否所有节点都创建一个块并检查大多数节点是否相同?
我在某处读到,leader 调用了 Blockcutter 方法,然后将生成的 Block 提交给本地 Raft 有限状态机(这是什么?)。
解决方法
对每笔交易都进行一轮共识太浪费了。取而代之的是,Raft 领导者将多个交易聚合到一个批次中,然后使用块切割器对象从该批次中创建一个块。
然后,Raft 领导者发起一轮共识,通过 Raft 协议将区块复制给所有追随者。