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

CORDA:如何使用附件作为以前交易的参考?

谢鸿
2023-03-14

如果我说一个事务B只有在它对以前的事务a有一些引用时才是有效的,那么我可以在事务B的附件中包含事务a的状态属性/合同代码吗?如何引用此附件,从何处检索?交易B的参与节点是否可以查看交易A的内容进行验证?

共有1个答案

东郭子默
2023-03-14

假设您有一个stateB,它仅在存在对给定事务的引用时有效。然后可以在stateB中定义signedtransaction类型的字段来保存引用。

在Kotlin:

class StateB(val txRef: SignedTransaction?) : ContractState {
    override val participants: List<AbstractParty> get() = listOf()
    override val contract: TemplateContract get() = TemplateContract()
}

在Java中:

class StateB implements ContractState {
    SignedTransaction txRef;

    StateB(SignedTransaction txRef) {
        this.txRef = txRef;
    }

    public SignedTransaction getTxRef() {
        return txRef;
    }

    @NotNull
    @Override
    public Contract getContract() {
        return new TemplateContract();
    }

    @NotNull
    @Override
    public List<AbstractParty> getParticipants() {
        return ImmutableList.of();
    }
}

signedtransaction的引用可为空。因此,您可以想象这样一个工作流:您首先创建一个“无效”的状态B--一个没有引用使其有效的事务的状态--然后通过一个事务演变该状态B,该事务输出具有相关联的签名事务状态B,使其成为“有效”的状态B

 类似资料:
  • “使用附件”页面声明: 附件是通过哈希从事务中引用的zip/jar文件,但不包含在事务本身中。 但是,API:Contract Constraints页面声明: 但是,在签出HashAttachment代码时,我没有看到它包含了契约Jar文件的内部内容。 我的假设是,我们不是在与交易一起转让合同罐子。所发生的情况可以描述如下: 在节点启动期间,Corda扫描所有CorDapps,并将包含契约类的J

  • 我尝试使用uploadAttachemnt方法上传zip文件,得到了一个secureHash作为输出。我试图下载相同的附件,使用hash作为openAttachmnet方法的输入,得到了一个InputStream。当我试图使用BuffeReader读取inputStream的内容时,它被加密了。我意识到我必须解压缩文件并读取它,所以我得到了这个包“import java.util.zip.ZipE

  • 无论我找到什么链接,他们都在谈论更改web.xml或添加AppCong,我不确定在Corda示例项目中如何做到这一点。 小队请帮忙。

  • 这是我能够产生问题的代码。

  • 在corda文件中说,即使交易在合同上是有效的,在签署之前也应该检查交易的内容。然而,流似乎自动化了事务签名过程。< br >如何以及何时检查交易内容。

  • 问题内容: 每当我要保留任何实体时,都会执行以下代码。看起来一切正常,但我不明白它是如何工作的! 上面的EntityManager是整个应用程序共享的单个实例。开始交易后;我只是说em.persist(entity)..hibernate如何知道它属于哪个事务! 假设我的应用程序上有10个并发用户,并且所有10个线程都在执行上述代码。因此,正在创建和提交10个独立的事务。但是我并没有将所有10个不