web3.py прокси параметрлері: HTTPProvider және AsyncHTTPProvider
HTTPProvider үшін Requests стиліндегі проксиді, ал AsyncHTTPProvider үшін aiohttp стиліндегі проксиді пайдаланыңыз; бірдей request_kwargs мәндерін олардың арасында көшірмеңіз.
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 провайдерінің өз көлік интерфейсі бар.