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 нийлүүлэгч өөрийн тээврийн интерфейстэй.