web3.py တွင် ပရောက်စီ ဆက်တင်များ- HTTPProvider နှင့် AsyncHTTPProvider
HTTPProvider အတွက် Requests ပုံစံ ပရောက်စီများနှင့် AsyncHTTPProvider အတွက် aiohttp ပုံစံ ပရောက်စီကို အသုံးပြုပါ၊ request_kwargs တူတူကို နှစ်ခုကြား ကူးယူမည့်အစား။
web3.py 7.14 တွင် HTTPProvider သည် Requests ကို အသုံးပြုပြီး AsyncHTTPProvider သည် aiohttp ကို အသုံးပြုသည်။ ၎င်းတို့၏ request_kwargs များသည် မတူညီသော HTTP client များဆီသို့ ရောက်ရှိသည်။
ထပ်တူကျသော HTTPS JSON-RPC endpoint အတွက်-
from web3 import Web3
client = Web3(Web3.HTTPProvider(
rpc_url,
request_kwargs={
'proxies': {'https': 'http://proxy.example:8080'},
'timeout': 20,
},
))rpc_url ကို node ၏ အမှန်တကယ် endpoint အဖြစ် ထားရှိပါ။ map ထဲရှိ တန်ဖိုးသည် ကြားခံသမားကို အမည်ပေးသည်။ ခွင့်ပြုထားသော အများသူငှာ ပရောက်စီ လမ်းကြောင်းပေါ်ရှိ အများသူငှာ RPC node အတွက် 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 ပံ့ပိုးသူတွင် ၎င်း၏ ကိုယ်ပိုင် သယ်ယူပို့ဆောင်ရေး အင်တာဖေ့စ် ရှိသည်။