为什么我不能使用 Caliper 将交易提交给 Hyperledger Fabric?

Why can't I commit transactions with Caliper to Hyperledger Fabric?

我已将 Caliper 配置为自定义 Fabric 区块链的子树。我已正确配置它以连接网络,目前正在 运行 进行一小组测试。就自定义链码 运行 而言,我提供的参数是绝对正确的,但每当我尝试通过 Caliper 创建交易时,我都会收到错误消息:

Failed to perform submit transaction [CreateAsset] using arguments [<ARGS>], with error: TypeError: Cannot read property 'status' of undefined

有人在使用 Caliper V0.4.2 之前遇到过这个问题吗?它通过 Kubernetes 与本地机器上的 Fabric 2.3.3 实例连接,绑定了最新的 SDK。

错误发生在 transactions.js 的第 237 行 node_module fabric-network 中,其中对提交对象进行了严格的 属性 比较。

另外值得注意的是,我的测试轮次的查询部分产生了预期的结果... none 这些资产是由于抛出的错误而创建的,并且在查询给定资产时出现类似的错误所以发生:

Failed to perform query transaction [ReadAsset] using arguments [<ID>], with error: Error: error in simulation: transaction returned with failure: Error: The asset <ID> does not exist

我能找到的最接近的东西是这个 ~2 年前的问题,它不完全是我面临的问题,但它至少是同一种错误......任何帮助或指示都是非常感谢,因为我正在努力收集有用的信息。 (Link: https://github.com/hyperledger/caliper/issues/727)

问题是由于当您想通过 docker 在本地处理网络 运行 以外的任何内容时,主机名被转换为 localhost。您需要使用以下额外选项启动 caliper

--caliper-fabric-gateway-localhost false