Hyperperger Fabric 1.4: como testar e verificar a função registerChaincodeEvent no SDK do nó da tela?
tualmente, estou emitindo um evento do meu código de código ao adicionar um ativ
async addRequestNode(ctx, sampleAssetId, sampleData) {
//console.info('============= Adding Sample Asset ===========');
await ctx.stub.putState(sampleAssetId,sampleData);
//console.info('============= Sample Asset Added ===========');
ctx.stub.setEvent('sampleAssetAdded', 'sampleData');
}
Aqui, como você pode ver, estou emitindo um evento 'sampleAssetAdded'. Quero capturar esse evento no meu aplicativo cliente.
Tenho uma configuração de servidor e estou ouvindo na porta 8080. No servidor instanciei o channelEventHub e dei meu ID do código do código de chaminé e o nome do event
const channelEventHub = new ChannelEventHub('mychannel','peer0.org1.example.com');
let eventCapture = channelEventHub.registerChaincodeEvent('fabcar','sampleAssetAdded',(event, block_num, txnid, status) => {
console.log('Successfully got a chaincode event with transid:'+ txnid + ' with status:'+status);
storeBlockNumForLater(block_num);
let event_payload = event.payload.toString('utf8');
if(event_payload.indexOf('CHAINCODE') > -1) {
clearTimeout(handle);
channel_event_hub.unregisterChaincodeEvent(regid);
console.log('Successfully received the chaincode event on block number '+ block_num);
resolve('RECEIVED');
} else {
console.log('Successfully got chaincode event ... just not the one we are looking for on block number '+ block_num);
}
},(error) => {
console.log('Got Some Error'+error);
})
Mas quando adiciono o ativo, o evento não é capturado. Não sei o que está errad
Eu até consolei o eventCapture e consegui isso
Event Capture ----> ChaincodeRegistration {
ccid: 'fabcar',
eventNameFilter: /sampleAssetAdded/,
event_reg:
EventRegistration {
_onEventFn: [Function],
_onErrorFn: [Function],
unregister: false,
disconnect: false,
unregister_action: [Function] } }
Não tenho certeza se ele está realmente se registrando no evento ou nã
Estou usando o SDK do nó e consultei este sitehttps: //fabric-sdk-node.github.io/release-1.4/tutorial-channel-events.htm, mas não é de todo útil, pois eles não têm o código completo e, em vez disso, têm fragmentos vagos com código incorreto ou que não está funcionand
Alguém pode ajudar em como configurar tudo isso e testá-lo també