web3.py puhverserveri seaded: HTTPProvider vs AsyncHTTPProvider
Kasutage HTTPProvideri jaoks Requests-stiilis puhverservereid ja AsyncHTTPProvideri jaoks aiohttp-stiilis puhverserverit, selle asemel et kopeerida nende vahel sama request_kwargs.
Web3.py versioonis 7.14 kasutab HTTPProvider teeki Requests, samas kui AsyncHTTPProvider kasutab aiohttp'd. Nende request_kwargs jõuavad erinevatesse HTTP klientidesse.
Sünkroonse HTTPS JSON-RPC lõpp-punkti jaoks:
from web3 import Web3
client = Web3(Web3.HTTPProvider(
rpc_url,
request_kwargs={
'proxies': {'https': 'http://proxy.example:8080'},
'timeout': 20,
},
))Hoidke rpc_url tegeliku sõlme lõpp-punktina. Kaardis olev väärtus nimetab vahendaja. Lubatud avaliku puhverserveri marsruudil asuva avaliku RPC sõlme jaoks pakub HTTP puhverserverite loend kandidaate HTTP puhverserveri väärtustele mõlemas näites.
Asünkroonne pakkuja kasutab selle asemel ainsuses proxy't URL-väärtusega:
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)Puhverserverite kopeerimine asünkroonsele teele tekitab aiohttp's ootamatu märksõna vea. Muuta tuleb nii kirjapilti kui ka väärtuse tüüpi.
Sulgege asünkroonne pakkuja oma korrastustee await provider.disconnect() abil. Need seaded kuuluvad HTTP pakkujatele; WebSocketi pakkujal on oma transpordiliides.