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