web3.py starpniekservera iestatījumi: HTTPProvider pret AsyncHTTPProvider
Izmantojiet Requests stila starpniekserverus HTTPProvider un aiohttp stila starpniekserveri AsyncHTTPProvider, nevis kopējiet vienus un tos pašus request_kwargs starp tiem.
web3.py 7.14 versijā HTTPProvider izmanto Requests, bet AsyncHTTPProvider izmanto aiohttp. To request_kwargs nonāk pie dažādiem HTTP klientiem.
Sinhronei HTTPS JSON-RPC galapunkta adresei:
from web3 import Web3
client = Web3(Web3.HTTPProvider(
rpc_url,
request_kwargs={
'proxies': {'https': 'http://proxy.example:8080'},
'timeout': 20,
},
))Saglabājiet rpc_url kā faktisko mezgla galapunktu. Kartes vērtība nosauc starpnieku. Publiskam RPC mezglam atļautā publiskā starpniekservera maršrutā HTTP starpniekserveru saraksts piedāvā kandidātus HTTP starpniekservera vērtībām abos piemēros.
Asinhronais nodrošinātājs tā vietā izmanto vienskaitļa proxy ar URL vērtību:
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)Starpniekserveru kopēšana asinhronajā ceļā aiohttp izraisa negaidīta atslēgvārda kļūdu. Jāmaina gan rakstība, gan vērtības tips.
Aizveriet asinhrono nodrošinātāju ar await provider.disconnect() tā tīrīšanas ceļā. Šie iestatījumi pieder HTTP nodrošinātājiem; WebSocket nodrošinātājam ir sava transporta saskarne.