微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何找出daml因果单调不一致性错误?

如何解决如何找出daml因果单调不一致性错误?

如果数据被修改,我将不断获取数据并启动新合同并更新模板。我收到以下错误,在更新或某些其他原因时,我无法确定该错误发生的时间。

Error: 3 INVALID_ARGUMENT: Inconsistent: Causal monotonicity violated
    at Object.callErrorFromStatus (/home/prachi/Documents/waste-water-management/trip_daml/contractService/node_modules/@grpc/grpc-js/build/src/call.js:31:26)
    at Object.onReceiveStatus (/home/prachi/Documents/waste-water-management/trip_daml/contractService/node_modules/@grpc/grpc-js/build/src/client.js:176:52)
    at Object.onReceiveStatus (/home/prachi/Documents/waste-water-management/trip_daml/contractService/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:342:141)
    at Object.onReceiveStatus (/home/prachi/Documents/waste-water-management/trip_daml/contractService/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:305:181)
    at /home/prachi/Documents/waste-water-management/trip_daml/contractService/node_modules/@grpc/grpc-js/build/src/call-stream.js:124:78
    at processticksAndRejections (internal/process/task_queues.js:79:11) {
  code: 3,details: 'Inconsistent: Causal monotonicity violated',Metadata: Metadata {
    internalRepr: Map { 'content-type' => [Array] },options: {}
  }
}

解决方法

因果单调性确保Ledger Time遵循因果关系。例如,合同中的while loop不可能在账本时间的fetch之前发生。确切的规则在here中进行了说明。

在早期版本的DAML中,客户端应用程序必须通过称为create或类似名称的API字段来提供账本时间。设置时间的方式必须使交易的分类帐时间等于或晚于该交易的任何输入合同的分类帐时间。在实践中,这确实非常困难,因为可以通过ContractIds和Contract Keys输入输入合同。

因此,在SDK 1.0中对模型进行了更改,以使适当的“分类帐时间”由提交命令的节点确定。不仅可以使用ledger_effective_timemin_ledger_time_abs参数给出最小范围。

因此,如果您使用的是SDK min_ledger_time_rel,或升级到SDK> = 1.0。

如果您已经在使用SDK> = 1.0,则可能会遇到一个错误,应将该错误报告给开发人员。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?