我曾尝试执行两个账户之间转账的样本案例,同时参考: 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
期间收到了一些错误即使删除了transactionId
和timestamp
字段,也无效
答案 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” 和“时间戳” 表示将它们都删除。由于回送招摇会自动更新它,因此可以正常工作。 我希望它对所有面临相同问题的人都有效。