例如,我有一个事务处理器函数。
/**
* 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(即:它不会被拒绝(。
这可以在事务处理器函数或任何其他方法中实现吗?
交易处理器功能仅运行提案,他们不知道自己的结果是否会成功提交到区块链。
Composer提供了一个客户端API(rest服务器使用它(,实现了提交/通知模型。当您从客户端(或通过composer rest服务器(调用composer TP函数时,如果返回成功响应,则您知道事务已成功提交。然而,它并不保证它已经在所有对等体中提交,它只保证它已经提交给它能够通信的所有对等体,并收到一个响应,说它已经提交(但你可以确定,所有对等体最终都会在区块链上拥有它(
您的客户端应用程序可以提交事务,等待成功响应,然后调用其余的API。