2

我正在寻找 DA 关于在生产级解决方案中编写和部署 DAML 代码和对象(.daml 和 .dar)的建议/最佳实践。让我们看一个场景 - 中央权威(CA)操作节点可以通过编写一个简单的 DAML 代码来根据合同向参与者 1(P1)发布一个新角色,以下是与 DAML 部署相关的几个问题 -

一个。假设 DAML 代码将由 CA 编写,我们可以说只有 CA 需要此代码及其在其节点上的构建,CA 将简单地执行合同工作流,允许 P1 节点上的 Party 简单地接受/拒绝角色而无需知道CA 编写的 DAML 代码(业务逻辑和其他合约模板)的内容?

湾。CA 节点编写的 DAML 代码文件(.daml)是否需要传输到参与者 1(P1)节点,以便 P1 验证并同意 DAML 文件代码(合约模板、各方和选择)并将代码及其也将(.dar)构建到其节点中?

C。如果上述问题的答案是肯定的,那么如何维护 DAML 代码的完整性,例如,如果 DAML 代码在部署时被 P1 或 CA 更改,这可能会导致以后发生冲突怎么办?

4

1 回答 1

1

必须以文件的形式将合同模型dar提供给参与在该dar文件中建模的工作流的所有节点。一个dar文件可以包含多个 DAML“包”,每个包都由其名称和哈希标识。在分类帐上,合同类型(称为template) 是完全合格的,包括包哈希。如果您更改模板,则包哈希会更改,因此分类帐会将新模板视为与旧模板完全不同。要更改现有合同模型,您必须使用 DAML 工作流程升级现有合同。当然,现有合约的所有签署方都需要同意升级工作流程。您只能单方面升级您完全控制的数据。在加密货币世界中,您可以将所有矿工视为签字人。要么他们都同意升级,要么硬分叉,导致同一货币的两种略有不同的模型。

DAML 中的这种模型升级过程在此处详细描述:https ://github.com/digital-asset/ex-upgrade

于 2019-04-16T20:34:00.050 回答