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.

Saistītie raksti