如何编写脚本以在Hyperledger Composer中创建新的参与者和资产?

时间:2018-09-16 06:01:16

标签: hyperledger-composer

我正在尝试通过编写脚本在Hyperledger作曲家中创建新的参与者和资产。请帮我做到这一点。如果无法解决,请让我理解原因。请提供示例代码段。

谢谢

1 个答案:

答案 0 :(得分:1)

快速背景下,参与者和资产是您使用Composer Modeling Language建模的“资源”。其他资源是“事务和事件”。

对于您的用例,要在其中创建脚本以添加这些资源,则需要使用transaction processor functions。在这些功能中,您将利用registryfactory创建参与者和资产。另外,请记住,在创建事务处理器功能之前,您首先需要创建一个事务资源。

下面的示例代码:

说我们有一个参与者 User 。为了创建此参与者,我们使用事务 CreateUser 。因此,您的模型文件将是:

namespace org.network.participants

participant User identified by userId {
  o String userId
  o String name
  o String email
}

transaction CreateUser {
  o User userDetails
}

您的脚本文件将是:

/**
 * 
 * @param {org.network.participants.CreateUser} transactionRequest 
 * @transaction
 */
async function createUser(transactionRequest) {

    try {
        let userDetails = transactionRequest.userDetails;
        let userRegistry = await getParticipantRegistry('org.network.participants.User');
        let factory = await getFactory();
        let user = await factory.newResource('org.network.participants', 'User', userDetails.userId);

        user.name = userDetails.name;
        user.email = userDetails.email;

        return userRegistry.add(user);
    } catch(exception) {
        throw new Error(exception);
    }
}

您可以参考official composer documentation以获得进一步的参考。