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 დატოვეთ კვანძის რეალურ საბოლოო წერტილად. რუკაში მოცემული მნიშვნელობა შუამავალს ასახელებს. დაშვებულ საჯარო პროქსის მარშრუტზე მდებარე საჯარო 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 მომწოდებელს საკუთარი ტრანსპორტის ინტერფეისი აქვს.