Blockchain 在Hyperledger Composer中-如何验证资产转移交易中参与者所有者的存在
在Hyperledger Fabric Composer的“基本样本网络”或“交易网络”或“大理石演示”样本中-提交交易后,它会检查数据库中是否存在资产ID。但是,它不会检查新所有者(参与者)是否确实在场。如何检查新所有者是否实际存在于创建的数据库中 发布的示例是(类似)-基于此交易“交易”代码->Blockchain 在Hyperledger Composer中-如何验证资产转移交易中参与者所有者的存在,blockchain,hyperledger-fabric,hyperledger,hyperledger-composer,Blockchain,Hyperledger Fabric,Hyperledger,Hyperledger Composer,在Hyperledger Fabric Composer的“基本样本网络”或“交易网络”或“大理石演示”样本中-提交交易后,它会检查数据库中是否存在资产ID。但是,它不会检查新所有者(参与者)是否确实在场。如何检查新所有者是否实际存在于创建的数据库中 发布的示例是(类似)-基于此交易“交易”代码-> 我找到了确切的解决方案和语法。。这是用于大理石交易演示的,它检查参与者和资产是否存在 /** * Trade a marble to a new player * @param {org.h
我找到了确切的解决方案和语法。。这是用于大理石交易演示的,它检查参与者和资产是否存在
/**
* 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);
});
}
})
}
/**
* 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);
});
}
})
}