تنظیمات پراکسی در 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 در هر دو مثال فراهم میکند.
ارائهدهنده ناهمگام در عوض از 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 رابط انتقال خودش را دارد.