我有一个包含5个节点的网络,其中节点1是Company ABC,节点2到节点5是customer1,customer2,customer3等。如果customer1使用Company ABC的产品并且获得利润,则他必须支付一定的金额到公司ABC。利润公式因客户而异,客户不应看到其他客户的利润公式。
一个客户可以将公式用作A * B,而另一个客户可以将公式用作A + B * 10
我引用了链接:
When deploying Corda nodes across the network, which JARs have to be exactly the same?
我的疑问。
在我的场景中,应该在哪里写公式?在合同或流程中,还是应该置于状态?推荐哪个?
维护这么多节点级jar是否可行?
我可以部署仅在节点子集中可用的合同吗?
答案 0 :(得分:3)
1)如果您希望使计算对客户不公开,则应将此逻辑纳入流程。所有节点都将使用相同的协定,但是您的流可以通过该节点本地的实现从CorDapp中抽象出来。
2)是,所有CorDapp的状态和合同都将保持不变。只有流程会有所不同。这可能最终会成为一种常见的情况,因为在流程中会发生对外部系统的任何调用,并且您可以预料到这在实体之间会有什么不同。
3)您只需要考虑设计合同,这样它就不会拒绝您的利润函数计算出的任何值,并将同一份合同分发给所有人。
看看this示例CorDapp,它显示每个节点不同的业务逻辑