当前位置: 首页 > 知识库问答 >
问题:

Corda-在州验证公证人和自定义对象

颜欣怡
2023-03-14

我在Corda中发现了一个情况,其中状态有时需要存储自定义数据类型,但是当使用验证公证人时,使用这些状态验证事务失败。

考虑将在同一个包中、同一个jar文件中实现以下类型:

自定义类型示例

package com.example.statescontracts

@CordaSerializable
data class Foo(
    val bar: Int, 
    val baz: String
)

示例状态

package com.example.statescontracts

data class FooState(
    override val linearId: UniqueIdentifier,
    val obligor: AbstractParty,
    val obligee: AbstractParty,
    val foos: Set<Foo>
) : LinearState {
    override val participants get() = listOf(obligor, obligee)
}

向分类帐发出新的foostate实例可能不会受到影响,因为它没有使用以前的foostate实例,但后续使用foostate实例似乎无法验证公证人。

Java.lang.IllegalArgumentException:不是有效的Java名称:Java.util.set

假设

对于拥有States/Contracts JAR文件的状态的所有参与者都可以进行验证,因此可以访问foo类型,但是这对于公证人不起作用,因为它在本地没有States/Contracts JAR文件的副本。

有没有人可以验证我的假设是否正确,如果正确,为什么会出现验证公证人的这个问题,如何纠正这个问题?

共有1个答案

卫振
2023-03-14

正如技术白皮书中所描述的,预期的最终设计是将契约JAR从附件中取出,并在确定性JVM中运行,在那里它们被沙箱化和资源监控。

 类似资料:
  • 表单验证发生在数据验证之后。如果你需要定制化这个过程,有几个不同的地方可以修改,每个地方的目的不一样。表单处理过程中要运行三种类别的验证方法。它们通常在你调用表单的is_valid() 方法时执行。还有其它方法可以触发验证过程(访问errors 属性或直接调用full_clean() ),但是通用情况下不需要。 一般情况下,如果处理的数据有问题,每个类别的验证方法都会引发ValidationErr

  • 我想知道你是否可以使用vee validate插件编写自定义日期验证,其中结束日期不能小于开始日期?我到处寻找,我找不到确切的答案。 如果没有办法实现这一点,那么我可以凑合着没有它,但是,现在我已经在我的模板中实现了我的开始日期是: 我的脚本如下所示: 但是没有出现任何验证。我想我在我的脚本中丢失了一些东西,但我不确定如何将日期实现到那里。任何帮助将不胜感激。

  • 我试图在解决方案中配置Business network Operator服务,方法是在我的应用程序中添加r3提供的工具箱作为corrdap依赖项。我能够构建应用程序,但当我运行nodes时,我收到Notary错误 更新 我正在添加日志

  • 我有一个表单,它要求两个字段中至少有一个字段具有值才能有效。现在,我已经构建了一个指令“KeywordandAuthor”来处理此验证。我已经成功地让它正确地检查任何一个字段是否有值,如果有,则将验证设置为true。我不确定如何将其他字段的验证设置为true。以下是指令的当前代码: 如何将siblingElem的有效性设置为true? **编辑** 这是我想要的工作解决方案。 要实现的关键点是,n

  • 问题内容: 我有一个非常简单的表格: 这是自定义表单验证的完成方式吗?我需要评估该电子邮件地址当前没有用户存在。我还需要评估并匹配。我该怎么做呢? 问题答案: 要单独验证单个字段,可以在表单中使用clean_FIELDNAME()方法,因此对于电子邮件: 然后对于相互依赖的共同依赖字段,你可以覆盖在单独验证所有字段(email如上)之后运行的 方法: 我不确定你从哪里来,但是看起来这是为m你的表单

  • 我们已经用新机器替换了我们的网络地图和我们三个公证人中的一个。我们停止了所有节点。更改了node.conf文件中的配置,以指向新的公证和网络图,但启动后,所有网络环境都被破坏,我们无法提交节点之间的任何事务。 我们看到以下错误:1- 在纽特沃地图中 [错误] 2018-04-18T09:30:30,588Z [线程-12 (ActiveMQ-server-org.apache.activemq.a