Mit web3.js kann keine Verbindung zum privaten Testnetz hergestellt werden

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 attachfunktioniert alles, aber mit node.js nicht. Was ist das Problem?

Antworten (1)

Sie verwenden console.log im Server-Callback, dies wird in der Knotenkonsole widergespiegelt, nicht in Ihrer HTML-Ausgabe.

In web3 v1.0 web3.eth.accountsist ein Objekt, kein Array wie in früheren Versionen. Auch web3 v1.0 unterstützt nur asynchrone Methoden.