Go-Ethereum
Geth RPC 正在執行,但無法在 Web3 nodejs 中連接
在這裡絞盡腦汁,
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.3
,npm 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.eth
API,但沒有運氣。我怎樣才能把它連接起來?我在這裡從根本上誤解了什麼嗎?
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
我不應該被允許在電腦周圍。