Ungültige JSON-RPC-Antwort: nicht definiert

Ich versuche, ein Konto über Node.js zu erstellen. Das ist mein Code:

export async function createNewAccount() {
    var web3Instance =  new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
    return web3Instance.eth.accounts.create();
}

Aber ich erhalte den folgenden Fehler (von der 'create'-Funktion):

Ungültige JSON-RPC-Antwort: nicht definiert

Ich habe web3.js in meinem Projekt installiert.

Welchen anderen Schritt habe ich übersehen?

Übrigens, das Öffnen des Browsers unter der Adresse „ http://localhost:8545 “ gibt 404 zurück. Muss ich irgendetwas installieren, damit es funktioniert? Ist das der testrpc?

Beachten Sie, dass ich gegen die echte Blockchain arbeiten möchte, nicht gegen eine Test-Blockchain.

Bearbeiten:

Wie von Karthikeyan vorgeschlagen, habe ich geth heruntergeladen und gestartet. Ich weiß nicht, ob es wirklich funktioniert, es sieht so aus:

Geben Sie hier die Bildbeschreibung ein

Aber ich bekomme immer den gleichen Fehler, wenn ich versuche, ein Konto zu erstellen.

Haben Sie die lokale Blockchain in Ihrem System mit dem Befehl geth gestartet?
@KarthikeyanThangavel nein habe ich nicht. Eine lokale Blockchain ist eine Testkette? Weil ich mit dem echten arbeiten möchte. Wenn ich Node.js verwende, sollte ich außerdem Geth verwenden? Ich dachte, Geth ist für Go lang.
Sie müssen geth in Ihrem lokalen System mit rpc-Befehlen starten, sonst können Sie nicht mit der Haupt-Blockchain kommunizieren.
@KarthikeyanThangavel bist du sicher, dass es Geth ist und nicht etwas anderes? Weil das 'g' in 'geth' für Go lang steht, ich aber nicht Go verwende, sondern Node.js.
Ohne die Blockchain in Ihrem lokalen System zu synchronisieren, können Sie keine Blockchain-Operation durchführen.
Verwenden Sie geth, um die Blockchain in Ihrem lokalen System zu synchronisieren
@KarthikeyanThangavel Ja, ich verstehe, aber ist Geth das Richtige für mich, AUCH OBWOHL ICH GO LANG NICHT VERWENDE, ICH VERWENDE NODE.JS? Vielleicht gibt es ein Äquivalent für Node.js?
Wenn Sie mit dem Ethereum-Hauptnetz kommunizieren möchten, müssen Sie entweder Geth oder Pygeth verwenden, sonst können Sie es nicht. Wenn Sie Ihren Code testen möchten, können Sie das Paket ethereumjs-testrpc verwenden
@KarthikeyanThangavel OK, gut. Wie starte ich also geth in meinem lokalen System? Wenn die Erklärung zu lang ist, können Sie mich auf einen externen Artikel verweisen.
Siehe diesen Link ethereum.org/cli
@KarthikeyanThangavel Ich habe Geth gestartet, bin mir nicht sicher, ob es richtig funktioniert, wie Sie in meinem bearbeiteten Beitrag sehen können. Jedenfalls bekomme ich immer wieder den gleichen Fehler, wenn ich versuche, ein Konto zu erstellen.

Antworten (1)

Wenn Sie geth mit dem folgenden Code gestartet haben, bedeutet dies, dass es sich um ein Testnetzwerk (rinkeby) handelt.

geth --rinkeby --rpc --rpcapi db,eth,net,web3,personal --cache=2048  --rpcport 8545 --rpcaddr 127.0.0.1 --rpccorsdomain "*"

Auch wenn Sie ohne gestartet haben, müssen Sie die anderen Parameter wie , und alle anderen --rinkebyerwähnt haben, um mit der web3.js zu arbeiten--rpc--rpcapi

Ich möchte kein Testnetzwerk verwenden. Ich will das Echte. Welche Parameter soll ich setzen?
Aus der obigen Zeile entfernen --rinkebyund ausführen. Aber probieren Sie es besser in einem Testnetzwerk aus, bevor Sie es in einem echten Netzwerk tun