问题描述
我正在学习 IBM 教程,以便从技术上更好地理解区块链。我被困在步骤 A4.6:单击“myAssetExists”以打开交易视图。出于某种原因,当我在 VS Code 中连接到 Fabric Gateway 时,它没有在 Fabric Gateway 部分下显示“demo-contract@0.0.1”的下拉菜单。
然后我收到一个错误,说它无法获取智能合约演示合约的元数据...警告/错误如下所示:
[5/3/2021 2:29:19 PM] [警告] 无法获取智能合约演示合约的元数据。智能合约可能不是使用 Hyperledger Fabric v1.4+ 中为 Java、JavaScript 和 TypeScript 提供的编程模型开发的。错误:交易函数“org.hyperledger.fabric:GetMetadata”返回错误:查询失败。错误:在模拟误差::“同行org1peer-api.127-0-0-1.nip.io:8080未能执行事务c387520943329acbfcb67d1639b63467791006d9e6464deaa491426b3d940337:无法启动chaincode演示contract_0.0.1:6da187e384f13aa34360d36f2c645a793b7d811c32d4ae7b483d8519f312fa87:chaincode注册失败:失败等待容器退出:构建器“节点”运行失败:退出状态 1"]
我仍然是 VS 代码和一般编码的初学者。所以我不确定错误消息的确切含义。
解决方法
我遇到了同样的错误,经过几个小时的尝试不同的事情后,我意识到在 OUTPUT 窗口中,在部署智能合约后,显示了“智能合约部分部署 - 未提交”之类的消息。因此,我决定更改步骤 A2.5(教程 A2)中指示“单击‘TypeScript’”的值,我选择了“JavaScript”,然后我收到以下输出消息:
[5/5/2021 22:52:32] [SUCCESS] 成功通过智能合约定义 [5/5/2021 22:52:32] [INFO] commitSmartContract [5/5/2021 22:52:34] ] [SUCCESS] 成功提交智能合约定义 [5/5/2021 22:52:34] [SUCCESS] 成功部署智能合约
现在交易出现在树中。