fabric的原子广播
程序员文章站
2022-07-14 15:58:36
...
属于orderer模块的内容
提供两个服务Broadcast 和 Deliver
以下是proto的部分定义(fabric\protos\orderer\ab.proto)
service AtomicBroadcast {
// broadcast receives a reply of Acknowledgement for each common.Envelope in order, indicating success or type of failure
rpc Broadcast(stream common.Envelope) returns (stream BroadcastResponse) {}
// deliver first requires an Envelope of type DELIVER_SEEK_INFO with Payload data as a mashaled SeekInfo message, then a stream of block replies is received.
rpc Deliver(stream common.Envelope) returns (stream DeliverResponse) {}
}
- Broadcast :接收来自客户端已经收集好的背书结果,进行排序,共识等过程写入区块。
Broadcast 请求消息包括链码的实例化、调用;通道的创建、更新。 - Deliver:peer从orderer获取block的过程。请求是一个类别是DELIVER_SEEK_INFO ,内容是json的(应该是指json.Marshal),会返回一个或者多个块信息。
这两个服务都是peer与orderer之间的
fabric源码解析23——Orderer服务