Ich habe ein lokales privates Testnetz eingerichtet und möchte jetzt eine Verbindung von Node.js zu einem Knoten im getesteten mithilfe von IPC herstellen. Ich habe einen Knoten mit diesem Befehl gestartet:
./geth --identity "5" --datadir /home/davide/Documents/Ether/5th/ --networkid 4999 --port 30600 --nodiscover --ipcpath /home/davide/Documents/Ether/5th/geth.ipc --shh
Dies ist meine node.js-Verschlüsselung
const http = require('http');
var fs = require('fs');
var net = require('net');
var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.IpcProvider('/home/davide/Documents/Ether/5th/geth.ipc', net));
console.log(web3.version);
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end(web3.version+' '+console.log(web3.currentProvider)+' '+console.log(web3.eth.accounts)+' '+web3.contentProvider);
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`+web3.eth.accounts[0]);
});
und auf der Webseite bekomme ich folgende Ausgabe:
1.0.0-beta.33 undefined undefined undefined
Wenn ich versuche, eine Verbindung herzustellen, geth attach
funktioniert alles, aber mit node.js nicht. Was ist das Problem?
Sie verwenden console.log im Server-Callback, dies wird in der Knotenkonsole widergespiegelt, nicht in Ihrer HTML-Ausgabe.
In web3 v1.0 web3.eth.accounts
ist ein Objekt, kein Array wie in früheren Versionen. Auch web3 v1.0 unterstützt nur asynchrone Methoden.