web3.py 7.14 ішінде HTTPProvider Requests-ті, ал AsyncHTTPProvider aiohttp-ны пайдаланады. Олардың request_kwargs мәндері әртүрлі HTTP клиенттеріне жетеді.

Синхронды HTTPS JSON-RPC соңғы нүктесі үшін:

from web3 import Web3

client = Web3(Web3.HTTPProvider(
    rpc_url,
    request_kwargs={
        'proxies': {'https': 'http://proxy.example:8080'},
        'timeout': 20,
    },
))

rpc_url-ді түйіннің нақты соңғы нүктесі ретінде қалдырыңыз. Картадағы мән делдалды атайды. Рұқсат етілген жалпыға ортақ прокси маршрутындағы жалпыға ортақ RPC түйіні үшін HTTP прокси тізімі екі мысалдағы да HTTP прокси мәндеріне үміткерлер ұсынады.

Асинхронды провайдер оның орнына URL мәні бар жекеше proxy пайдаланады:

from aiohttp import ClientTimeout
from web3 import AsyncHTTPProvider, AsyncWeb3

provider = AsyncHTTPProvider(
    rpc_url,
    request_kwargs={
        'proxy': 'http://proxy.example:8080',
        'timeout': ClientTimeout(total=20),
    },
)
async_client = AsyncWeb3(provider)

Проксилерді асинхронды жолға көшіру aiohttp ішінде күтпеген кілт сөз қатесін тудырады. Емлесі де, мән түрі де өзгеруі керек.

Асинхронды провайдерді тазалау жолында await provider.disconnect() арқылы жабыңыз. Бұл параметрлер HTTP провайдерлеріне тиесілі; WebSocket провайдерінің өз көлік интерфейсі бар.

Қатысты мақалалар