web3.py proxy parametrləri: HTTPProvider və AsyncHTTPProvider
HTTPProvider üçün Requests üslubunda proxy, AsyncHTTPProvider üçün isə aiohttp üslubunda proxy istifadə edin; eyni request_kwargs-u aralarında köçürməyin.
web3.py 7.14-də HTTPProvider Requests, AsyncHTTPProvider isə aiohttp istifadə edir. Onların request_kwargs-u müxtəlif HTTP müştərilərinə çatır.
Sinxron HTTPS JSON-RPC son nöqtəsi üçün:
from web3 import Web3
client = Web3(Web3.HTTPProvider(
rpc_url,
request_kwargs={
'proxies': {'https': 'http://proxy.example:8080'},
'timeout': 20,
},
))rpc_url-i faktiki node son nöqtəsi kimi saxlayın. Xəritədəki dəyər vasitəçini göstərir. İcazə verilmiş ictimai-proxy marşrutunda olan ictimai RPC node-u üçün HTTP proxy siyahısı hər iki nümunədə HTTP proxy dəyərləri üçün namizədlər təqdim edir.
Asinxron provayder isə URL dəyəri ilə tək forma proxy istifadə edir:
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)Proxy-ləri asinxron yola köçürmək aiohttp-də gözlənilməz açar söz xətası yaradır. Həm yazılış, həm də dəyər tipi dəyişməlidir.
Asinxron provayderi təmizləmə yolunda await provider.disconnect() ilə bağlayın. Bu parametrlər HTTP provayderlərinə aiddir; WebSocket provayderinin öz nəqliyyat interfeysi var.