Ошибка "read time out" при попытке использовать модуль Python (web3)

Так что, хотя это на 100% связано с Python, это не совсем проблема самого Python. Модуль, называемый "web3", используется для взаимодействия с Ethereum и надежностью, но когда я пытаюсь отправить небольшую транзакцию, выполняющуюся на локальном узле, я получаю тайм-аут чтения из "пула HTTP" или около того.

Ошибка говорит о 10 максимальных тайм-аутах... так что, если я найду / увеличу 10 до 50 или 100, это будет исправлено? К сожалению, в Интернете есть ограниченная информация, и людям, имеющим ту же проблему, едва удается решить ее с помощью нескольких исправлений. 10x!

1 ответ

Предполагая, что вы используете web3.py, библиотека позволяет установить тайм-аут.

Установите параметр websocket_timeout=60 для WebsocketProvider:

      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

Другие вопросы по тегам