Da mehrere Webanwendungen entstehen, die im Wesentlichen Front-Ends für dapps sind, werden RPC-Aufrufe an localhost-Port 8545 getätigt (angeblich von web3.js, das im Webclient ausgeführt wird). Diese Ortsgespräche werden sogar von Websites getätigt, die auf öffentlichen URLs gehostet werden, was bei den allermeisten sicheren Web-Apps nicht vorkommt.
Obwohl die Benutzer wissen, dass sie „geth auf meinem Computer ausführen müssen“, verstehen sie möglicherweise nicht vollständig, dass dies geschieht oder welche Auswirkungen dies auf die Sicherheit hat. Wenn „etwas anderes“ als Geth oder ein anderer gültiger Ethereum-Knoten auf Port 8545 lauscht und die JSON-RPC-API implementiert, interagiert der Benutzer möglicherweise über diesen nicht vertrauenswürdigen Knoten mit dem Ethereum-Netzwerk.
Woher weiß web3.js, dass die lokal gehostete RPC-API ein gültiger Knoten ist?
Um die Frage zu beantworten, weiß web3 es nicht. Wenn der Port einen Dienst hostet, der eine passende Schnittstelle bietet, wird web3 diese verwenden, unabhängig davon, ob es sich um das offizielle Geth handelt oder nicht.
Sie können es versuchen web3.net.listening
. Diese Eigenschaft ist schreibgeschützt und gibt an, ob der Knoten aktiv auf Netzwerkverbindungen wartet oder nicht.
Sie können überprüfen, ob ein Client geöffnet ist und web3 mit ihm kommunizieren kann.
var listening = web3.net.listening;
console.log(listening); // true of false
Niksmac
Jamie Pitts
Nicolas Massart
Jamie Pitts
Nicolas Massart
Jamie Pitts
Jamie Pitts