Das ist mein Code:
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);
}
Wenn ich die Funktion send() ausführe, erhalte ich diesen Fehler: " TypeError: this.provider.sendAsync is not a function
"
Der Standard-Websocket-Port ist 8546
Du könntest es versuchen
var web3 = new Web3("ws://localhost:8546");
Oder eine Verbindung zum HTTP JSON RPC herstellen
var web3 = new Web3("http://localhost:8545");
Ich denke, hier ist ein ähnliches Problem auf Github https://github.com/ethereum/web3.js/issues/1119
Die Idee ist zu verwenden
Web3.providers.HttpProvider.prototype.sendAsync = Web3.providers.HttpProvider.prototype.send
bevor Sie eine neue Instanz erstellen. Außerdem sollten Sie, wie von @cleanunicorn entdeckt, den Standard-WS-Port 8546 festlegen, es sei denn, Sie haben ihn beim Ausführen von Geth anders definiert.
Dieser Fehler kann durch ein Verbindungsproblem verursacht werden, also führen Sie geth mit den folgenden Optionen aus
--ws --wsport 8546 --wsaddr "0.0.0.0" --wsorigins="*"
Haren Sarma