Erhalten Sie Ereignisse von Kovan Testnet

Ich versuche, von einem Node.js-Server aus eine Verbindung zu Kovan Testnet herzustellen. Ich habe versucht, eine Verbindung herzustellen, um vergangene Ereignisse abzurufen.
Bisherige Schritte: -
Die Verbindung wurde über Infura hergestellt. Versuchte diese Schritte über mehrere Versionen

Version 0.20.3 (Version auf 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);
});

Trotz vorhandener Ereignisse wird keine Ausgabe erzeugt. Wenn Infura das Problem ist, gibt es eine andere Möglichkeit, Ereignisse von Kovan Testnet zu erhalten?

Ich habe versucht, mit web3-1.0.0.beta19 eine Verbindung zu Infura über Websockets herzustellen, aber festgestellt, dass es keine Websockets für Kovan gibt.

Antworten (2)

Ich habe eine Problemumgehung gefunden, indem ich den Zero-Client-Anbieter verwendet habe . Es funktioniert stabil für die von Infura bereitgestellten Mainnet- und Kovan-RPC-Verbindungen.

Verwenden Sie beim Starten der Parität mit, --chain=kovanum eine Verbindung zum Kovan-Testnetz herzustellen, die zusätzlichen Optionen von pubsub, parity, parity_pubsub in --ws-apis und fügen Sie auch --jsonrpcapis=alldie Option hinzu.

Wenn Sie die Parität mit den oben genannten Optionen starten, können Sie sich für Vertragsereignisse registrieren, indem Sie contractInstance.events.MyEvents()Ihren Javascript-Code in nodejs verwenden.

Meine nodejs-Anwendung, die perfekt funktionierte, während sie auf einem lokalen Ethereum-Knoten lief, hatte Probleme beim Erfassen von Vertragsereignissen, während sie zu Kovan Testnet wechselte. Ich konnte das Problem mit den oben genannten Optionen lösen.

Kopieren Sie den vollständigen Befehl, der für mich unten funktioniert hat.

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

Ich hoffe es hilft.