web3.py proksi sozlamalari: HTTPProvider va AsyncHTTPProvider
HTTPProvider uchun Requests uslubidagi proksilarni, AsyncHTTPProvider uchun esa aiohttp uslubidagi proksini ishlating; bir xil request_kwargs ni ular orasida ko'chirmang.
web3.py 7.14 da HTTPProvider Requests, AsyncHTTPProvider esa aiohttp dan foydalanadi. Ularning request_kwargs turli HTTP mijozlariga yetib boradi.
Sinxron HTTPS JSON-RPC so'nggi nuqtasi uchun:
from web3 import Web3
client = Web3(Web3.HTTPProvider(
rpc_url,
request_kwargs={
'proxies': {'https': 'http://proxy.example:8080'},
'timeout': 20,
},
))rpc_url ni tugunning haqiqiy so'nggi nuqtasi sifatida saqlang. Xaritadagi qiymat vositachini nomlaydi. Ruxsat etilgan ommaviy proksi yo'lidagi ommaviy RPC tugun uchun HTTP proksilar ro'yxati ikkala misolda ham HTTP proksi qiymatlari uchun nomzodlar beradi.
Asinxron provayder esa URL qiymatiga ega birlik proxy dan foydalanadi:
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)Proksilarni asinxron yo'lga ko'chirish aiohttp da kutilmagan kalit so'z xatosini keltirib chiqaradi. Ham imlo, ham qiymat turi o'zgarishi kerak.
Asinxron provayderni tozalash yo'lida await provider.disconnect() bilan yoping. Bu sozlamalar HTTP provayderlariga tegishli; WebSocket provayderining o'z transport interfeysi bor.