在 CorDapps 中,如何将共享 类(例如状态和合约)的定义与其他 类 的定义分开?
In CorDapps, how can I split the definition of shared classes (e.g. states and contracts) from the definition of other classes?
在 Corda 中,我了解到任何包含实现合约接口的 class 的 CorDapp JAR 都将作为附件自动上传到节点,并作为合约验证的一部分传播到其他节点,以便他们拥有合同副本。
我如何构造我的 CorDapp,使 JAR 只包含共享资源的定义,例如契约和状态,而不包含专有逻辑,例如流程?
任何生产 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
模块有依赖
在 Corda 中,我了解到任何包含实现合约接口的 class 的 CorDapp JAR 都将作为附件自动上传到节点,并作为合约验证的一部分传播到其他节点,以便他们拥有合同副本。
我如何构造我的 CorDapp,使 JAR 只包含共享资源的定义,例如契约和状态,而不包含专有逻辑,例如流程?
任何生产 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
模块有依赖