Obtener eventos de Kovan Testnet

Estoy tratando de conectarme a la red de prueba de Kovan desde un servidor Node.js. He intentado conectarme para recuperar eventos pasados.
Pasos probados hasta ahora: -
La conexión se realizó a través de Infura. Intenté estos pasos en varias versiones

Versión 0.20.3 (Versión en Github):

var MyContract = web3.eth.contract(JSON);

contractAddress=<contractAddress>;
var contractInstance = MyContract.at(contractAddress);
var events = contractInstance.allEvents({fromBlock: 5000000, toBlock: 'latest'});

events.get(function(error, logs){
    console.log(logs);
});

A pesar de tener eventos, no se produce ninguna salida. Si Infura es el problema, ¿hay alguna otra forma de obtener eventos de Kovan Testnet?

Probé web3-1.0.0.beta19 para conectarme a Infura a través de websockets, pero me di cuenta de que no hay websockets para Kovan.

Respuestas (2)

Encontré una solución usando el proveedor de cliente cero . Funciona de manera estable para las conexiones Mainnet y Kovan RPC proporcionadas por Infura.

al iniciar la paridad con --chain=kovanpara conectarse a la red de prueba kovan, use las opciones adicionales de pubsub, parity, parity_pubsub en --ws-apis y también agregue --jsonrpcapis=allla opción.

si comienza la paridad con las opciones anteriores, podrá registrarse para eventos de contrato utilizando contractInstance.events.MyEvents()su código javascript de nodejs.

mi aplicación nodejs, que funcionó perfectamente mientras se ejecutaba en el nodo ethereum local, tuvo problemas para capturar eventos de contrato mientras se movía a la red de prueba de kovan. Pude resolver el problema con las opciones anteriores.

Copiando el comando completo que funcionó para mí a continuación.

parity --chain=kovan   --ws-apis="eth,net,web3,personal,web3,pubsub,parity,parity_pubsub" --rpcapi="eth,net,web3,personal" --jsonrpc-apis=all

Espero eso ayude.