【问题标题】:Does contract.evaluateTransaction(fcn,args) make a transaction during query on endorsing peers?contract.evaluateTransaction(fcn,args) 在查询背书节点时是否进行交易?
【发布时间】:2019-11-13 04:07:49
【问题描述】:

我正在使用 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 请看一下,因为我不清楚。

【问题讨论】:

    标签: transactions hyperledger-fabric hyperledger peer hyperledger-chaincode


    【解决方案1】:

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

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

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

    【讨论】:

    • 您好,感谢您的回答,我的问题是,我已经使用 submitTransaction (discovery-true) 进行了交易,同时我们使用 evaluateTransaction 来查询结果,并根据该结果进行另一笔交易.但在执行我们得到了不正确的状态evaluateTransaction时出现的问题,我们抛出错误和流程进一步做TRANSATION,这一次我得到。[“2 UNKNOWN:无效TxID添加了[00ce5ece85f645e6781515b10c9325e4f6fa743bb49042c940900db4359a42d1],预计[66e0e0c782c4a17b5815255ce5685ceb088f0dd47639950c2462144318197004]”
    • 我猜 evaluateTransaction 已经进行了一笔交易,导致了这个错误,如何解决这个问题,任何帮助将不胜感激。
    • 我能猜到的唯一方法(没有看到您的代码)是您将事务 id 传递给 evaluateTransaction 调用。如果您正在这样做,那么解决方法是删除传入的交易 ID。您不会根据先前的交易 ID 评估交易。 evaluateTransaction 是一个全新的交易提案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2013-02-12
    • 2020-03-22
    • 1970-01-01
    相关资源
    最近更新 更多