Как добавить события в цепочке кодов? (Hyperledger Fabric) - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь заставить события работать в 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?

1 Ответ

1 голос
/ 20 июня 2019

Возможно, имеется несоответствие между именем события цепного кода event1 и событием, которое вы слушаете trade-network

...