Hyperledger fabric 当使用在fabric go sdk中使用“WithSDK”配置的网关发送事务时,会发生瞬时_故障
我正在使用Hyperledger fabric 当使用在fabric go sdk中使用“WithSDK”配置的网关发送事务时,会发生瞬时_故障,hyperledger-fabric,hyperledger-fabric-sdk-go,Hyperledger Fabric,Hyperledger Fabric Sdk Go,我正在使用Fabric-go-sdk构建一个客户端服务器,以连接Hyperledger结构网络。要使用自定义日志系统,我使用fabsdk.New()获取一个FabricSDK对象,然后使用Gateway.WithSDK函数将其注入Gateway对象。检查以下代码: ccpPath:=getPath(“connectionprofile.json”,staticPath) sdk,err:=fabsdk.New(config.FromFile(ccpath)), WithLoggerPkg(&Fa
Fabric-go-sdk
构建一个客户端服务器,以连接Hyperledger结构网络。要使用自定义日志系统,我使用fabsdk.New()
获取一个FabricSDK
对象,然后使用Gateway.WithSDK
函数将其注入Gateway
对象。检查以下代码:
ccpPath:=getPath(“connectionprofile.json”,staticPath)
sdk,err:=fabsdk.New(config.FromFile(ccpath)),
WithLoggerPkg(&FabSDKLoggerProvider{}),//使用我的自定义日志系统
)
如果出错!=零{
返回nil,errors.Wrap(err,“未能创建新的fabsdk”)
}
gw,错误:=网关。连接(
网关.WithSDK(sdk),
网关。WithIdentity(钱包,“管理员”),
)
如果出错!=零{
返回nil,errors.Wrap(err,“无法通过结构网关连接网络”)
}
当我运行测试时,我得到一个错误:
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
方法发送事务的测试
当我定义了一个没有FabricSDK
的Gateway
对象时,它可以正常工作。也就是说,如果我使用下面的代码,测试将顺利通过。但是,在这种情况下,我不能使用我的自定义日志系统。(我只想禁用Fabric SDK的日志系统。)
ccpPath:=getPath(“connectionprofile.json”,staticPath)
gw,错误:=网关。连接(
gateway.WithConfig(config.FromFile(ccpath)),
网关。WithIdentity(钱包,“管理员”),
)
如果出错!=零{
返回nil,errors.Wrap(err,“无法通过结构网关连接网络”)
}
根据我的调查,由fabsdk.New()
初始化的FabricSDK
对象与gateway.Connect(gateway.WithConfig())
之间的区别在于由gateway.Connect(gateway.WithConfig())
创建的FabricSDK
对象具有fabsdk.WithMSPPkg(gw.mspfactory)选项
但另一个没有。我试着给我的fabsdk.New()
code提供相同的选项,但我找不到如何做
所以,我的问题是:
- 我如何处理“瞬时故障”错误,或
- 如何禁用Fabric SDK的默认日志记录系统