【发布时间】:2018-06-18 18:57:38
【问题描述】:
我在 web3 版本 1.0.0-beta.27 上运行私有以太坊区块链以进行测试。区块链正在挖矿并且有两个用户,现在我想subscribe 到区块链中的事件并执行一些操作。代码如下:
var Web3 = require("web3");
var ether_port = 'http://localhost:8545'
var web3 = new Web3(new Web3.providers.HttpProvider(ether_port));
web3.eth.subscribe("pendingTransactions"
, function(err, result){
if (err){ console.log(err) }
else { console.log("result: ", result) }
});
我得到类似的东西:
Error: The current provider doesn't support subscriptions: HttpProvider
at Subscription.subscribe
在某种意义上并不奇怪,因为当我在 node.js 控制台上执行 web3.eth.subscribe 时,我得到:
{ [Function] call: undefined }
尽管web3-1.0.0 的文档声明该函数可以使用:https://web3js.readthedocs.io/en/1.0/web3-eth-subscribe.html。
那么这仅仅是文档与实际实现不同步的问题吗?是我用错了吗?
如果没有实现,监听链中变化的最佳方式是什么?例如,如果我想实时更新用户的账户余额?除了一个简单的函数实现之外,该函数每
n几分之一秒对链执行一次 ping 操作。
【问题讨论】:
标签: node.js blockchain ethereum web3