首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web3.eth.subscribe未为web3版本1.0.0-beta.27实现

web3.eth.subscribe未为web3版本1.0.0-beta.27实现
EN

Stack Overflow用户
提问于 2018-01-09 17:06:52
回答 2查看 4.1K关注 0票数 2

我在web3版本的1.0.0-beta.27上,为了测试目的,我正在运行一个私有的ethereum块链。区块链正在挖掘,有两个用户,现在我想对区块链中的事件进行subscribe,并执行一些操作。守则如下:

代码语言:javascript
复制
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) }
});

我得到的东西是:

代码语言:javascript
复制
Error: The current provider doesn't support subscriptions: HttpProvider
at Subscription.subscribe 

从某种意义上说,这并不奇怪,因为当我在web3.eth.subscribe控制台上执行node.js时,我得到:

代码语言:javascript
复制
{ [Function] call: undefined }

尽管web3-1.0.0的文档声明了这个函数,但是可以使用:https://web3js.readthedocs.io/en/1.0/web3-eth-subscribe.html

  1. 那么,这仅仅是文档与实际实现不同步的问题吗?我用错了吗?
  2. 如果它没有实现,那么听取链中变化的最佳方法是什么?例如,如果我想实时更新一个用户的帐户余额?除了简单的函数实现之外,该函数每隔一秒钟就调用一次链子。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-09 18:12:12

正如错误提示的那样,pub/sub在HTTP上不可用。但是,您可以在WS上使用它。因此,您引用的文档并不是100%错误的,它只是省略了代码的提供程序部分。

尝试使用web连接(geth --ws --wsport 8545 ...,假设您使用的是geth)启动节点,并更改为WebsocketProvider

代码语言:javascript
复制
var Web3 = require("web3");     

var ether_port = 'ws://localhost:8545'
var web3       = new Web3(new Web3.providers.WebsocketProvider(ether_port));

web3.eth.subscribe("pendingTransactions"
                  , function(err, result){
    if (err){ console.log(err) }
    else { console.log("result: ", result) }
});

请参见关于此讨论票的第4条评论。

票数 7
EN

Stack Overflow用户

发布于 2019-02-19 16:47:32

使用附加的JS控制台打开它的更好方法

您可以使用> geth附加'ipc路径‘(即在我的示例中是/home/dev/..ethereum/geth.ipc)来附加

之后,您将连接到运行中的geth节点,并使用management的.现在你可以用

admin.startWS("localhost",‘端口号’)

当您想关闭连接时,可以使用下面的命令

admin.stopWS()

问候Dev

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48173304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档