Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “如何修复”;错误:14不可用:TCP写入失败“;使用hyperledger Fabric区块链应用程序_Javascript_Hyperledger Fabric_Blockchain - Fatal编程技术网

Javascript “如何修复”;错误:14不可用:TCP写入失败“;使用hyperledger Fabric区块链应用程序

Javascript “如何修复”;错误:14不可用:TCP写入失败“;使用hyperledger Fabric区块链应用程序,javascript,hyperledger-fabric,blockchain,Javascript,Hyperledger Fabric,Blockchain,实际上,我正在我的计算机上使用Hyperledger Fabric区块链应用程序(),我可以在端口8000上运行该应用程序 但我有一个问题:当我想用端口8000上的应用程序创建药物记录或更改药物持有者时,我的终端中有以下消息: “…交易提案良好,已成功发送提案,并且 收到ProposalResponse:状态-200,消息-“”调用失败 成功::错误:eventhub::错误有问题: 14不可用:TCP写入失败“ 有时我也有同样的信息,但是 …“TCP读取失败” 此外,交易成功的绿色信息和交易I

实际上,我正在我的计算机上使用Hyperledger Fabric区块链应用程序(),我可以在端口8000上运行该应用程序

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

“…交易提案良好,已成功发送提案,并且 收到ProposalResponse:状态-200,消息-“”调用失败 成功::错误:eventhub::错误有问题: 14不可用:TCP写入失败“

有时我也有同样的信息,但是

…“TCP读取失败”

此外,交易成功的绿色信息和交易ID的书写方式与图片中的示例不同,这两种情况都适用(创建药物记录和更换药物持有者)

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

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


提前感谢您的帮助:)

您的回答是正确的,代码示例与织物示例/fabcar chaincode类似。在fabcar中,开发人员并没有实现任何web api,这是他使用invoke.js的方式。但在drug应用程序中,开发人员实现了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)
}

有人告诉我这可能是GRPC的问题,或者是构建此应用程序的人员代码的问题(可能是他更改了hyperledger结构上的一些代码以适应其应用程序),根据您的错误消息,检查您的“调用”文件。“示例链码”或“药品链码”,哪一个是你首先实现的?这个问题的解决方案是这里->基本上你必须更改到“controller.js”文件中的app2函数(changer\u holer&add\u drug)。好的,我知道我的案例的答案,你最好重新考虑你的问题~