首页 > 解决方案 > 为什么 Corda 合约在 Kotlin CorDapp 模板中是一个单独的模块?

问题描述

在 Kotlin CorDapp模板中,合约(和状态)是一个独立于工作流的模块。

这种分离的原因是什么?

标签: kotlincorda

解决方案


有两个原因:

  1. 每个 Corda 交易还包括包含合同定义作为附件的 jar。这样做是为了确保在稍后验证交易时正确的合约可用(考虑到合约可能会随着时间的推移而升级)。因此,将合约和流 jar 分开会减少附加到交易的合约 jar 的大小,从而减少交易的大小。在此处查看更多信息:https ://docs.corda.net/writing-a-cordapp.html#modules

  2. 它有助于升级。合约有约束,因此合约升级采取了相当复杂的路径。此外,我们预计联系人比流量更不容易升级。因此,将它们分隔在单独的模块中可以在只需要升级流时轻松升级,只需用新的流 jar 替换旧的流 jar 即可完成。在此处了解更多信息:https ://medium.com/corda/contract-upgrades-and-constraints-in-corda-425055a9a47f


推荐阅读