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 ప్రొవైడర్‌కు దాని స్వంత రవాణా ఇంటర్‌ఫేస్ ఉంది.

సంబంధిత వ్యాసాలు