【问题标题】:Getting "read time out" error while trying to use a Python module (web3)尝试使用 Python 模块 (web3) 时出现“读取超时”错误
【发布时间】:2018-09-07 16:57:01
【问题描述】:

因此,虽然这 100% 与 Python 相关,但 Python 本身并不是什么大问题。该模块名为“web3”,用于与以太坊和solidity进行交互,但是当我尝试发送在本地节点上运行的小事务时,我会从“HTTP pool”左右获得读取超时。

该错误说明大约 10 个最大超时...所以如果我找到/增加 10 到 50 或 100,它可能会被修复?不幸的是,在线信息有限,遇到相同问题的人几乎无法通过很少的修复来解决它。 10倍!

【问题讨论】:

  • 你得到的错误在标题中引用不正确(我敢打赌),只是在正文中描述。请按字面意思完整引用。
  • @sorry,拼写错误是的,不知道如何编辑标题?
  • 好的,希望这行得通...:
  • >>> from web3 import Web3 >>> web3 = Web3(Web3.HTTPProvider("127.0.0.1:8545", request_kwargs={'timeout': 60}))
  • ^ 看来我可以在这里指定超时参数...所以我希望这是我需要增加的,现在必须测试它以确认。

标签: python ethereum web3


【解决方案1】:

假设您使用的是 web3.py,该库提供了设置超时的方法。

为 WebsocketProvider 设置参数websocket_timeout=60

from web3 import Web3
w3 = Web3(Web3.WebsocketProvider("ws://127.0.0.1:8546", websocket_timeout=60))

如果您使用的是 HTTP,则改为设置 request_kwargs={'timeout':60}

from web3 import Web3
w3 = Web3(Web3.HTTPProvider("http://127.0.0.1:8545", request_kwargs={'timeout': 60}))

文档: https://web3py.readthedocs.io/en/stable/providers.html

【讨论】:

    猜你喜欢
    • 2019-09-24
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 2013-02-23
    • 2021-08-28
    • 2020-12-30
    • 2016-03-22
    • 2018-08-29
    相关资源
    最近更新 更多