Hyperledger fabric 在Hyperledger结构中,客户机是将事务发送到所有订单还是仅发送到一个订购者节点?

Hyperledger fabric 在Hyperledger结构中,客户机是将事务发送到所有订单还是仅发送到一个订购者节点?,hyperledger-fabric,blockchain,consensus,Hyperledger Fabric,Blockchain,Consensus,当客户订购一笔交易时,他是将其发送给PBFT中的所有订购者,还是只发送给一个/几个订购者 答案是:视情况而定 在Fabric中,一致性机制是可插拔的,因此,只要实现gRPC API,任何人都可以实现自己的订购服务: service AtomicBroadcast { // broadcast receives a reply of Acknowledgement for each common.Envelope in order, indicating success or type o

当客户订购一笔交易时,他是将其发送给PBFT中的所有订购者,还是只发送给一个/几个订购者

答案是:视情况而定

在Fabric中,一致性机制是可插拔的,因此,只要实现gRPC API,任何人都可以实现自己的订购服务:

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) {}
}
如果共识服务是CFT类型,如Kafka或Raft,那么客户机只需要向单个订购者发送事务

但是,Hyperledger结构存在拜占庭式容错一致性服务,在这些实现中,客户机无法假设所选订购方将诚实地包含其事务,因此需要像PBFT文件中那样将请求发送到所有节点


当Fabric将有一个正式的BFT订购者时,需要对客户端进行适当的配置

谢谢你的回答。我正在尝试为fabric实现一个版本的BFT。你能为我提供指导和资源吗。谢谢看我答案中的链接