当使用在fabric-go-sdk中使用"WithSDK"配置的网关发送事务时,会发生TRANSIE



我正在构建一个客户端服务器,以使用fabric-go-sdk连接Hyperledger Fabric网络。要使用自定义日志记录系统,我使用fabsdk.New()获取一个FabricSDK对象,然后使用gateway.WithSDK函数将其注入Gateway对象。检查下面的代码:

ccpPath := getPath("connection-profile.json", staticPath)
sdk, err := fabsdk.New(config.FromFile(ccpPath),
fabsdk.WithLoggerPkg(&FabSDKLoggerProvider{}), // using my custom logging system
)
if err != nil {
return nil, errors.Wrap(err, "failed to create a new fabsdk")
}
gw, err := gateway.Connect(
gateway.WithSDK(sdk),
gateway.WithIdentity(wallet, "admin"),
)
if err != nil {
return nil, errors.Wrap(err, "failed to connect the network via a fabric gateway")
}

运行测试时,出现错误:

Failed to submit: error registering for TxStatus event: could not create client conn: could not connect to peer0.test.bpl:7051: dialing connection on target [peer0.test.bpl:7051]: connection is in TRANSIENT_FAILURE

我运行的测试是使用Gateway对象及其Submit方法发送事务的测试。

当我定义一个没有FabricSDKGateway对象时,它工作正常。也就是说,如果我使用以下代码,测试会通过。但是,在这种情况下,我无法使用我的自定义日志记录系统。(我只想禁用结构 SDK 的日志记录系统。

ccpPath := getPath("connection-profile.json", staticPath)
gw, err := gateway.Connect(
gateway.WithConfig(config.FromFile(ccpPath)),
gateway.WithIdentity(wallet, "admin"),
)
if err != nil {
return nil, errors.Wrap(err, "failed to connect the network via a fabric gateway")
}

根据我的调查,由fabsdk.New()gateway.Connect(gateway.WithConfig())初始化FabricSDK对象之间的区别在于,gateway.Connect(gateway.WithConfig())创建的FabricSDK对象具有fabsdk.WithMSPPkg(gw.mspfactory)选项,而另一个对象没有。我尝试为我的fabsdk.New()代码提供相同的选项,但找不到该怎么做。

所以,我的问题是:

  • 如何处理"TRANSIENT_FAILURE"错误,或
  • 如何禁用结构 SDK 的默认日志记录系统?

谢谢。

在编写一些示例 CLI 以获取链码元数据时,我只是遇到了完全相同的两个问题

如何处理"TRANSIENT_FAILURE"错误

就我而言,dialing connection on target [peer0.org1.example.com:7051]: connection is in TRANSIENT_FAILURE错误是因为我使用的是 Fabric 测试网络 docker 环境,但我没有设置DISCOVERY_AS_LOCALHOST环境变量。DISCOVERY_AS_LOCALHOST确定在服务发现期间找到的 IP 地址是否从 docker 网络转换为本地主机,这在开发应用程序的"连接选项"文档中进行了介绍。

如何禁用结构 SDK 的默认日志记录系统?

我仍然想看到错误消息,但我能够更改日志记录级别以使用logging.SetLevel("", logging.ERROR)摆脱不需要的信息消息

ccmetadata 示例在 GitHub 上,如果有任何帮助的话

相关内容

  • 没有找到相关文章

最新更新