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 പ്രൊവൈഡർക്ക് സ്വന്തം ട്രാൻസ്പോർട്ട് ഇന്റർഫേസുണ്ട്.

അനുബന്ധ ലേഖനങ്ങൾ