Я пытаюсь заставить события работать в Hyperledger Fabric. Я написал функцию setEvent в своем коде цепи и добавил слушатель (addContractListener) в файл приложения. Кажется, ничего не происходит
В моем файле контракта сразу после функции putState:
await this.ctx.stub.setEvent('event1', data);
В моем файле приложения сразу после функции submitTransaction:
let eventTxn = await contract.addContractListener('some-string', 'trade-network',
(err, event, blkNum, txid, status) => {
console.log('event received', status, event, blkNum, txid);
if (err) {
this.emit('error', err);
} else if (status && status === 'VALID') {
// only if a valid block is committed should we emit an event
let evt = event.payload.toString('utf8');
evt = JSON.parse(evt);
if (Array.isArray(evt)) {
for(const oneEvent of evt) {
this.emit('ChaincodeEvent', oneEvent);
}
}
else {
this.emit('ChaincodeEvent', evt);
}
}
},
{filtered: false}
);
Я добавил вышеуказанные строки кода в мой контракт и заявку. При выполнении функции приложения кажется, что ничего не происходит, и программа застревает, не возвращая ответа. Даже 'console.log' не выполняется, что означает, что он не входит в функцию полностью.
Я ожидал, что функция приложения будет выполнена.
Может ли кто-нибудь подсказать мне, как сделать простое событие в Hyperledger Fabric?