web3-Methoden nicht implementiert

Ich führe einen Geth-Knoten im Testnetz aus und versuche, die web3.js-Methode von meinem Knotenservercode auszuführen.

Hier ist mein Code

var Web3 = require("web3");
var web3 = new Web3(new Web3.providers.HttpProvider('http://0.0.0.0:8545'));
console.log(web3.net.peerCount);

Ich erhalte jedoch den Fehler, dass die net_peerCount-Methode nicht implementiert ist.

Tatsächlich erhalte ich einen ähnlichen Fehler, dass die Methode nicht implementiert ist, wenn ich versuche, auf net- oder eth-Methoden zuzugreifen.

Jede Hilfe geschätzt!

Antworten (3)

Ich habe es zum Laufen gebracht, indem ich den Befehl ausgeführt habe, den ich in der Dokumentation https://github.com/ethereum/go-ethereum/wiki/JavaScript-Console#adminstartrpc gefunden habe

admin.startRPC("127.0.0.1", 8545, "*", "web3,db,net,eth")

von meiner Geth-Konsole!

Danke für die Vorschläge :)

Könnten Sie diesen Befehl bitte ein wenig erläutern, vielleicht ein Zitat aus der Dokumentation hinzufügen? Dann sollten Sie es als beantwortet markieren.

Versuchen Sie, Fälle nicht zu mischen, wenn Sie die web3-Variable verwenden. Wenn Sie die Adresse angeben, haben Sie hoffentlich nicht 0.0.0.0 verwendet. Hier ist ein Beispiel für einen lokalen Knoten:

var web3=require('web3');
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));

Als Referenz konsultieren Sie das Javascript-API-Hilfedokument im doc-Verzeichnis.

Ich musste beim Starten von Geth eine rpcdomain hinzufügen, um Zugriff zu erhalten. Um den Zugriff von allen Domänen zuzulassen, können Sie Folgendes verwenden: geth --rpc --rpccorsdomain="*"

Diese Antwort auf reddit hat mir geholfen.

Führen Sie geth aus mit:

geth --rpc --rpcapi "web3,net,personal,eth"

Die "persönliche" API wird standardmäßig nicht mit der --rpcOption angezeigt. Sobald Sie das oben Gesagte tun, werden alle aufgelisteten angezeigt, einschließlich persönlicher, mit denen Sie das tun können personal_unlockAccountund personal_newAccount(wovon ich annehme, dass Sie danach suchen).