例如,我具有交易处理器功能。
/**
* creates transaction
* @param {org.somenamespace.someMOdel} model
* @transaction
*/
async function MyTransaction (model) {
return getAssetRegistry('org.SomeTransaction')
.then(function (result) {
var factory = getFactory()
var newInstruction = factory.newResource(
'namespace',
'asset',
'someId');
return result.add(newInstruction).then(function() {
request.post({ uri : 'www..', json : { ... }});
// Added to our ledger here, but could it still fail endorsment ?
});
});
}
当数据已提交/认可并且在所有对等点的总账中为100%时,我需要调用rest API(即:它不会被拒绝)。
这是否可以在事务处理器功能或任何其他方法中完成?
答案 0 :(得分:0)
事务处理器功能仅运行提案,它们将不知道其结果是否将成功提交给区块链。
Composer提供了实现提交/通知模型的客户端API(供其余服务器使用)。当您从客户端(或通过作曲家休息服务器)调用作曲家TP函数时,如果返回成功响应,那么您就知道事务已成功提交。但是,它不能保证已在所有对等方上落实了它,而是仅保证已将其已提交给与其能够进行通信并收到响应的所有对等方(但可以确保所有同行最终会将其保存在区块链上)
您的客户端应用程序可以提交事务,等待成功的响应,然后调用您的其余API。