Декораторы на языке моделирования Hyperledger Composer - PullRequest
0 голосов
/ 05 июня 2018

Я довольно новичок в Hyperledger Composer, и мне очень нужна ваша помощь, ребята!

Мне нужен актив, который будет определен динамически с N количеством свойств, которые на данный момент не известны и будут определеныконечным пользователем.

Я предполагаю, что это можно сделать с помощью декораторов на языке моделирования, но я не нашел примеров, которые бы полностью объясняли, как их использовать, включая взаимодействие с Front-End.

Чтобы быть более ясным, мне нужен совет о том, как можно реализовать что-то подобное в результате:

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

Я был бы очень признателен, если бы кто-то мог помочь мне с пример как описать актив в файле .cto и как реализовать создание актива в файле logic.js.

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Я понял, как с этим справиться.Может быть, это будет полезно для кого-то еще.Вот как я определил 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
}
0 голосов
/ 05 июня 2018

Я не думаю, что Декораторы, задокументированные в нижней части темы Язык моделирования , делают то, что вы хотите.Декораторы добавляются в модель во время разработки, как и все свойства.Например, вы можете добавить аннотации, чтобы повлиять на генерацию кода пользовательского интерфейса:

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

В зависимости от того, как часто меняется форма данных и какая часть данных является динамической, выможет быть в состоянии попытаться:

  • создать модель на основе входных данных из внешнего интерфейса (в основном, в случае использования генератора yo)
  • с использованием статической модели для большинства данныхно используя getNativeAPI в своей логике для небольших фрагментов данных, которые не имеют модель
  • , используя Fabric без инструментов Composer
...