Gosodiadau procsi web3.py: HTTPProvider yn erbyn AsyncHTTPProvider
Defnyddiwch brocsïau ar ddull Requests ar gyfer HTTPProvider a phrocsi ar ddull aiohttp ar gyfer AsyncHTTPProvider yn lle copïo'r un request_kwargs rhyngddynt.
Yn web3.py 7.14 mae HTTPProvider yn defnyddio Requests tra mae AsyncHTTPProvider yn defnyddio aiohttp. Mae eu request_kwargs yn cyrraedd cleientiaid HTTP gwahanol.
Ar gyfer pwynt terfyn HTTPS JSON-RPC cydamserol:
from web3 import Web3
client = Web3(Web3.HTTPProvider(
rpc_url,
request_kwargs={
'proxies': {'https': 'http://proxy.example:8080'},
'timeout': 20,
},
))Cadwch rpc_url fel pwynt terfyn gwirioneddol y nod. Mae gwerth y map yn enwi'r cyfryngwr. Ar gyfer nod RPC cyhoeddus ar lwybr procsi cyhoeddus a ganiateir, mae'r rhestr procsi HTTP yn darparu ymgeiswyr ar gyfer gwerthoedd procsi HTTP yn y naill enghraifft neu'r llall.
Mae'r darparwr asyncronaidd yn defnyddio proxy unigol gyda gwerth URL yn lle hynny:
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)Mae copïo procsïau i'r llwybr asyncronaidd yn cynhyrchu gwall allweddair annisgwyl yn aiohttp. Mae angen newid yr orgraff a'r math o werth.
Caewch y darparwr asyncronaidd gyda await provider.disconnect() yn ei lwybr glanhau. Mae'r gosodiadau hyn yn perthyn i'r darparwyr HTTP; mae gan ddarparwr WebSocket ei ryngwyneb cludo ei hun.