Go-Ethereum

Geth RPC 正在執行,但無法在 Web3 nodejs 中連接

  • January 14, 2018

在這裡絞盡腦汁,geth正在按預期執行 RPC,但我無法連接到它,web3因為我正在像這樣執行:

geth --rpc --rpccorsdomain "*" --rpcapi "eth,web3"

我正在執行它screen並在終端中看到它開始執行 RPC API,然後繼續同步區塊鏈。

我已確認 API 正在執行:

curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' http://localhost:8545

按預期返回:

{"jsonrpc":"2.0","id":67,"result":"Geth/v1.7.3-stable-4bb3c89d/linux-amd64/go1.9"}

我正在執行 nodejs v6.12.3npm install web3今天早上。我正在嘗試的 nodejs 腳本是:

#!/usr/bin/nodejs

var Web3 = require('web3');
var web3 = new Web3(); // returns as expected

web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));

var coinbase = web3.eth.coinbase;
console.log(coinbase); // undefined

我注意到在執行setProvider檢查web3我看到的對像後:

_provider: HttpProvider { host: 'http://localhost:8545', timeout: 0, connected: false },

我嘗試了許多其他web3.ethAPI,但沒有運氣。我怎樣才能把它連接起來?我在這裡從根本上誤解了什麼嗎?

npm現在預設安裝新版本的 API。您可以通過以下方式檢查:

var Web3 = require('web3');
var web3 = new Web3();
web3.version

如果 > 1.0.0 你需要參考這個文件:http ://web3js.readthedocs.io/en/1.0/index.html

或者獲取舊版本:

npm uninstall web3
npm install web3@0.20.3

我不應該被允許在電腦周圍。

引用自:https://ethereum.stackexchange.com/questions/36205