Прокси подешавања у web3.py: HTTPProvider наспрам AsyncHTTPProvider
Користите проксије у стилу Requests за HTTPProvider и прокси у стилу aiohttp за AsyncHTTPProvider, уместо да копирате исте request_kwargs између њих.
У web3.py 7.14 HTTPProvider користи Requests, док AsyncHTTPProvider користи aiohttp. Њихови request_kwargs стижу до различитих HTTP клијената.
За синхрону HTTPS JSON-RPC крајњу тачку:
from web3 import Web3
client = Web3(Web3.HTTPProvider(
rpc_url,
request_kwargs={
'proxies': {'https': 'http://proxy.example:8080'},
'timeout': 20,
},
))Задржите rpc_url као стварну крајњу тачку чвора. Вредност у мапи именује посредника. За јавни RPC чвор на дозвољеној јавној прокси рути, листа HTTP проксија нуди кандидате за вредности HTTP проксија у оба примера.
Асинхрони добављач уместо тога користи једнину proxy са URL вредношћу:
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)Копирање проксија у асинхрону путању производи грешку неочекиване кључне речи у aiohttp. Потребно је променити и правопис и тип вредности.
Затворите асинхроног добављача помоћу await provider.disconnect() у његовој путањи чишћења. Ова подешавања припадају HTTP добављачима; WebSocket добављач има сопствено транспортно сучеље.