Saitunan wakili na web3.py: HTTPProvider da AsyncHTTPProvider
Yi amfani da wakilai irin na Requests don HTTPProvider da wakili irin na aiohttp don AsyncHTTPProvider maimakon kwafin request_kwargs ɗaya a tsakaninsu.
A cikin web3.py 7.14, HTTPProvider yana amfani da Requests yayin da AsyncHTTPProvider ke amfani da aiohttp. request_kwargs ɗinsu suna isa ga abokan cinikin HTTP daban-daban.
Don maƙasudin HTTPS JSON-RPC na aiki tare:
from web3 import Web3
client = Web3(Web3.HTTPProvider(
rpc_url,
request_kwargs={
'proxies': {'https': 'http://proxy.example:8080'},
'timeout': 20,
},
))Ka riƙe rpc_url a matsayin ainihin maƙasudin node. Ƙimar da ke cikin taswirar tana ambaton mai shiga tsakani. Don node na RPC na jama'a a kan hanyar wakilin jama'a da aka yarda da ita, jerin wakilan HTTP yana ba da 'yan takara don ƙimar wakilin HTTP a kowane misali.
Mai bayarwa na async a maimakon haka yana amfani da proxy ɗaya tare da ƙimar 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)Kwafin wakilai zuwa hanyar async yana haifar da kuskuren kalmar da ba a zata ba a cikin aiohttp. Duka rubutun da nau'in ƙimar dole su canza.
Rufe mai bayarwa na async da await provider.disconnect() a hanyar tsaftacewarsa. Waɗannan saitunan na masu bayar da HTTP ne; mai bayar da WebSocket yana da nasa hanyar sadarwar.