在localhost:3000上执行hyperledger结构代码时出错(通过REST) - transactionId

时间:2018-05-31 06:36:53

标签: localhost hyperledger-fabric hyperledger-composer

我曾尝试执行两个账户之间转账的样本案例,同时参考: https://medium.freecodecamp.org/ultimate-end-to-end-tutorial-to-create-an-application-on-blockchain-using-hyperledger-3a83a80cbc71

我已经执行了所有步骤,从创建.bna和.card到安装它们,启动网络等。 在创建RESTful API时,我能够在localhost:3000 / explore上看到区块链。 我还可以添加客户及其关联的帐户详细信息。

但是,在执行汇款时,默认情况下会生成两个字段:transactionId和timestamp。

screenshot showing 2 additional fields - timestamp and transactionId

这是造成麻烦的transactionId。 它不允许我将其留空,或填充任意值,或完全删除该字段。

error when transactionId field is left blank

更新

即使在撰写"transactionId" : true"transactionId" : false后,问题仍然存在。

另一位用户遇到了类似的问题。他们通过使他们的npm和node.js非root来修复它。就我而言,它已经是非root的。 it is non-root 是否有可能没有正确安装npm和node.js?我在安装npm errors during installation

期间收到了一些错误

即使删除了transactionIdtimestamp字段,也无效

error after removing both fields

2 个答案:

答案 0 :(得分:1)

事务ID(在示例中)理想情况下不应出现在POST操作的 Swagger 示例中。该示例由LoopBack代码(非Composer)完成的 LoopBack to Swagger 转换生成。你需要在你的JSON中删除它(以及理想的时间戳,因为Composer会更新它自己的)。

请参阅Why can I submit a transactionID with a transaction in hyperledger composer REST?获取答案。这个环回/招摇问题是针对环回创建的 - 最后一个问题是https://github.com/strongloop/loopback/issues/3510

答案 1 :(得分:0)

在研究并花费大量时间后,我也面临类似的问题。我发现这不是 npm 的问题,并且 node.js (如果我们将其安装为非root用户)。这是回送的问题,因此您必须发出一个API JSON请求而无需 “ transactionId” “时间戳” 表示将它们都删除。由于回送招摇会自动更新它,因此可以正常工作。 我希望它对所有面临相同问题的人都有效。