Proxyinnstillingar i web3.py: HTTPProvider mot AsyncHTTPProvider
Bruk Requests-liknande proxyar for HTTPProvider og ein aiohttp-liknande proxy for AsyncHTTPProvider i staden for å kopiere dei same request_kwargs mellom dei.
I web3.py 7.14 brukar HTTPProvider Requests, medan AsyncHTTPProvider brukar aiohttp. Deira request_kwargs når ulike HTTP-klientar.
For eit synkront HTTPS JSON-RPC-endepunkt:
from web3 import Web3
client = Web3(Web3.HTTPProvider(
rpc_url,
request_kwargs={
'proxies': {'https': 'http://proxy.example:8080'},
'timeout': 20,
},
))Hald rpc_url som det faktiske node-endepunktet. Verdien i kartet namngjev mellomleddet. For ein offentleg RPC-node på ein tillaten offentleg proxy-rute leverer HTTP-proxylista kandidatar for HTTP-proxyverdiane i begge døma.
Den asynkrone leverandøren brukar i staden eintal proxy med ein URL-verdi:
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)Kopiering av proxyar til den asynkrone vegen gjev ein uventa nøkkelord-feil i aiohttp. Både skrivemåten og verditypen må endrast.
Lat den asynkrone leverandøren att med await provider.disconnect() i oppryddingsvegen hans. Desse innstillingane høyrer til HTTP-leverandørane; ein WebSocket-leverandør har sitt eige transportgrensesnitt.