Kernpunkte
- Web3.py verbindet Python-Dienste mit Ethereum und EVM-kompatiblen Netzwerken.
- Es ermöglicht Datenabfragen, die Arbeit mit Contracts und die Vorbereitung von Transaktionen.
- Automatisierung erfordert die Verwaltung von Schlüsseln und Nonces sowie die Wiederherstellung nach Fehlern.
Was ist Web3.py?
Web3.py ist eine Python-Bibliothek zur Abfrage von Ethereum und anderen Netzwerken, die kompatible EVM-Schnittstellen bereitstellen. Sie ermöglicht es, Blöcke zu lesen, mit Smart Contracts zu interagieren, Events zu verarbeiten und Transaktionen vorzubereiten. Sie eignet sich für Dienste, Skripte und Analysen, die bereits auf das Python-Ökosystem setzen.
Es handelt sich um ein von Web3.js unabhängiges Projekt mit eigenem Versionszyklus. Angaben zu Providern, asynchronen APIs und Python-Anforderungen müssen der installierten Version entsprechen. Die Einstellung von Web3.js bedeutet nicht, dass web3.py eingestellt wurde.
So funktioniert es
Der Client greift über einen Provider auf den Node zu. Die synchronen Varianten eignen sich für einfache Skripte, mit AsyncWeb3 lassen sich asynchrone Aufrufe organisieren. Persistente Provider unterstützen je nach Konfiguration Subscriptions; die konkreten Namen und Methoden sollten in der Dokumentation der verwendeten Version geprüft werden.
Die Contracts werden über Adresse und ABI geladen. Beträge werden in kleinsten Einheiten gehalten und bei Anzeige oder Export kontrolliert umgerechnet. Die Signatur erfolgt über geeignete Accounts und Komponenten, wobei Schlüssel und Autorisierung von dem Code getrennt bleiben, der Daten abfragt oder transformiert.
Was Web3.py leistet
Ein Abstimmungsprozess kann Events intervallweise abrufen, Mengen normalisieren und mit dem internen Register abgleichen. Jede Zeile enthält Netzwerk, Contract, Transaktion und Event-ID. So lassen sich Duplikate erkennen und Berichte neu erstellen, wenn sich eine Klassifizierungsregel ändert oder eine Differenz untersucht wird.
Die Nebenläufigkeit wird nach RPC und Transformationsaufwand begrenzt. Ein asynchroner Dienst darf nicht unbegrenzt Anfragen öffnen. Fortschrittsmarken, kontrollierte Wiederholungen und die Wiederherstellung nach Reorganisationen ermöglichen es, den Prozess nach einer Unterbrechung fortzusetzen, ohne Bewegungen zu verlieren oder zu duplizieren.
Grenzen und Auswahlkriterien
Web3.py ersetzt keine spezifischen SDKs für Netzwerke mit anderen Schnittstellen. Es liefert auch nicht von sich aus eine indexierte historische Datenbasis aller Token eines Kontos: Bestimmte Abfragen erfordern Events, Indizes oder zusätzliche Dienste. Wichtig ist die Trennung zwischen dem, was der Node beantwortet, und dem, was die Anwendung berechnen muss.
Die Auswahl hängt von den Datenbibliotheken und der Umgebung des Teams ab. Versionen werden mit ihren Python-Anforderungen festgeschrieben und vor einem Update getestet. Die Performance wird an realen Abfragen, Dekodierungen und Speichervorgängen gemessen; pauschale Angaben zu Events pro Sekunde ohne definierte Last sind zu vermeiden.
Auch bekannt als
- web3.py
- Python web3





