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

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

/**
 * 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 ответ

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

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

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

Другие вопросы по тегам