[Ethereum] Invalid JSON RPC response error when using truffle migrate + geth

ethereumjsgo-ethereumtestrpctruffletruffle-contract

I have been able to successfully deploy contracts on the ethereumjs testrpc with truffle without any issues. Now I wanted to do the same on a remote node running geth 1.6.1 but it gives me a JSON RPC error every time i try to run truffle migrate. There are no issues with ports and all ports are open. Tried setting up a fresh data directory , but same issue persists

command used in starting the geth client :-

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

my truffle.js file is as follows:-

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)
    }
  }
};

command used: truffle migrate –network geth

Result:

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)

Best Answer

I had the same error which was due to a wrong IP in host parameter. This error is apparently throw when truffle is unable to establish the connection to the network node.

In your truffle.js configuration you should only set the hostname, not the protocol. Ie:

You should have "10.0.0.241" instead of 'http://10.0.0.241'