所以我确实理解Raft协议的概念
但在Hyperledger Fabric Ordering Service的用例中,我很难处理它。
到目前为止我的理解是:
当对等方提出并认可交易时,应用程序会将其转发给订购服务。Raft Leader节点接收此事务并将其写入日志,然后将其发送给他的追随者节点,后者也会更新其日志。
我不明白的是:
- 块是在哪里以及如何创建的
- 是否所有节点都创建一个块并检查大多数节点是否具有相同的块
我在某个地方读到,Leader调用了Blockcutter方法,然后将生成的Block提交给本地Raft有限状态机(这是什么?(。
为每个事务进行协商回合太浪费了。相反,Raft负责人将几个事务聚合到一个批中,然后使用块切割器对象从该批中创建一个块。
然后,Raft领导者发起一轮协商一致,通过Raft协议将区块复制到所有追随者。