Στο 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 έχει τη δική του διεπαφή μεταφοράς.

Σχετικά άρθρα