No se puede hacer que la suscripción newBlockHeaders funcione

Estoy haciendo esto para obtener todos los bloques de la red:

var web3 = new Web3();
web3.setProvider(new Web3.providers.IpcProvider("...", net));
web3.eth.subscribe('newBlockHeaders', function (err, result) {
    ...
}).on('data', function (blockHeader) {
    ...
});

pero las devoluciones de llamada nunca se llaman (excepto cuando apago Geth)

Usando web3 1.0 y la última versión de Geth en Windows y Linux.

También probé con sockets web sin suerte. ¿Hay algo más que pueda probar?

Gracias.

Su sintaxis parece correcta, supongo que IpcProviderno se está conectando. Reuní este repositorio de ejemplo que utiliza con éxito web3 v1.0. Aquí hay un ejemplo funcional del uso de websockets para suscribirse a newBlockHeaders: github.com/leopoldjoy/react-ethereum-dapp-example/blob/master/…

Respuestas (2)

Lo que funcionó para mí no es obtener el resultado del onevento, sino obtenerlo en la devolución de llamada:

web3.eth.subscribe('newBlockHeaders', function (err, result) {
    if(!error) {
        console.log(result); // succcess!
    }
});

esto funcionó para mí

let Web3 = require('web3')

const web3 = new Web3(new Web3.providers.WebsocketProvider('wss://xxxxxx'))

web3.eth.subscribe('newBlockHeaders', function (error, result) {    
    if (!error) {
        console.log(result);
    }
});
no funciona despues de unos minutos