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 प्रोव्हायडरचे स्वतःचे ट्रान्सपोर्ट इंटरफेस आहे.

संबंधित लेख