Создал очень простое приложение Meteor для отображения текущего номера блока с помощью ethereum:block
.
Проблема: Несмотря на то, что текущий номер блока отображается при загрузке страницы, он не обновляется ни на странице, ни при запускеEthBlocks.latest.number
Значение EthBlock.latest.number
обновлений только при обновлении страницы.
Разве переменная не должна EthBlocks.latest.number
обновляться всякий раз, когда geth
обнаруживает новый блок?
клиент/currentBlock.html
<head>
<title>myDapp</title>
</head>
<body>
{{> currentBlock}}
</body>
<template name="currentBlock">
<h1>Current Block</h1>
<p> {{ currentBlock }} </p>
</template>
клиент/currentBlock.js
import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import './currentBlock.html';
Template.currentBlock.onCreated(function helloOnCreated() {
EthBlocks.init();
});
Template.currentBlock.helpers({
currentBlock() {
return EthBlocks.latest.number;
}
});
клиент /init.js
if (typeof web3 == 'undefined')
web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));
Geth начал использовать
geth --rpc --rpccorsdomain "http://localhost:3000"
Я думаю, это отвечает на ваш вопрос: автоматически обновлять баланс учетной записи с помощью web3.js без опроса.
Подводя итог, к сожалению, интуитивно понятной системы, которая просто обновляет вещи, пока нет, но вы можете использовать фильтры для прослушивания нового блока.
фетт
Никсиникс