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 فراہم کنندہ کا اپنا ٹرانسپورٹ انٹرفیس ہے۔