Функция процессора транзакций - как я могу узнать, когда данные передаются / одобряются - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть функция процессора транзакций, например.

/**
 * 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 ?
             });
     });
}

Мне нужно вызвать API отдыха, когда данные зафиксированы / одобрены и составляют 100% в регистре по всем одноранговым узлам (то есть: этоне будет отклонено).

Возможно ли это сделать внутри функции процессора транзакций или любым другим способом?

1 Ответ

0 голосов
/ 28 ноября 2018

Функции обработчика транзакций запускают только предложение, они не будут знать, будут ли их результаты успешно переданы в цепочку блоков.

Composer предоставляет клиентский API (для которого использует остальной сервер), который реализуетотправить / уведомить модель.Когда вы вызываете функцию TP композитора с клиента (или через оставшийся сервер композитора), если возвращается ответ об успешном выполнении, вы знаете, что транзакция была успешно зафиксирована.Однако это НЕ гарантирует, что оно было передано всем одноранговым узлам, оно только гарантирует, что оно было передано всем равноправным узлам, с которыми он может общаться и получать ответ о том, что оно было совершено (но вы можете быть уверены, что всев конце концов одноранговые узлы получат его в блокчейне)

Ваше клиентское приложение может отправить транзакцию, дождаться успешного ответа и вызвать API остальных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...