Proksaj agordoj en web3.py: HTTPProvider kontraŭ AsyncHTTPProvider
Uzu proksojn laŭ stilo Requests por HTTPProvider kaj prokson laŭ stilo aiohttp por AsyncHTTPProvider anstataŭ kopii la samajn request_kwargs inter ili.
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.