
Dieser Blog untersucht, wie Web3 die Entwicklung durch dezentrale Netzwerke und Smart Contracts verändert, und bietet wichtige Einblicke und Tools für den Einstieg in Ethereum.

Stellen Sie sich eine Welt vor, in der Online-Interaktionen von einem dezentralisierten Netzwerk gesteuert werden, das Transparenz, Sicherheit und Benutzerkontrolle gewährleistet – das ist es, was web3, angetrieben durch die Blockchain-Technologie, verspricht. In diesem Artikel erkunden wir die grundlegenden Konzepte und Tools, die notwendig sind, um die Entwicklung auf der Ethereum-Blockchain zu verstehen.
Um zu erklären, wie die Client-Server-Architektur in web2 funktioniert, verwenden viele die „Küchenanalogie". In dieser Analogie ist der Server wie eine Küche, und der Client (Benutzer) sendet eine Anfrage, ähnlich wie das Aufgeben einer Essensbestellung. Der Server verarbeitet diese Anfrage und gibt die Daten zurück, vergleichbar mit dem Servieren einer fertigen Mahlzeit. Die API fungiert als Kellner, der Ihre Bestellung in die Küche bringt und Ihr Essen zurückbringt – sie erleichtert die Kommunikation zwischen Client und Server, auch wenn diese nicht dieselbe Sprache sprechen.
Wir können diese Küchenanalogie erweitern, um web3 zu erklären, mit einigen wesentlichen Unterschieden: Es gibt mehrere identische Küchen (Nodes), von denen eine zufällig ausgewählt wird, und Sie müssen eine Kochgebühr im Voraus bezahlen, bevor Sie Ihre Mahlzeit erhalten.
Lassen Sie uns diese Analogien nutzen, um zu verstehen, was im Hintergrund passiert, wenn ein Benutzer mit einer Dapp interagiert. Obwohl Analogien nicht perfekt sind, können sie dabei helfen, ein mentales Modell für den Einstieg in Ihre Entwicklungsreise auf Ethereum zu schaffen.
In der dezentralisierten Welt gibt es keine traditionellen „Server". Stattdessen sind dezentralisierte Nodes über den gesamten Globus verteilt und arbeiten zusammen, um beeindruckende Ergebnisse zu erzielen. Diese Nodes pflegen gemeinsam ein geteiltes, unveränderliches Ledger, die sogenannte Blockchain, die sicherstellt, dass jede Transaktion sicher und transparent ist. Jeder Node kann Ihre Transaktion verarbeiten oder Ihren Smart-Contract-Code ausführen.
Ein Blockchain-Node ist jeder Computer, der die Software für ein Blockchain-Protokoll ausführt und sich mit dessen Netzwerk verbindet. Diese Nodes sind das Rückgrat eines dezentralisierten Netzwerks und fungieren als wichtige Akteure, die die Infrastruktur der Blockchain aufrechterhalten. Sie dienen als Speicherpunkte: Wann immer ein Benutzer auf Daten in der Blockchain zugreift, interagiert er mit einem Node. Nodes sind transparent und für jeden im Netzwerk zugänglich.
Da Blockchains ohne zentrale Autorität funktionieren, ist die Kontrolle auf ein Netzwerk von Nodes verteilt, die gemeinsam Aufgaben wie die Validierung von Transaktionen und die Ausführung von Governance-Protokollen übernehmen. Alle Token und Smart Contracts auf einer Blockchain befinden sich innerhalb von Nodes, was sie für die Funktionalität der Blockchain unverzichtbar macht. Ohne Nodes würde die grundlegende Struktur von Blockchains nicht existieren.
Ein Smart Contract ist ein selbstausführendes Programm, das auf der Blockchain läuft und bei dem die Bedingungen der Vereinbarung direkt darin kodiert sind. Wenn bestimmte Bedingungen erfüllt sind, setzt der Vertrag die vereinbarten Bedingungen automatisch durch und führt sie aus, wodurch die Notwendigkeit von Vermittlern entfällt.
Eine wesentliche Herausforderung in diesem dezentralisierten Netzwerk besteht jedoch darin, sicherzustellen, dass Nodes ehrlich handeln und Benutzeranfragen korrekt verarbeiten, angesichts des Fehlens einer zentralen Autorität. Hier kommt das Konzept des „Consensus" ins Spiel.
Consensus-Mechanismen stellen sicher, dass alle Transaktionen von Nodes verifiziert und bestätigt werden, wodurch Betrug und Double-Spending verhindert sowie die Integrität der Blockchain gewahrt wird. Um unsere Küchenanalogie zu erweitern: Nachdem die ausgewählte Küche Ihre Bestellung zubereitet hat, teilt sie das fertige Gericht und das Rezept mit anderen Küchen. Diese Küchen folgen dann demselben Rezept, vergleichen die Ergebnisse und bestätigen gemeinsam, dass die Bestellung korrekt zubereitet wurde, um Konsistenz und Genauigkeit im gesamten Netzwerk sicherzustellen.
Anders als in web2, wo Sie die Infrastruktur für die Bereitstellung von Servern verwalten müssen, verlagert web3 einen Großteil der Backend-Logik auf Smart Contracts in der Blockchain. Im Folgenden finden Sie einige Entwicklungsumgebungen, die den gesamten Lebenszyklus der Smart-Contract-Entwicklung vereinfachen:
Hardhat: Eine umfassende Entwicklungsumgebung, die Komponenten zum Bearbeiten, Kompilieren, Debuggen und Bereitstellen von Smart Contracts und Apps enthält. Ideal, wenn Sie in JavaScript versiert sind und eine umfangreiche Integration mit Web-Technologien benötigen.
Foundry: Eine schnelle, effiziente Option, die alles innerhalb des Solidity-Ökosystems hält und die Produktivität durch ihre Geschwindigkeit und native Unterstützung für Solidity steigert.
Für einen detaillierten Vergleich von Hardhat und Foundry lesen Sie unseren Leitfaden Choosing the Right Ethereum Development Tool.
Remix: Eine Online-IDE mit vorinstallierten Plugins für wesentliche Operationen, ideal zum schnellen Testen von Code, ohne lokal etwas installieren zu müssen.
Entwickler können verschiedene High-Level-Programmiersprachen verwenden, um Smart Contracts zu schreiben, die dann in Low-Level-Bytecode kompiliert werden. Die zwei beliebtesten Sprachen sind:
Solidity: Bekannt für seine JavaScript-ähnliche Syntax, die es für viele Entwickler zugänglich macht.
Vyper: Entwickelt für verbesserte Sicherheit und Lesbarkeit mit Python-ähnlicher Syntax.
Weitere Sprachen sind Yul, Cairo und Rust, die je nach Ihren Entwicklungsanforderungen zusätzliche Optionen bieten.
Wie gelangt Ihre Essensbestellung von Ihrem Tisch in die Küche, und wie kommt die fertige Bestellung zurück zu Ihrem Tisch? Durch Kellner, natürlich!
In web2 fungieren REST-APIs als „Kellner" und erleichtern die Kommunikation zwischen Ihrer Anwendung und dem Backend-Server, auf dem die Geschäftslogik liegt. Um mit diesem Backend zu interagieren, benötigen Sie eine URL und spezifische Endpunkte für verschiedene Operationen.
In web3 erfolgt die Interaktion mit dem Blockchain-Node über eine JSON-RPC API. Diese API ermöglicht es mehreren Dapps, mit derselben URL zu interagieren, indem der Contract, der die Geschäftslogik enthält, im Body des JSON-RPC-Aufrufs angegeben wird. Obwohl Sie mit JSON-RPC APIs möglicherweise weniger vertraut sind, funktionieren sie ähnlich wie typische HTTP-Anfragen, wie hier gezeigt:
Schauen Sie sich genau an, was sich im Datenobjekt des Request-Body befindet:
{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}Es enthält die JSON-RPC-Version, eine Methode für die gewünschte Aktion (z. B. Abrufen der neuesten Blocknummer), optionale Parameter und eine ID zur Verfolgung der Anfrage. Dieses Format standardisiert die Kommunikation mit Ethereum-Nodes, sei es für den Datenabruf oder die Ausführung von Blockchain-Aktionen.
Die URL in der Anfrage verweist auf Infura, einen Node-Anbieter, der uns die Komplexität und den Ressourcenaufwand erspart, unseren eigenen Ethereum-Node einzurichten und zu warten. Diese URL dient als Gateway zur Blockchain.
Erinnern Sie sich an den früheren Hinweis, eine Kochgebühr im Voraus zu bezahlen? In web3 entstehen bei der Ausführung von Transaktionen Kosten, die als „Gas Fee" bekannt sind und von der Komplexität der Transaktion sowie der Netzwerkauslastung zum jeweiligen Zeitpunkt abhängen. Das Lesen von Daten aus der Blockchain ist jedoch kostenlos.
Um sicherzustellen, dass Ihre Transaktion korrekt verstanden und ausgeführt wird, ist eine standardisierte Beschreibung erforderlich. Hier kommt das ABI (Application Binary Interface) ins Spiel – es fungiert wie eine Speisekarte und definiert, wie mit den Funktionen des Smart Contracts interagiert werden soll, welche Parameter erforderlich sind und wie die Funktion ausgeführt werden soll.
Wie kommuniziert Ihre Dapp also mit bereitgestellten Smart Contracts? Wie bereits besprochen, erfordert dies die Verwendung der JSON-RPC API. Um diesen Prozess zu vereinfachen, können jedoch mehrere Bibliotheken helfen. In JavaScript stehen Optionen wie Ethers.js oder Viem zur Verfügung, und für React-basierte Frontends ist wagmi – eine React-Hooks-Bibliothek für Ethereum – besonders nützlich. Diese Bibliotheken kapseln Ihre JSON-RPC-Aufrufe und machen Interaktionen mit der Blockchain und Ihren bereitgestellten Contracts übersichtlicher.
Viem und damit auch Wagmi (das viem im Hintergrund verwendet) bietet stark typisierte APIs, die die Entwicklererfahrung durch Autovervollständigung, Typinferenz und statische Validierung verbessern. Durch die Bereitstellung eines ABI bietet viem Autovervollständigung und erkennt Typfehler, bevor sie sich auf Benutzer auswirken.
Unsicher, ob Sie ethers.js oder viem wählen sollen? Lesen Sie diesen detaillierten Vergleich für Web3-Entwickler.
Es gibt mehrere Möglichkeiten, mit Smart Contracts zu interagieren, aber lassen Sie uns die beliebteste Methode erkunden: über eine Dapp, eine dezentralisierte Web- oder Mobile-App, die für die Interaktion mit der Blockchain konzipiert ist.
Was unterscheidet also eine Dapp von einer typischen Web-App? Visuell gibt es oft keinen wesentlichen Unterschied. Entwickler können in web3 vertraute Web-Frameworks aus web2 verwenden, wie React, Next.js oder sogar Vanilla JavaScript, und Dapps auf ähnliche Weise bereitstellen. Es gibt jedoch dezentralisierte Speicherlösungen wie IPFS (InterPlanetary File System) oder SWARM, die in web3 häufig verwendet werden.
Ein charakteristisches Merkmal der meisten web3-Apps ist die „Connect Wallet"-Funktionalität. Wenn Sie in einer Dapp auf „Connect Wallet" klicken, autorisieren Sie die Anwendung, mit Ihrer Wallet zu interagieren, sodass sie Ihre öffentliche Adresse lesen und Transaktionen in Ihrem Namen anfordern kann. Transaktionen müssen authentifiziert werden, um zu überprüfen, ob der Benutzer berechtigt ist, die Aktion durchzuführen. Dies wird durch Signing erreicht, ein Prozess, der Ihren Private Key verwendet – einen eindeutigen Identifikator, der Ihr Eigentum an einem Ethereum-Konto beweist und sicher in Ihrer Wallet gespeichert ist.
Lassen Sie uns tiefer in Wallets eintauchen: Wallets gibt es in verschiedenen Formen, darunter Browser-Erweiterungen, Mobile Apps und sogar physische Geräte, wobei MetaMask eine der beliebtesten ist. Genau wie Restaurants in der realen Welt mehrere Zahlungsmethoden akzeptieren, müssen Sie möglicherweise mehrere Wallets in Ihrer Dapp unterstützen.
Um die Connect-Wallet-Funktion einfach zu implementieren und verschiedene Wallet-Typen zu unterstützen, sollten Sie folgende Tools in Betracht ziehen:
Diese Tools können den Integrationsprozess vereinfachen und eine nahtlose Verbindung zwischen Ihrer Dapp und der Wallet des Benutzers gewährleisten.
Die web3-Entwicklung verändert die Funktionsweise von Apps, indem sie Smart Contracts auf der Blockchain einsetzt, sie dauerhaft macht und Backend-Aufgaben von zentralisierten Servern wegverlagert. Dieser Wandel erfordert, dass Entwickler sich mit Dingen wie Transaction Signing, dem Umgang mit Gas Fees und der Verwendung von JSON-RPC APIs vertraut machen, was sie von der traditionellen web2-Entwicklung unterscheidet. Obwohl dies eine Herausforderung sein kann, eröffnet es auch neue und spannende Möglichkeiten.
Um mehr über die web3-Entwicklung zu erfahren und über die neuesten Tools und Best Practices auf dem Laufenden zu bleiben, besuchen Sie den MetaMask-Blog für entwicklerorientierte Einblicke und Leitfäden.
KI-übersetzt. Kann Fehler enthalten. Bitte überprüfen Sie die Informationen stets.