Hyperledger Composer 建模语言中的装饰器

Decorators in Hyperledger Composer Modeling Language

我是 Hyperledger Composer 的新手,我真的需要你们的帮助!

我需要一个动态定义的资产,其中包含 N 个目前未知的属性,这些属性将由最终用户定义。

我假设这可以通过在建模语言中使用装饰器来完成,但我没有找到任何示例来充分说明如何使用它们,包括前端交互。

为了更清楚,我需要一个关于如何实现这样的结果的建议:

asset $CustomNameFromFrontEnd {
o String id
o $TypeFromFrontEnd1 $PropertyNameFromFrontEnd1
o $TypeFromFrontEnd2 $PropertyNameFromFrontEnd2
…
o $TypeFromFrontEndN $PropertyNameFromFrontEndN
}

如果有人可以帮助我提供 示例,我将不胜感激 我应该如何描述 .cto 文件中的资产以及我应该如何在 logic.js 文件。

我认为 Modeling Language topic 底部记录的装饰器不会为所欲为。装饰器是在设计时添加到模型中的,就像所有属性一样。例如,您可以添加注释来影响某些 UI 代码生成:

@frontEndApp("customArgument") asset CustomAsset { o String id o String customProperty1 }

根据数据形状变化的频率以及数据的动态比例,您可以尝试:

  • 根据来自前端应用程序的输入生成模型(几乎是 yo 生成器用例)
  • 对大部分数据使用静态模型,但在您的逻辑中对没有模型的小块数据使用 getNativeAPI
  • 在没有 Composer 工具的情况下使用 Fabric

我已经想出如何处理它了。也许它对其他人有用。这是我定义 CustomAsset 的方式:

enum FieldType {
 o String
 o Double
 o Boolean
 o Integer
 o DateTime
 o Long
}

concept customFieldName {
 o String customFieldName
}

concept customFieldValue {
 o FieldType customFieldValue
}

concept customField {
 o customFieldName customFieldName
 o customFieldValue customFieldValue
}

asset CustomAsset identified by id {
 o String id
 o String assetName
 o customField[] customFields
}

transaction CreateCustomAsset {
 o CustomAsset customAsset
}