Corda 如何支持 parent-child 关系
How does Corda support parent-child relationship
Corda 如何支持 parent-child 状态之间的关系(即一个 parent 状态到服务于不同目的的多个 child 状态)One-To-Many 关系。目前我只是通过将 parent 状态的参考编号( linear id )添加到每个 child 状态来做到这一点。
阐述:
parent 状态由每个 child 状态共享的公共信息组成,而 child 状态将包含仅与其自身相关的信息。每个 child 将独立进化或过渡到不同的生命周期,除非如果对 parent 状态采取行动,即取消,提前到期,它将级联到所有链接的 children 状态到 parent。同样,如果所有 children 状态都已经发展到生命周期的终点,即 SETTLED,则 parent 也必须能够整理并将自身转换为 SETTLED。
一个示例场景是买方将与卖方签发采购合同,该合同也包含不同的项目。因此,在一份采购合同中,可能有不同的产品,并且每个产品要运往不同的地点。但是,一旦所有物品都已发货并入账 (SETTLED),购买合同才会被 SETTLED。
只需通过 linearId
引用父状态中的子状态,反之亦然。
然后您可以在合同中施加规则 - 例如,您可以要求将购买合同标记为 Settled
的交易也将所有项目从卖方转移到买方。
如果用例发生变化并且此模型不再适用,请告诉我。
Corda 如何支持 parent-child 状态之间的关系(即一个 parent 状态到服务于不同目的的多个 child 状态)One-To-Many 关系。目前我只是通过将 parent 状态的参考编号( linear id )添加到每个 child 状态来做到这一点。
阐述:
parent 状态由每个 child 状态共享的公共信息组成,而 child 状态将包含仅与其自身相关的信息。每个 child 将独立进化或过渡到不同的生命周期,除非如果对 parent 状态采取行动,即取消,提前到期,它将级联到所有链接的 children 状态到 parent。同样,如果所有 children 状态都已经发展到生命周期的终点,即 SETTLED,则 parent 也必须能够整理并将自身转换为 SETTLED。
一个示例场景是买方将与卖方签发采购合同,该合同也包含不同的项目。因此,在一份采购合同中,可能有不同的产品,并且每个产品要运往不同的地点。但是,一旦所有物品都已发货并入账 (SETTLED),购买合同才会被 SETTLED。
只需通过 linearId
引用父状态中的子状态,反之亦然。
然后您可以在合同中施加规则 - 例如,您可以要求将购买合同标记为 Settled
的交易也将所有项目从卖方转移到买方。
如果用例发生变化并且此模型不再适用,请告诉我。