Fehler: Ungültige JSON-RPC-Antwort: undefiniert von Knoten web3.js-App

Ich erhalte Error: Invalid JSON RPC response: undefinedvon meiner node.js-Anwendung, wenn sie versucht, eine Funktion auszuführen. Meine Schritte:

  1. Ethereum Wallet 0.5.1, um einen Vertrag im Testnetz bereitzustellen.

  2. Starten Sie die Geth-Client-Version 1.3.3:

    $ geth --rpc --rpcaddr "0.0.0.0" --rpcapi "eth,web3" --rpcport 8546 --networkid 5678 attach
    

(Ich kann web3.eth.accountsinnerhalb der Geth-Konsole ausführen und es gibt meine lokal erstellten Konten zurück.)

  1. habe npm verwendet, um web3 Version 0.15.3 zu installieren

  2. aus der Node-Shell:

    > var Web3 = require('web3')
    > web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8546"))
    > web3.version.api
    '0.15.3'
    > web3.eth.accounts
    Error: Invalid JSON RPC response: undefined
    at Object.module.exports.InvalidResponse (/Users/jbowkett/node_modules/web3/lib/web3/errors.js:35:16)
    at HttpProvider.send (/Users/jbowkett/node_modules/web3/lib/web3/httpprovider.js:87:22)
    at RequestManager.send (/Users/jbowkett/node_modules/web3/lib/web3/requestmanager.js:58:32)
    at Eth.get [as accounts] (/Users/jbowkett/node_modules/web3/lib/web3/property.js:107:62)
    at repl:1:9
    at REPLServer.defaultEval (repl.js:252:27)
    at bound (domain.js:287:14)
    at REPLServer.runBound [as eval] (domain.js:300:12)
    at REPLServer.<anonymous> (repl.js:417:12)
    at emitOne (events.js:82:20)
    

Auch: $ telnet localhost 8546ergibt keine Verbindung

eth.accounts ist nicht definiert; versuchen Sie, geth mit --etherbaseFlag zusammen mit Ihrer Adresse zu starten.
@NikhilM wie kommt es, dass es in der Geth-Konsole funktioniert? .... Ich hätte klarstellen sollen, dass dies die Antwort zu sein scheint, die ich für alle Methoden bekomme, die ich in der web3-Instanz aufrufe
Du hast also funktionierende Accounts in Geth? Irgendwelche CORS-Fehler auf der Konsole?
@nikhilm Ja, ich glaube schon - ich sehe keine Fehler in Geth für die gleichen Aufrufe, die ich über Web3 zu machen versuche
Dieses Problem wurde hier gelöst: ethereum.stackexchange.com/questions/23719/…

Antworten (1)

von der Geth-Konsole:

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

dann konnte ich mich im Knoten wieder verbinden und die Konten auflisten. (Es überrascht nicht, dass Telnet auch auf diesem Port geantwortet hat, nachdem RPC aus Geth heraus gestartet wurde.)

Entnommen von hier:

web3-Methoden nicht implementiert