Corda 科达合同公司;非确定性合同规则

Corda 科达合同公司;非确定性合同规则,corda,Corda,Corda中的合同命令需要以确定的方式进行验证。那么,为什么可以验证以下表达式 LocalDateTime.MAX>=LocalDateTime.now()//true-LocalDateTime.MAX还有很长一段时间 UUID.randomUUID().toString()包含(“4”)//true-所有v4 UUID都包含一个“4” 我原以为contract命令会出问题,因为LocalDateTime.now()和UUID.randomuid()不会产生确定性结果 既然这些表达式不产生确定

Corda中的合同命令需要以确定的方式进行验证。那么,为什么可以验证以下表达式

LocalDateTime.MAX>=LocalDateTime.now()//true-LocalDateTime.MAX还有很长一段时间

UUID.randomUUID().toString()包含(“4”)//true-所有v4 UUID都包含一个“4”

我原以为contract命令会出问题,因为
LocalDateTime.now()
UUID.randomuid()
不会产生确定性结果


既然这些表达式不产生确定性的值,为什么可以在合同命令中验证它们?

我认为Corda还没有准备好DJVM。所以你可以写那种代码,但你不应该,因为它不是确定性的。目前,它更多的是一个“编写确定性代码”的指导原则,而不是一个规则,如果代码不正确,它将抛出错误。

这是正确的。从3.x开始,节点还没有使用DJVM。@Joel当Corda使用DJVM时,这会限制整个CorDapp中的非确定性API,还是仅在合同命令中使用?仅在
中验证