【问题标题】:IBM Blockchain Platform - Unable to invoke transactionsIBM Blockchain Platform - 无法调用事务
【发布时间】:2021-05-03 19:50:12
【问题描述】:

我正在阅读 IBM 教程以更好地理解区块链的技术。我卡在步骤 A4.6:单击“myAssetExists”以打开事务视图。由于某种原因,当我在 VS Code 中连接到 Fabric Gateway 时,它没有在 Fabric Gateway 部分下显示“demo-contract@0.0.1”的下拉菜单。

Here is what it looks like in my VS Code. IBM tutorials show that it should say MyAssetExists, CreateMyAsset, etc.

然后我收到一条错误消息,说它无法获取智能合约演示合约的元数据...警告/错误如下所示:

[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 代码和一般编码的初学者。所以我不确定错误消息的确切含义。

【问题讨论】:

  • 你使用什么编程语言?
  • 教程让我使用 TypeScript。
  • 听起来你需要使用来自“Hyperledger Fabric v1.4”的编程模型,如果你没有安装这个,也许你应该尝试将它添加到你的项目中。
  • 谢谢!我现在就试试!

标签: visual-studio-code hyperledger-fabric ibm-blockchain


【解决方案1】:

我遇到了同样的错误,经过数小时尝试不同的事情后,我意识到在 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] 成功部署智能合约

现在交易出现在树中。

【讨论】:

  • 你能把你学的教程发给我吗?
  • 我可以确认这对我有用。正如教程所推荐的那样,我使用的是 Typescript,我不得不重新开始使用 Javascript,它确实有效。 @MahmoodH.Alnasser 可以在下载 IBM Blockchain Platform 的 VS Code 扩展时找到该教程。
【解决方案2】:

我尝试使用 javascript 并且它有效,然后我找到了 typescript 的另一种解决方案:

npm install -g typescript 

现在,使用 typescript 选项通过智能合约显示交易。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多