Zum Hauptinhalt springen
Change page

JavaScript-API-Bibliotheken

Damit eine Web-App mit der Ethereum-Blockchain interagieren kann (d. h. Blockchain-Daten lesen und/oder Transaktionen an das Netzwerk senden), muss sie sich mit einem Ethereum-Knoten verbinden.

Zu diesem Zweck implementiert jeder Ethereum-Client die JSON-RPC-Spezifikation, sodass es eine einheitliche Reihe von Methoden gibt, auf die sich Anwendungen verlassen können.

Wenn Sie JavaScript verwenden möchten, um sich mit einem Ethereum-Knoten zu verbinden, ist es möglich, reines (Vanilla) JavaScript zu verwenden, aber es gibt im Ökosystem mehrere praktische Bibliotheken, die dies viel einfacher machen. Mit diesen Bibliotheken können Entwickler intuitive, einzeilige Methoden schreiben, um (intern) JSON-RPC-Anfragen zu initialisieren, die mit Ethereum interagieren.

Bitte beachten Sie, dass seit dem Merge zwei verbundene Teile von Ethereum-Software – ein Ausführungsclient und ein Konsens-Client – erforderlich sind, um einen Knoten auszuführen. Bitte stellen Sie sicher, dass Ihr Knoten sowohl einen Ausführungs- als auch einen Konsens-Client enthält. Wenn sich Ihr Knoten nicht auf Ihrem lokalen Computer befindet (z. B. wenn Ihr Knoten auf einer AWS-Instanz läuft), aktualisieren Sie die IP-Adressen im Tutorial entsprechend. Weitere Informationen finden Sie auf unserer Seite zum Ausführen eines Knotens.

Voraussetzungen

Neben dem Verständnis von JavaScript könnte es hilfreich sein, den Ethereum-Stack und Ethereum-Clients zu verstehen.

Warum eine Bibliothek verwenden?

Diese Bibliotheken abstrahieren einen Großteil der Komplexität der direkten Interaktion mit einem Ethereum-Knoten. Sie bieten auch Hilfsfunktionen (z. B. die Umwandlung von ETH in Gwei), sodass Sie als Entwickler weniger Zeit mit den Feinheiten von Ethereum-Clients verbringen und sich mehr auf die einzigartige Funktionalität Ihrer Anwendung konzentrieren können.

Funktionen der Bibliothek

Mit Ethereum-Knoten verbinden

Mithilfe von Providern ermöglichen Ihnen diese Bibliotheken, sich mit Ethereum zu verbinden und dessen Daten zu lesen, sei es über JSON-RPC, Infura, Etherscan, Alchemy oder MetaMask.

Warnung: Web3.js wurde am 4. März 2025 archiviert. Lesen Sie die Ankündigung (opens in a new tab). Erwägen Sie für neue Projekte die Verwendung alternativer Bibliotheken wie Ethers.js (opens in a new tab) oder Viem (opens in a new tab).

Ethers-Beispiel

// Ein BrowserProvider umschließt einen Standard-Web3-Provider, also
// das, was MetaMask als window.ethereum in jede Seite einfügt
const provider = new ethers.BrowserProvider(window.ethereum)

// Das MetaMask-Plugin ermöglicht auch das Signieren von Transaktionen, um
// Ether zu senden und für Zustandsänderungen innerhalb der Blockchain zu bezahlen.
// Dafür benötigen wir den Account-Signer...
const signer = provider.getSigner()

Web3.js-Beispiel

Sobald dies eingerichtet ist, können Sie die Blockchain abfragen nach:

  • Blocknummern
  • Gas-Schätzungen
  • Smart-Contract-Ereignissen
  • Netzwerk-ID
  • und mehr ...

Wallet-Funktionalität

Diese Bibliotheken bieten Ihnen Funktionen zum Erstellen von Wallets, Verwalten von Schlüsseln und Signieren von Transaktionen.

Hier ist ein Beispiel von Ethers

Lesen Sie die vollständige Dokumentation (opens in a new tab)

Sobald dies eingerichtet ist, können Sie:

  • Konten erstellen
  • Transaktionen senden
  • Transaktionen signieren
  • und mehr ...

Mit Smart-Contract-Funktionen interagieren

JavaScript-Client-Bibliotheken ermöglichen es Ihrer Anwendung, Smart-Contract-Funktionen aufzurufen, indem sie das Application Binary Interface (ABI) eines kompilierten Vertrags lesen.

Das ABI erklärt im Wesentlichen die Funktionen des Vertrags in einem JSON-Format und ermöglicht es Ihnen, ihn wie ein normales JavaScript-Objekt zu verwenden.

Der folgende Solidity-Vertrag:

Würde zu folgendem JSON führen:

Das bedeutet, Sie können:

  • Eine Transaktion an den Smart Contract senden und seine Methode ausführen
  • Einen Aufruf tätigen, um das Gas zu schätzen, das eine Methodenausführung bei der Ausführung in der EVM benötigt
  • Einen Vertrag bereitstellen
  • Und mehr ...

Hilfsfunktionen

Hilfsfunktionen bieten Ihnen praktische Abkürzungen, die das Entwickeln mit Ethereum etwas einfacher machen.

ETH-Werte sind standardmäßig in Wei angegeben. 1 ETH = 1.000.000.000.000.000.000 WEI – das bedeutet, Sie haben es mit vielen Zahlen zu tun! web3.utils.toWei wandelt Ether für Sie in Wei um.

Und in Ethers sieht das so aus:

// Abrufen des Guthabens eines Kontos (über Adresse oder ENS-Namen)
balance = await provider.getBalance("ethers.eth")
// { BigNumber: "2337132817842795605" }

// Oft müssen Sie die Ausgabe für den Benutzer formatieren,
// der Werte lieber in Ether (anstatt in Wei) sieht
ethers.utils.formatEther(balance)
// '2.337132817842795605'

Verfügbare Bibliotheken

Web3.js – Ethereum-JavaScript-API.

Ethers.js – Vollständige Ethereum-Wallet-Implementierung und Hilfsprogramme in JavaScript und TypeScript.

The Graph – Ein Protokoll zur Indizierung von Ethereum- und IPFS-Daten und deren Abfrage mittels GraphQL.

Alchemy SDK – Wrapper um Ethers.js mit erweiterten APIs.

Viem – TypeScript-Schnittstelle für Ethereum.

Codex – Angereicherte Echtzeit-Blockchain-Daten-API über Dutzende von Chains hinweg.

Drift – TypeScript-Meta-Bibliothek mit integriertem Caching, Hooks und Test-Mocks.

Weiterführende Literatur

Kennen Sie eine Community-Ressource, die Ihnen geholfen hat? Bearbeiten Sie diese Seite und fügen Sie sie hinzu!

Tutorials: JavaScript-APIs & WebSockets auf Ethereum

  • WebSockets verwenden – Wie man WebSockets mit Alchemy verwendet, um Ethereum-Ereignisse zu abonnieren und JSON-RPC-Anfragen in Echtzeit zu stellen.