假设在 FISCO BCOS 网络中,有五个共识节点(如 A、B、C、D、E)通过共识机制(如 PBFT 或 RAFT)协同工作,确保交易的一致性和最终性
以下是 FISCO BCOS 网络中五个共识节点(A、B、C、D、E)处理10笔交易的详细过程:
1. 交易提交
- 客户端提交交易:
- 客户端将10笔交易提交给任意一个共识节点(假设提交给节点 A)。
- 节点 A 接收到交易后,将其暂存到内存池中。
2. 交易广播
- 广播交易:
- 节点 A 将接收到的交易广播给其他共识节点(B、C、D、E)。
- 其他节点(B、C、D、E)接收到交易后,也将其暂存到各自的内存池中。
3. 共识过程
-
共识节点选举:
- 根据共识机制(如 PBFT 或 RAFT),选举一个主节点(Leader)。假设节点 A 被选为主节点。
- 其他节点(B、C、D、E)成为备份节点(Backup Nodes)。
-
主节点打包交易:
- 主节点 A 从内存池中选择一批交易(例如10笔交易),打包成一个新的区块。
- 主节点 A 生成区块提议,并将区块提议广播给其他节点(B、C、D、E)。
-
备份节点验证:
- 备份节点(B、C、D、E)接收到区块提议后,验证区块中的交易是否合法。
- 验证通过后,备份节点向主节点 A 发送预准备(Pre-Prepare)消息。
-
预准备阶段:
- 主节点 A 收集到足够数量的预准备消息(例如,超过三分之二的节点同意),进入预准备阶段。
- 主节点 A 向所有节点广播准备(Prepare)消息。
-
准备阶段:
- 备份节点(B、C、D、E)接收到准备消息后,再次验证区块。
- 验证通过后,备份节点向主节点 A 发送准备确认(Prepare Ack)消息。
-
提交阶段:
- 主节点 A 收集到足够数量的准备确认消息(例如,超过三分之二的节点同意),进入提交阶段。
- 主节点 A 向所有节点广播提交(Commit)消息。
-
提交确认:
- 备份节点(B、C、D、E)接收到提交消息后,将区块写入本地的区块链中。
- 备份节点向主节点 A 发送提交确认(Commit Ack)消息。
4. 区块确认
- 最终确认:
- 主节点 A 收集到足够数量的提交确认消息(例如,超过三分之二的节点同意),最终确认区块。
- 区块被正式添加到区块链中,所有节点的区块链状态同步一致。
5. 交易完成
- 交易完成:
- 所有节点(A、B、C、D、E)的区块链状态同步一致后,10笔交易被成功打包上链。
- 客户端可以通过查询节点获取交易的状态和结果。
总结
在 FISCO BCOS 网络中,五个共识节点(A、B、C、D、E)通过共识机制(如 PBFT 或 RAFT)协同工作,确保交易的一致性和最终性。整个过程包括交易提交、交易广播、共识节点选举、主节点打包交易、备份节点验证、预准备阶段、准备阶段、提交阶段和最终确认。通过这些步骤,确保了交易的安全性和网络的稳定性。