在Hyperledger Composer中 - 如何验证资产转移交易中参与者所有者的存在

时间:2018-01-25 17:13:41

标签: blockchain hyperledger-fabric hyperledger hyperledger-composer

在"基本样本网络"或者"贸易网络"或者"弹珠 - 演示" Hyperledger Fabric Composer的示例 - 一旦提交了事务,它就会检查数据库中是否存在资产ID。但是,它不会检查新所有者(参与者)是否确实存在。如何检查新所有者是否实际存在于创建的数据库中?

2 个答案:

答案 0 :(得分:1)

发布的示例(类似) - 基于此代码进行交易'交易' - > https://github.com/hyperledger/composer-sample-networks/blob/master/packages/trade-network/lib/logic.js

indent inner next [

答案 1 :(得分:0)

我找到了确切的解决方案和语法..这是针对大理石交易演示,它检查参与者和资产的存在

/**
  * Trade a marble to a new player
  * @param {org.hyperledger_composer.marbles.TradeMarble} tradeMarble - the trade marble transaction
  * @transaction
  */
 function tradeMarble(tradeMarble) {
   return getParticipantRegistry('org.hyperledger_composer.marbles.Player')
     .then(function(playerRegistry) {
       return playerRegistry.exists(tradeMarble.newOwner.getIdentifier())
     })
      .then(function(exists) {
       if(!exists) {
         throw Error('Invalid participant id')
       } else {
        return getAssetRegistry('org.hyperledger_composer.marbles.Marble')
         .then(function (assetRegistry) {
          tradeMarble.marble.owner = tradeMarble.newOwner;
          return assetRegistry.update(tradeMarble.marble);
      });
       }
     })
 }