Я делаю это, чтобы получить все блоки из сети:
var web3 = new Web3();
web3.setProvider(new Web3.providers.IpcProvider("...", net));
web3.eth.subscribe('newBlockHeaders', function (err, result) {
...
}).on('data', function (blockHeader) {
...
});
но обратные вызовы никогда не вызываются (кроме случаев, когда я отключаю Geth)
Использование web3 1.0 и последней версии Geth в Windows и Linux.
Также безуспешно пытался использовать веб-сокеты. Есть ли что-то еще, что я могу попробовать?
Спасибо.
Что сработало для меня, так это не получить результат от on
события, а получить его в обратном вызове:
web3.eth.subscribe('newBlockHeaders', function (err, result) {
if(!error) {
console.log(result); // succcess!
}
});
Это сработало для меня
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);
}
});
Неизвестный пользователь
IpcProvider
не подключается. Я собрал этот пример репозитория, который успешно использует web3 v1.0. Вот рабочий пример использования веб-сокетов для подпискиnewBlockHeaders
: github.com/leopoldjoy/react-ethereum-dapp-example/blob/master/…