首页 > 解决方案 > contract.evaluateTransaction(fcn,args) 在查询背书节点时是否进行交易?

问题描述

我正在使用 hyperledger fabric 1.4,并面临一个问题,在使用节点 sdk await contract.evaluateTransaction(fcn,args) 进行查询时,我收到此错误:-

Errors: ["2 UNKNOWN: invalid txid. got [00ce5ece85f645e6781515b10c9325e4f6fa743bb49042c940900db4359a42d1], expected [66e0e0c782c4a17b5815255ce5685ceb088f0dd47639950c2462144318197004]"], stack=FabricError

我只是很困惑它会创建一个新的交易吗?我在这里读到https://fabric-sdk-node.github.io/release-1.4/module-fabric-network.Contract.html#evaluateTransaction__anchor请看一下,因为我不清楚。

标签: transactionshyperledger-fabrichyperledgerpeerhyperledger-chaincode

解决方案


evaluateTransaction 和 submitTransaction 之间的区别在于 submitTransaction 将请求发送到适当的对等点(如果使用服务发现,则适当地基于背书策略,或者如果不使用服务发现,则基于通道中的所有对等点)并收集它收到的事务提案响应从请求到对等点并将这些请求提交给订购者以进行排序并发送给对等点进行验证并提交给区块链。

EvaluateTransaction 将向单个适当的对等点(即来自您组织的对等点)发送请求,并且不向排序者发送任何内容,而只是将响应返回给进行调用的应用程序。您通常使用评估事务来执行查询类型的请求。

查看错误消息,当您调用 evaluateTransaction 时,您似乎使用了不正确的事务 ID。除非您真的知道自己在做什么,否则最好让 evaluateTransaction 代表您为您生成交易 ID。


推荐阅读