Verbindungsprobleme mit we3.Providern

Ich verwende die web3-API und definiere die web3-Instanz, indem ich einen Anbieter wie folgt festlege:

if (typeof web3 !== 'undefined') {
  web3 = new Web3(web3.currentProvider);
} else {
  // set the provider you want from Web3.providers
  web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}

Aber oft habe ich Probleme mit der Verbindung, ich arbeite mit dem Ropsten-Testnet und benutze es nur zum Testen und um etwas über Dapps zu lernen. Was ist eine gute Alternative, um diese Verbindungsprobleme zu lösen? Vielleicht Infura? oder gibt es da ein paar tipps zur lösung?

Sie können den Solidity-Browser verwenden, um die Verbindung mit Ihrem lokalen Knoten zu überprüfen, wenn alles in Ordnung ist. Andernfalls überprüfen Sie Ihre lokalen Einstellungen (Knotenport, ist RPC eingeschaltet, Firewall usw.).
Die Verbindung ist vielleicht nicht das Problem, weil ich arbeiten kann, aber im letzten Monat kann ich mich nicht verbinden, ich habe Fehler wie "Verbindung verloren" oder "Verbindung nicht gefunden" erhalten. Ich warte 5 Minuten und es schaltet sich ein wieder und funktioniert wieder, aber ich warte lieber nicht...

Antworten (1)

Wenn Sie dies zu Lern- und Testzwecken verwenden, würde ich vorschlagen, testrpc zu verwenden , das den Ethereum-Knoten simuliert. Es ist schnell und wird lokal ausgeführt, sodass keinerlei Verbindungsprobleme auftreten.

Mit testrpc kann ich später die Transaktionen in etherscan.io überprüfen? Ich weiß nicht, wie es funktioniert ...
Nein, es ist ein Testtool, das lokal ausgeführt wird, und Transaktionen werden nicht an eine öffentliche Blockchain übermittelt. Ich würde empfehlen, mit testrpc zu beginnen, um Ihre Verträge zu entwickeln, zu testen und umzugestalten, und erst, wenn sie ausgereift genug sind, öffentlich blockchian zu veröffentlichen. Infura ist eine gute Wahl für die Verbindung mit einem öffentlichen Knoten. Auch Geth im Light-Modus oder Parität mit Pruning synchronisieren extrem schnell. Dieser Ansatz wird zuerst lokale Tests durchführen und Ihnen viel Zeit sparen.
Ähm ok, und wie kann ich wissen, ob der Kontakt funktioniert? Zum Beispiel eine Transaktion von eth oder etwas ähnlichem mit dem testrpc.
Zuerst haben Sie Protokolle von testrpc in der Konsole, die den Transaktionsstatus und das verbrauchte Gas melden (ähnlich wie bei testrpc). Zweitens können Sie Tests schreiben, um abzufragen, ob die Vertragszustände korrekt aktualisiert wurden.
Die Verträge können also Dinge speichern, zum Beispiel eine Zustandsänderung, wie im RosptenTest-Netz?
Ja, jeder Aspekt der Ethereum Virtual Machine funktioniert genau gleich.
Okay, danke für die Erklärung, ich werde es versuchen ;)