交易处理器功能 - 我如何知道数据何时 commited/endorsed
Transaction processor function - how can i know when data is commited/endorsed
例如,我有一个交易处理器功能。
/**
* 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 ?
});
});
}
我需要在数据为 committed/endorsed 并且 100% 在所有节点的分类账上(即:它不会被拒绝)时调用休息 API。
这是否可以在事务处理函数或任何其他方法中完成?
交易处理器的功能运行只是一个提案,他们不知道他们的结果是否会成功提交到区块链。
Composer 提供了一个客户端 API(其余服务器为其使用),它实现了一个 submit/notify 模型。当您从客户端(或通过 composer rest 服务器)调用 composer TP 函数时,如果返回成功响应,那么您就知道事务已成功提交。然而,它不保证它已在所有对等节点上提交,它仅保证它已提交给所有能够与之通信的对等节点并收到响应以表明它已提交(但您可以确定所有peers 最终会将它放在区块链上)
您的客户端应用程序可以提交事务,等待成功响应然后调用您的其余部分 API。
例如,我有一个交易处理器功能。
/**
* 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 ?
});
});
}
我需要在数据为 committed/endorsed 并且 100% 在所有节点的分类账上(即:它不会被拒绝)时调用休息 API。
这是否可以在事务处理函数或任何其他方法中完成?
交易处理器的功能运行只是一个提案,他们不知道他们的结果是否会成功提交到区块链。
Composer 提供了一个客户端 API(其余服务器为其使用),它实现了一个 submit/notify 模型。当您从客户端(或通过 composer rest 服务器)调用 composer TP 函数时,如果返回成功响应,那么您就知道事务已成功提交。然而,它不保证它已在所有对等节点上提交,它仅保证它已提交给所有能够与之通信的对等节点并收到响应以表明它已提交(但您可以确定所有peers 最终会将它放在区块链上)
您的客户端应用程序可以提交事务,等待成功响应然后调用您的其余部分 API。