web3.py 7.14 versijoje HTTPProvider naudoja Requests, o AsyncHTTPProvider – aiohttp. Jų request_kwargs pasiekia skirtingus HTTP klientus.

Sinchroniniam HTTPS JSON-RPC galiniam taškui:

from web3 import Web3

client = Web3(Web3.HTTPProvider(
    rpc_url,
    request_kwargs={
        'proxies': {'https': 'http://proxy.example:8080'},
        'timeout': 20,
    },
))

Palikite rpc_url kaip tikrąjį mazgo galinį tašką. Žemėlapio reikšmė įvardija tarpininką. Viešam RPC mazgui leistiname viešo tarpinio serverio maršrute HTTP tarpinių serverių sąrašas siūlo kandidatus HTTP tarpinio serverio reikšmėms abiejuose pavyzdžiuose.

Asinchroninis teikėjas vietoj to naudoja vienaskaitos proxy su URL reikšme:

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)

Tarpinių serverių kopijavimas į asinchroninį kelią sukelia netikėto raktinio žodžio klaidą aiohttp. Reikia pakeisti ir rašybą, ir reikšmės tipą.

Uždarykite asinchroninį teikėją su await provider.disconnect() jo valymo kelyje. Šie nustatymai priklauso HTTP teikėjams; WebSocket teikėjas turi savo transporto sąsają.

Susiję straipsniai