No se puede conectar a una red de prueba privada con web3.js

Configuré una red de prueba privada local y ahora quiero conectarme desde Node.js a un nodo en el probado usando IPC. Empecé un nodo con este comando:

./geth --identity "5"  --datadir /home/davide/Documents/Ether/5th/ --networkid 4999 --port 30600 --nodiscover --ipcpath /home/davide/Documents/Ether/5th/geth.ipc --shh

Este es mi cifrado node.js

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]);
});

y en la página web obtengo el siguiente resultado:

1.0.0-beta.33 undefined undefined undefined

Si trato de conectarme, geth attachtodo funciona, pero con node.js no funciona. ¿Cuál es el problema?

Respuestas (1)

Está utilizando console.log en la devolución de llamada del servidor, esto hará eco en la consola del nodo, no en su salida html.

En web3 v1.0 web3.eth.accountses un objeto, no una matriz como en versiones anteriores. Además, web3 v1.0 solo admite métodos asíncronos.