የweb3.py ፕሮክሲ ቅንብሮች፡ HTTPProvider ከ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 ፕሮክሲ እሴቶች እጩዎችን ይሰጣል።
የተመሳሳዩ አልተመሳሰለ አቅራቢ በምትኩ ነጠላ proxy ከ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)ፕሮክሲዎችን ወደ አልተመሳሰለው መንገድ መቅዳት በaiohttp ውስጥ ያልተጠበቀ ቁልፍ ቃል ስህተት ያስከትላል። ሁለቱም አጻጻፉ እና የእሴት ዓይነቱ መቀየር አለባቸው።
አልተመሳሰለውን አቅራቢ በማጽዳት መንገዱ ላይ በawait provider.disconnect() ይዝጉት። እነዚህ ቅንብሮች የHTTP አቅራቢዎች ናቸው፤ የWebSocket አቅራቢ የራሱ የመጓጓዣ በይነገጽ አለው።