带有 Raft 协议的 Hyperledger Fabric:如何将交易打包到块中?
Hyperledger Fabric with Raft Protocol: How are transactions packaged into Blocks?
所以我明白了Raft协议的概念。
但我在 Hyperledger Fabric 订购服务的用例中遇到了困难。
目前我的理解:
当交易被节点提议和认可时,应用程序将其转发给排序服务。
Raft Leader-Node 收到此交易并将其写入他的日志,然后将其发送到他的 Follower-Nodes,后者也更新他们的日志。
不明白的地方:
- 块是在哪里以及如何创建的?
- 是否所有节点都创建一个块并检查大多数节点是否相同?
我在某处读到,Leader 调用 Blockcutter 方法,然后将生成的 Block 提交给本地 Raft 有限状态机(这是什么?)。
每一笔交易都做一轮共识太浪费了。相反,Raft leader 将多个事务聚合到一个 batch 中,然后使用 block cutter 对象从该 batch 创建一个块。
然后,Raft leader发起共识轮,通过Raft协议将区块复制给所有follower
所以我明白了Raft协议的概念。
但我在 Hyperledger Fabric 订购服务的用例中遇到了困难。
目前我的理解:
当交易被节点提议和认可时,应用程序将其转发给排序服务。
Raft Leader-Node 收到此交易并将其写入他的日志,然后将其发送到他的 Follower-Nodes,后者也更新他们的日志。
不明白的地方:
- 块是在哪里以及如何创建的?
- 是否所有节点都创建一个块并检查大多数节点是否相同?
我在某处读到,Leader 调用 Blockcutter 方法,然后将生成的 Block 提交给本地 Raft 有限状态机(这是什么?)。
每一笔交易都做一轮共识太浪费了。相反,Raft leader 将多个事务聚合到一个 batch 中,然后使用 block cutter 对象从该 batch 创建一个块。
然后,Raft leader发起共识轮,通过Raft协议将区块复制给所有follower