Das Abonnieren von newBlockHeaders funktioniert nicht

Ich mache das, um alle Blöcke aus dem Netzwerk zu bekommen:

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

aber Rückrufe werden nie aufgerufen (außer wenn ich Geth herunterfahre)

Verwenden von web3 1.0 und dem neuesten Geth unter Windows und Linux.

Auch mit Websockets ohne Glück versucht. Kann ich noch etwas versuchen?

Vielen Dank.

Ihre Syntax sieht korrekt aus, ich würde vermuten, dass die IpcProviderVerbindung nicht hergestellt wird. Ich habe dieses Beispiel-Repo zusammengestellt, das erfolgreich web3 v1.0 verwendet. Hier ist ein Arbeitsbeispiel für die Verwendung von Websockets zum Abonnieren von newBlockHeaders: github.com/leopoldjoy/react-ethereum-dapp-example/blob/master/…

Antworten (2)

Was für mich funktioniert hat, ist, das Ergebnis nicht aus dem onEreignis zu erhalten, sondern es im Rückruf zu erhalten:

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

Das hat bei mir funktioniert

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);
    }
});
geht nach paar minuten nicht