我想询问您对以下用例的帮助和建议,这些用例与我们的新业务案例相关,CorDapp将用于管理软件许可证的使用和管理。
Corda是否有预先定义的结构或方法来定义不同州之间的父子关系,例如,一个合同州(主合同)有两个子合同状态(两种类型的许可合同)
如果我们想要跟踪区块链上的许可证使用情况,这是许可证状态的良好方向吗?我们目前的想法是甲方(许可证提供者)和乙方(许可证消费者)有一个约定的合同,甲方将提供乙方使用的100个许可证,但只有在乙方激活一个许可证后才会收取费用。所以从Corda的后端流程,甲方最初将发出100个许可证,其所有者是PartyA,这个共享事实将被初始化为交易,并将被添加到双方的分类账中。然后定期许可使用数据将从甲方系统中提取并通过初始化交易来更新分类帐,我们将使用“移动”流程来转移许可证状态的金额和所有者。例如,如果乙方激活了40个许可证,那么甲方的许可证状态金额将变为60,并且还有另一个新的状态,其中所有者是乙方,金额是40.我认为我应该在阅读后使用该状态的可用状态一些关于线性状态和可拥有状态的Corda文档,但不确定我的理解是否正确
Corda关于如何设计可用于智能合约的动态合约条款(验证menthod条件)的最佳做法是什么。例如,在许可证管理过程的初始版本中,两种类型的许可证及其价格将被定义为合同条款,我们计划将它们定义为州的属性(元数据)。如果以后需要添加一个新类型,我们应该如何最好地处理这种情况。是否有任何动态方法来定义状态的属性/元数据?我们理想的方法是最初没有定义任何术语(没有预先定义的许可类型),并允许用户在UI上动态添加不同类型的许可及其价格信息,然后这些动态定义的合同条款将存储在CorDapp中并且可以在后期使用,这种方法可以很容易地“复制”到不同的提供者。这可能吗?
答案 0 :(得分:0)
非常有趣的用例和场景。我们还没有在api包装器中正式确定父子状态的最佳实践,但只要您的事务也保持指针更新,您就可以使用相同的关系数据库模型处理状态集合。
我们对州代表性的思考包括3个分层场景: 1 - 资产组合 - 如etf或指数分组多个资产。这可以作为表示现有资产数据或分组功能的系绳的新投资组合资产移动 2 - 资产本身 - 这是一个线性状态,具有影响它的事件的生命周期。想想这就像公司股票背后的数据一样 3 - 可替代资产代表 - 可以参考资产的线性ID的现金流可替代产品 - 考虑股权的已发行股票
在这种情况下,2& 3个场景将ref数据与可互换状态关系联系起来。可互换状态可以存储对资产的线性ID的引用,并且资产可以存储权益的所有者的数组。根据您的查询,您还可以存储另一个关系表,用于映射不同的外键和主键。在执行改变发行或所有权的交易时,谨慎的部分考虑了这种逻辑链接
对于标准的以太坊工厂模式,cordapps可以分解为多种功能。例如,cordapp义务使用corda-finance-1.0.jar包来共享不同的库函数和自发现金和现金属性的定义。
回到资产示例,我们有一个利率互换示例cordapp,其合约代码定义了标准ISDA合约中的已知字段。通过此模板,您可以通过定义字段属性(如到期日和利率)来部署任何类型的州。
我认为许可用例可以为类型创建类似的字段,以了解业务逻辑或合同代码将如何发展。这也揭示了工具间隙,用于将工作流管理工具或界面包装在corda基础之上。