从 Hyperledger Fabric v2.4 开始,有一个网关服务。它有助于使客户的交易流程更加容易。因此客户不需要手动收集背书。但问题是那里使用什么算法。
默认情况下,如果背书节点尚未从其他节点收集到足够的背书批准,Hyperledger Fabric Gateway 是否会向排序节点发送交易?
如果没有发送,那么网络中的其他组织是否有办法发现发生了此类无效交易?
文档似乎没有直接答案。
网关服务在 Endorse 调用期间用于收集交易提案背书的方法记录在 Fabric 文档中。 这里概述了应用程序客户端和网关服务之间用于事务提交的交互,其中包括 Endorse、Submit 和 CommitStatus 调用。
如果无法收集足够的背书来满足给定交易调用的有效背书策略,网关服务将从 Endorse 调用返回错误,客户端 API 会将其显示为背书错误(Go, 节点、Java)。然后,客户端将不会进行后续的 Submit 调用。在提交步骤中,背书的交易被发送给排序者以包含在区块中。简而言之,如果收集到的背书不足,则不会向订购者发送任何内容,也不会在区块链上记录任何内容。
Fabric 网络内背书失败的唯一信息将在网关服务和任何被调用以背书交易提案的对等点处。一些信息应该在每个参与节点的日志中捕获。