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

დაკავშირებული სტატიები