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 প্রোভাইডারের নিজস্ব ট্রান্সপোর্ট ইন্টারফেস আছে।

সম্পর্কিত নিবন্ধ