如何通过websockets在本地RSK节点上订阅`newBlockHeaders`?

我正在使用以下端点连接到 RSKj:

ws://localhost:4444/

... 但是,我无法连接。

请注意,等效的 HTTP 端点http://localhost:4444/
对我有用,所以我知道我的 RSKj 节点运行正常。

我需要监听newBlockHeaders,所以我更喜欢使用 WebSockets(而不是 HTTP)。

我怎样才能做到这一点?

回答

RSKj 默认4444用作 HTTP 传输的端口;并4445作为 Websockets 传输的端口。另请注意,websockets 端点不在/,而是在websocket。因此ws://localhost:4445/websocket用作您的端点。

如果您使用的是 web3.js,则可以web3使用以下命令创建一个通过 Websocket 进行连接的实例:

const Web3 = require('web3');
const wsEndpoint = 'ws://localhost:4445/websocket';
const wsProvider =
  new Web3.providers.WebsocketProvider(wsEndpoint);
const web3 = new Web3(wsProvider);

您问题的第二部分可以使用eth_subscribeon完成newBlockHeadersweb3像这样使用上面的实例:

// eth_subscribe newBlockHeaders
web3.eth.subscribe('newBlockHeaders', function(error, blockHeader) {
  if (!error) {
    // TODO something with blockHeader
  } else {
    // TODO something with error
  }
});


以上是如何通过websockets在本地RSK节点上订阅`newBlockHeaders`?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>