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 लाई नोडको वास्तविक एन्डपोइन्टका रूपमा राख्नुहोस्। Map मा भएको मानले मध्यस्थकर्ताको नाम दिन्छ। अनुमति प्राप्त सार्वजनिक-प्रोक्सी मार्गमा रहेको सार्वजनिक 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 प्रदायकको आफ्नै ट्रान्सपोर्ट इन्टरफेस छ।

सम्बन्धित लेखहरू