如何通过websockets连接到RSK公共节点?



我正在尝试通过websockets连接到RSK主网或RSK测试网。下面是我在Mainnet上尝试的内容:

const wsProvider = new Web3.providers.WebsocketProvider('ws://public-node.rsk.co');
const web3 = new Web3(wsProvider);
web3.eth.subscribe('newBlockHeaders', function(error, blockHeader){
if (!error) {
console.log("new blockheader " + blockHeader.number)
} else {
console.error(error);
}
});

显示如下结果:

connection not open on send()
Error: connection not open

我对Testnet做了同样的事情,但使用ws://public-node.testnet.rsk.co,得到类似的结果。从上面的错误中可以看出,这两种方法都不起作用。我如何连接?

米尔顿我不确定,但我认为websocket在公共节点中没有启用。

通常在我所知道的其他公共区块链节点中没有启用。

RSK公共节点仅通过HTTP公开JSON-RPC端点.

他们通过websockets暴露JSON-RPC端点;所以很遗憾,你不能完全做到你所描述的。

然而,你可以得到等价的东西通过运行自己的RSK节点,并使用它来建立websockets连接。

这是风险风险系数

您还可以看到默认配置值在"基地";配置文件,用于rpc.providers.ws

ws {
enabled = false
bind_address = localhost
port = 4445
}

另外,您应该在端点中包含/websocket后缀。当运行自己的节点时,默认的websocket端点是:ws://localhost:4445/websocket。因此,请更新代码的初始部分,它看起来像这样:

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

相关内容

  • 没有找到相关文章

最新更新