ការកំណត់ប្រូកស៊ី web3.py៖ HTTPProvider និង AsyncHTTPProvider
ប្រើប្រូកស៊ីបែប Requests សម្រាប់ HTTPProvider និងប្រូកស៊ីបែប aiohttp សម្រាប់ AsyncHTTPProvider ជំនួសឱ្យការចម្លង 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 ជាចំណុចបញ្ចប់ពិតប្រាកដរបស់ node។ តម្លៃក្នុងផែនទីបញ្ជាក់អ្នកកណ្តាល។ សម្រាប់ node RPC សាធារណៈនៅលើផ្លូវប្រូកស៊ីសាធារណៈដែលអនុញ្ញាត បញ្ជីប្រូកស៊ី HTTP ផ្តល់បេក្ខជនសម្រាប់តម្លៃប្រូកស៊ី HTTP ក្នុងឧទាហរណ៍ណាមួយ។
អ្នកផ្តល់សេវាអសមកាលជំនួសមកវិញប្រើ proxy ឯកវចនៈជាមួយតម្លៃ URL៖
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 មានចំណុចប្រទាក់ដឹកជញ្ជូនផ្ទាល់ខ្លួន។