Ungültiger JSON-RPC-Antwortfehler bei Verwendung von Truffle Migrate + Geth

Ich konnte Verträge auf dem ethereumjs testrpc mit Trüffel ohne Probleme erfolgreich bereitstellen. Jetzt wollte ich dasselbe auf einem Remote-Knoten tun, auf dem Geth 1.6.1 ausgeführt wird, aber es gibt mir jedes Mal einen JSON-RPC-Fehler, wenn ich versuche, die Truffle-Migration auszuführen. Es gibt keine Probleme mit Ports und alle Ports sind offen. Ich habe versucht, ein neues Datenverzeichnis einzurichten, aber das gleiche Problem besteht weiterhin

Befehl zum Starten des Geth-Clients: -

geth --datadir /home/ubuntu/privatenet/test1 --networkid "1234" --rpcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3,web3_extended" --rpc --port 30310 --rpcaddr "0.0.0.0" --rpcport 8110 --rpccorsdomain="*" --nat "any" --unlock '0,1' console 2>> /home/ubuntu/privatenet/test1/eth8.log

meine truffle.js-Datei ist wie folgt:-

module.exports = {
  networks: {
    development: {
      host: 'localhost',
      port: 8545,
      network_id: '*' // Match any network id
    },
    geth: {
      host: 'http://10.0.0.241',
      port: 8110,
      network_id: '1234', // Match network id
      from: '0x7824b8756cfa5131ead88e190e8adb10546fefaf' // account 0 
        (default account which has been already unlocked)
    }
  }
};

verwendeter Befehl: trufflemigrate --network geth

Ergebnis:

Compiling .\contracts\ UtilityEVEC.sol...
Compiling .\contracts\TokenWallet.sol...
Compiling .\contracts\contractContainer.sol...
Writing artifacts to .\build\contracts

Using network 'geth'.

    Running migration: 1_initial_migration.js
    Error: Invalid JSON RPC response: ""
        at Object.InvalidResponse (C:\Users\Administrator\AppData\Roaming\npm\node_modules\truffle\node_modu
    les\web3\lib\web3\errors.js:35:16)
    at XMLHttpRequest.request.onreadystatechange (C:\Users\Administrator\AppData\Roaming\npm\node_module
    s\truffle\node_modules\web3\lib\web3\httpprovider.js:115:32)
        at XMLHttpRequestEventTarget.dispatchEvent (C:\Users\Administrator\AppData\Roaming\npm\node_modules\
    truffle\node_modules\xhr2\lib\xhr2.js:64:18)
        at XMLHttpRequest._setReadyState (C:\Users\Administrator\AppData\Roaming\npm\node_modules\truffle\no
    de_modules\xhr2\lib\xhr2.js:354:12)
        at XMLHttpRequest._onHttpRequestError (C:\Users\Administrator\AppData\Roaming\npm\node_modules\truff
    le\node_modules\xhr2\lib\xhr2.js:544:12)
    at ClientRequest.<anonymous> (C:\Users\Administrator\AppData\Roaming\npm\node_modules\truffle\node_m
    odules\xhr2\lib\xhr2.js:414:24)
        at emitOne (events.js:96:13)
        at ClientRequest.emit (events.js:188:7)
        at Socket.socketErrorListener (_http_client.js:310:9)
        at emitOne (events.js:96:13)
Haben Sie versucht, Datadir zu entfernen und den Genesis-Block erneut zu instanziieren? Dies sind die Schritte zum Einrichten von Privatenet von Grund auf - ethereum.stackexchange.com/questions/125/… Überprüfen Sie außerdem, ob Port 8110 auf Ihrem Remote-Computer geöffnet ist.
Ja, das habe ich heute versucht. Ich habe es von Grund auf neu eingerichtet, bekomme aber immer noch den gleichen Fehler. Es gibt keine Probleme mit Ports. Kann nicht wirklich einen Grund finden, warum das passiert.
--rpcaddr "0.0.0.0" hat dies gerade bemerkt, ich denke, Sie sollten dies mit 10.0.0.241 ändern

Antworten (1)

Ich hatte den gleichen Fehler, der auf eine falsche IP im Host-Parameter zurückzuführen war. Dieser Fehler wird anscheinend ausgelöst, wenn Truffle die Verbindung zum Netzwerkknoten nicht herstellen kann.

In Ihrer truffle.js-Konfiguration sollten Sie nur den Hostnamen festlegen, nicht das Protokoll. Dh:

Sie sollten "10.0.0.241" anstelle von " http://10.0.0.241 " haben.