在CorDapps中,如何从其他类的定义中拆分共享类的定义(例如状态和契约)?

时间:2018-02-05 13:55:39

标签: corda

在Corda中,我了解任何包含实现合同接口的类的CorDapp JAR将作为附件自动上传到节点,并作为合同验证的一部分传播到其他节点,以便他们拥有合同的副本。

如何构建我的CorDapp,以便JAR只包含共享资源的定义,例如合同和状态,以及包含专有逻辑的任何内容,例如流程?

1 个答案:

答案 0 :(得分:1)

任何生产CorDapp都应遵循此处定义的结构:https://docs.corda.net/writing-a-cordapp.html#structure

这意味着你的CorDapp实际上应该由2个以上的模块组成,每个模块都会编译成自己的CorDapp。一个模块应该定义所有共享资源,例如合同和状态。其他模块应该依赖于此共享模块,如下所示:https://docs.corda.net/cordapp-build-systems.html#dependencies-on-other-cordapps

CorDapp模板(例如https://github.com/corda/cordapp-template-kotlin)显示以下模式:

  • 合同和状态在cordapp-contracts-states模块
  • 中定义
  • 其余类在cordapp模块中定义,该模块依赖于cordapp-contracts-states模块