Go-Ethereum
無法在 geth 上使用 web3.js
這是我的程式碼:
function send() { Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send; var web3 = new Web3("http://localhost:8545"); var data = web3.eth.getHashrate(); alert(data); }
當我執行 send() 函式時,我收到此錯誤:“
TypeError: this.provider.sendAsync is not a function
”
預設的 websocket 埠是 8546
你可以試試
var web3 = new Web3("ws://localhost:8546");
或連接到 HTTP JSON RPC
var web3 = new Web3("http://localhost:8545");
我認為這是 github 上的類似問題 https://github.com/ethereum/web3.js/issues/1119
這個想法是使用
Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send
在創建新實例之前。此外,正如@cleanunicorn 所發現的,您應該設置預設的 ws 埠 8546,除非您在執行 geth 時以不同方式定義它。
此錯誤可能是由連接問題引起的,因此請使用以下選項執行 geth
--ws --wsport 8546 --wsaddr "0.0.0.0" --wsorigins="*"