BSC websocket 端点延迟
Posted
技术标签:
【中文标题】BSC websocket 端点延迟【英文标题】:BSC websocket endpoint lantency 【发布时间】:2022-01-11 12:03:06 【问题描述】:我最近正在尝试监控 BSC 链上合约地址的交易以获取我的 dex 限价订单,我终于找到了一个稳定的解决方案来监控日志事件——“使用 web sockect 连接”。
bsc = "wss://ws-nd-112-055-480.p2pify.com/xxxxxxxxxxxxxxxxxxx"
web3 = Web3(Web3.WebsocketProvider(bsc))
poolAdd = '0x0eD7e52944161450477ee417DE9Cd3a859b14fD0'
block_filter = web3.eth.filter('fromBlock': 'latest', 'address': poolAdd, 'topics': [sha128Dic['swap']])
while 1:
log_new(block_filter)
time.sleep(1)
但是,我尝试在下面的列表中更改一些 websokect 端点提供程序,交换事件日志仍有一些巨大的时间延迟。其中一些发生在将近一小时前。
wss://bsc-ws-node.nariox.org:443
莫拉利斯:https://moralis.io/speedy-nodes/
ANKR:https://app.ankr.com/api
链栈:https://chainstack.com/build-better-with-binance-smart-chain/
当我切换回 http 提供程序时,例如:Web3.HTTPProvider('https://bsc-dataseed.binance.org/')。事件日志几乎是及时的,但一些“过滤器未找到异常将在时间流逝期间发现”。
这是写在 BSC websocket 简介上的注释:'您可以发出 eth_getLogs 请求,最大块范围为 5K。如果您需要频繁拉取日志,我们建议您使用 WebSockets 在可用时将新日志推送给您。'
谁能帮忙找到一个更好的方法来获得一个及时的 websocket 端点?
【问题讨论】:
【参考方案1】:Run your own node 用于最小化延迟。
如果你做不到,请打开你的钱包并browse the list of commercial node providers。
【讨论】:
以上是关于BSC websocket 端点延迟的主要内容,如果未能解决你的问题,请参考以下文章
HTTP/2 或 Websockets 用于低延迟客户端到服务器消息