web3.py ප්රොක්සි සැකසුම්: HTTPProvider vs. AsyncHTTPProvider
HTTPProvider සඳහා Requests ශෛලියේ ප්රොක්සි සහ AsyncHTTPProvider සඳහා aiohttp ශෛලියේ ප්රොක්සියක් භාවිත කරන්න, ඒවා අතර එකම 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 ප්රොක්සි අගයන් සඳහා අපේක්ෂකයන් සපයයි.
අසමමුහුර්ත සපයන්නා ඒ වෙනුවට URL අගයක් සහිත ඒකවචන proxy භාවිත කරයි:
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 සපයන්නාට තමන්ගේම ප්රවාහන අතුරුමුහුණතක් ඇත.