【问题标题】:Some questions about a license management use case关于许可证管理用例的一些问题
【发布时间】:2018-06-03 16:24:42
【问题描述】:

我想就以下用例向您寻求帮助和建议,这些用例与我们的新业务案例相关,CorDapp 将用于管理软件许可证的使用和管理。

Corda 是否有预定义的结构或方法来定义不同状态之间的父子关系,例如一个合同状态(主合同)有两个子合同状态(两种许可合同)

如果我们想跟踪区块链上的许可证使用情况,这是否是许可证可拥有状态的一个好方向?我们目前的想法是甲方(License Provider)和B方(License Consumer)有一个约定的合同,甲方将提供B方100个License使用,但是只有在B方激活一个License后才会收费。所以从Corda 的后端流程,甲方最初将颁发 100 个许可证,所有者为甲方,这个共享事实将被初始化为交易,并将添加到双方的账本中。然后定期从甲方系统中提取许可证使用数据并通过初始化交易更新分类帐,我们将使用“移动”流程转移许可证状态的数量和所有者。例如,如果乙方激活了 40 个许可证,那么甲方的许可证状态数量将变为 60,并且还有另一个新状态,所有者是乙方,数量为 40。我认为我应该在阅读后为这个用例使用可拥有状态一些关于线性状态和可拥有状态的 Corda 文档,但不确定我的理解是否正确

关于如何设计可用于智能合约的动态合约条款,Corda 的最佳实践是什么(验证方法条件)。例如,在许可证管理流程的初始版本中,两种许可证及其价格将被定义为合同条款,我们计划将它们定义为状态的属性(元数据)。如果以后需要添加一种新类型,我们应该如何最好地处理这种情况。是否有任何动态方法来定义状态的属性/元数据?我们理想的做法是最初没有定义任何条款(没有预定义许可类型),并允许用户在 UI 上动态添加不同类型的许可及其价格信息,然后这些动态定义的合同条款将存储在 CorDapp 中并可以在后期使用,这种方法很容易被“复制”到不同的供应商。这可以吗?

【问题讨论】:

    标签: corda


    【解决方案1】:

    非常有趣的用例和场景。我们还没有正式确定 api 包装器中父子状态的最佳实践,但您可以使用相同的关系数据库模型处理状态集合,只要您的事务也保持指针更新。

    我们对状态表示的思考涵盖了 3 个分层场景: 1 - 资产组合 - 如 etf 或组合多个资产的指数。这可以作为新的投资组合资产移动,代表现有资产数据或分组功能的系绳 2 - 资产本身 - 这是一个线性状态,具有影响它的事件的生命周期。把它想象成股权背后的公司参考数据 3 - 可替代资产表示 - 可以参考资产线性 id 的现金流可替代变量 - 考虑为股权的已发行股份

    在这种情况下,2 和 3 场景具有 ref 数据与可替代状态的关系。可替代状态可以存储对资产线性 ID 的引用,并且资产可以存储权益所有者的数组。根据您的查询,您还可以存储另一个关系表来映射不同的外键和主键。谨慎的部分是在执行更改发行或所有权的交易时考虑这种逻辑链接

    对于标准的以太坊工厂模式,cordapps 可以分解为多个功能。例如,义务 cordapp 使用 corda-finance-1.0.jar 包来共享不同的库函数和关于自发现金和现金属性的定义。

    回到资产示例,我们有一个利率互换示例 cordapp,它的合同代码定义了标准 irs ISDA 合同中的已知字段。在此模板中,您可以通过定义到期日期和利率等字段属性来部署任何 irs 类型的状态。

    我想许可证用例可以为业务逻辑或合同代码如何演变的类型创建类似的字段。这也揭示了将工作流管理工具或界面包装在 Corda 基础之上的工具差距。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 2011-09-25
      • 2012-10-09
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多