繁体   English   中英

如何使用Hyperledger Fabric区块链应用程序修复“错误:14无法使用:TCP写入失败”

[英]How to fix “Error: 14 UNAVAILABLE: TCP Write failed” with hyperledger Fabric blockchain application

我实际上正在我的计算机( https://github.com/rastringer/medication-blockchain )上使用此Hyperledger Fabric区块链应用程序,并且可以在端口8000上运行该应用程序。

但是我有一个问题:当我想使用端口8000上的应用程序创建毒品记录或更改毒品持有者时,我在终端中收到以下消息:

“ ...事务建议很好。已成功发送建议并收到ProposalResponse:状态-200,消息-”“无法成功调用::错误:eventhub出了问题::错误:14无法使用:TCP写入失败”

有时我有相同的信息,但是

...“ TCP读取失败”

此外,带有成功交易和交易ID的绿色消息并未像图片中的示例那样书写,而这两者(创建毒品记录和更改毒品持有者)均如此。

但是,当我刷新端口8000上的页面时,即使出现消息错误,新事务也会显示在表中。

并且我在另一台计算机上检查了该应用程序,并且没有这个问题(我具有最新版本的Linux Ubuntu 18.04.2)

预先感谢您的任何帮助 :)

您的答案是正确的,代码示例类似于fabric-samples / fabcar chaincode。 在fabcar中,开发人员未实现任何Web api,因此他使用了invoke.js。 但是在药物应用程序的情况下,开发人员实现了Web应用程序,而您无需在其中调用invoke.js。 但是由于应付了fabcar的链码,他忘记了删除调用部分!

func (s *SmartContract) Invoke(APIstub shim.ChaincodeStubInterface) sc.Response {

function, args := APIstub.GetFunctionAndParameters()
if function == "queryDrug" {
    return s.queryDrug(APIstub, args)
} else if function == "initLedger" {
    return s.initLedger(APIstub)
} else if function == "recordDrug" {
    return s.recordDrug(APIstub, args)
} else if function == "queryAllDrug" {
    return s.queryAllDrug(APIstub)
} else if function == "changeDrugHolder" {
    return s.changeDrugHolder(APIstub, args)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM