Ich habe im Moment eine dapp auf rinkeby laufen, Sie können es jetzt auf cryptogol.io ausprobieren , aber ich habe ein Problem beim Lesen von Ereignissen aus der Blockchain. Zum Beispiel habe ich gestern die Ereignisse happens
gemacht, damit jeder mit der Seite interagieren kann. Hier ist der Code zum Abhören des Ereignisses (es wird jedes Mal ausgeführt, wenn jemand die Seite unter www.cryptogol.io/market.html öffnet :
listenForEvents: function() {
console.log("escuchando")
App.contracts.KickerADN.deployed().then(function(instance) {
instance.AdnCreated({}, {
fromBlock: 0,
toBlock: 'latest'
}).watch(function(error, event) {
App.loadBody(event.args._adn.toNumber());
});
});
}
Wenn Sie die Seite öffnen, kann es länger als 1 Minute dauern, bis das Ereignis geladen ist. Die Funktion wird normal aufgerufen, aber das Ereignis erhält sie nicht rechtzeitig. Irgendeine Idee?
Das Ereignis des tnx-Aufrufs wurde nur ausgelöst, als der tnx bestätigt wurde, alias als tnx in einen versiegelten Block aufgenommen wurde, also dauert es einige Zeit.
Wie wäre es mit Change-Design? Es lädt alle Blöcke. AdnCreated ist ein Ereigniszugriff und das erste Argument ist eine Suchbedingung für ein indiziertes Ereignis. Dadurch wird die Anzahl der Scanziele reduziert. 2. Arg ist Skipper. fromBlock
ermöglicht es Ihnen, einige Blöcke zu überspringen. Wenn Sie also Ihren Vertrag in einen ignorierbaren veralteten Zustand versetzen, würde Checkpointing Ihr Protokoll schneller abfragen. Und das Setzen eines Cache-Servers ist auch eine Möglichkeit. Einige Benutzer würden jedoch sagen, dass es sich um eine zentralisierte Einheit handelt, tatsächlich tötet dieser Server die Fondssicherheit nicht.
Ismael