Ошибка: неверный ответ JSON RPC: не определено из приложения node web3.js

Я получаю Error: Invalid JSON RPC response: undefinedот своего приложения node.js, когда оно пытается выполнить функцию. Мои шаги:

  1. ethereum wallet 0.5.1 для развертывания контракта в тестовой сети.

  2. запустите клиент geth версии 1.3.3:

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

(Я могу запустить web3.eth.accountsиз консоли geth, и она вернет мои локально созданные учетные записи)

  1. использовал npm для установки web3 версии 0.15.3

  2. изнутри оболочки узла:

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

Также: $ telnet localhost 8546не дает связи

eth.accounts не определено; попробуйте запустить geth с --etherbaseфлагом вместе с вашим адресом.
@NikhilM, почему это работает в консоли geth? .... Я должен был уточнить, похоже, это ответ, который я получаю для любых методов, которые я вызываю в экземпляре web3.
Так у вас есть рабочие аккаунты в geth? какие-либо ошибки CORS на консоли?
@nikhilm Да, я так думаю - я не вижу ошибок в geth для тех же вызовов, которые я пытаюсь сделать через web3
Эта проблема была решена здесь: ethereum.stackexchange.com/questions/23719/…

Ответы (1)

из консоли geth:

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

затем я смог повторно подключиться к узлу и перечислить учетные записи. (неудивительно, что telnet ответил и на этом порту после запуска RPC из geth)

Взято отсюда:

методы web3 не реализованы