web3.py 7.14 sürümünde HTTPProvider Requests kullanırken AsyncHTTPProvider aiohttp kullanır. request_kwargs değerleri farklı HTTP istemcilerine ulaşır.

Eşzamanlı bir HTTPS JSON-RPC uç noktası için:

from web3 import Web3

client = Web3(Web3.HTTPProvider(
    rpc_url,
    request_kwargs={
        'proxies': {'https': 'http://proxy.example:8080'},
        'timeout': 20,
    },
))

rpc_url'yi düğümün gerçek uç noktası olarak tutun. Eşlemedeki değer aracıyı adlandırır. İzin verilen bir genel proxy rotasındaki genel RPC düğümü için HTTP proxy listesi her iki örnekteki HTTP proxy değerleri için adaylar sunar.

Eşzamansız sağlayıcı bunun yerine URL değeri alan tekil proxy kullanır:

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)

Proxy'leri eşzamansız yola kopyalamak aiohttp içinde beklenmeyen anahtar sözcük hatası üretir. Hem yazım hem de değer türü değişmelidir.

Eşzamansız sağlayıcıyı temizleme yolunda await provider.disconnect() ile kapatın. Bu ayarlar HTTP sağlayıcılarına aittir; bir WebSocket sağlayıcısının kendi taşıma arayüzü vardır.

İlgili makaleler