En web3.py 7.14, HTTPProvider uzas Requests dum AsyncHTTPProvider uzas aiohttp. Iliaj request_kwargs atingas malsamajn HTTP-klientojn.

Por sinkrona HTTPS JSON-RPC finpunkto:

from web3 import Web3

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

Konservu rpc_url kiel la faktan finpunkton de la nodo. La valoro en la mapo nomas la peranton. Por publika RPC-nodo sur permesita publika proksa vojo, la listo de HTTP-proksoj provizas kandidatojn por la HTTP-proksaj valoroj en ambaŭ ekzemploj.

La nesinkrona provizanto anstataŭe uzas ununombran proxy kun URL-valoro:

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)

Kopii proksojn en la nesinkronan vojon kaŭzas eraron pri neatendita ŝlosilvorto en aiohttp. Ŝanĝiĝu kaj la literumo kaj la valora tipo.

Fermu la nesinkronan provizanton per await provider.disconnect() en ĝia puriga vojo. Ĉi tiuj agordoj apartenas al la HTTP-provizantoj; WebSocket-provizanto havas sian propran transportan interfacon.

Rilataj artikoloj