Не удается получить доступ к geth с помощью JSON-RPC. Он возвращает {"jsonrpc":"2.0","ошибка":{"код":-32600,"сообщение":"EOF"}}

Я пытался получить доступ к geth через rpc.

$ geth --dev --datadir mydir --rpc --rpcaddr "localhost" --rpcport "8545" --rpccorsdomain "*" console

Однако он вернул ошибку. Не могли бы вы рассказать мне, как решить проблему?

{"jsonrpc":"2.0","error":{"code":-32600,"message":"EOF"}}

Обновление . Я подключился через rpc, однако в браузере я не могу подключить свой частный узел.

введите описание изображения здесь

Какой запрос JSON-RPC вы выполнили?
http://localhost:8545
Верен ли ответ?

Ответы (1)

Я подозреваю, что это команда, которую вы используете.

Это работает:

user@Kumquat:~$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://localhost:8545
{"jsonrpc":"2.0","id":1,"result":{"currentBlock":"0x1eb260","highestBlock":"0x1eb478","knownStates":"0x0","pulledStates":"0x0","startingBlock":"0x1eaea3"}}

И это не работает:

user@Kumquat:~$ curl '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://localhost:8545
curl: (3) [globbing] nested brace in column 50
{"jsonrpc":"2.0","error":{"code":-32600,"message":"EOF"}}

Вот несколько простых команд, которые вы можете протестировать:

user@Kumquat:~$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":1}' http://localhost:8545
{"jsonrpc":"2.0","id":1,"result":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}

user@Kumquat:~$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' http://localhost:8545
{"jsonrpc":"2.0","id":1,"result":"0x4a817c800"}
$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://localhost:8545 {"jsonrpc":"2.0","id":1,"result":false}
Ага. Ваша команда работает отлично. Ваш частный узел не синхронизируется, поэтому результат неверен.
Кажется, не работает. Я попробую отладить его.
> rpc {modules: { admin: "1.0", debug: "1.0", eth: "1.0", miner: "1.0", net: "1.0", personal: "1.0", rpc: "1.0", shh: «1.0», txpool: «1.0», web3: «1.0» }, getModules: function(callback) } Мой узел использует rpc:1.0. Это причина?
Ваш возвращаемый результат {"jsonrpc":"2.0","id":1,"result":false}является правильным результатом. Следующее будет работать на блокчейне Mainnet, возвращая баланс по адресу 0x0000...0000curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x0000000000000000000000000000000000000000", "latest"],"id":1}' http://localhost:8545 {"jsonrpc":"2.0","id":1,"result":"0x16d53d844d5d4397305"}модуль RPC v1.0 идеально подходит.
$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":1}' localhost:8545 {"jsonrpc":"2.0 ","id":1,"результат":"0x86d13ef4629e9b855a8045cd8b2f67ba6a736ba6"}
У меня есть данные из node. Спасибо! Однако при надежности браузера я не могу подключить локальный частный узел. Не могли бы вы выяснить, в чем причина?
Пожалуйста, задавайте новые вопросы, и я рассмотрю это.
Я задал вопрос! Пожалуйста, проверьте это :) ethereum.stackexchange.com/questions/7796/…