Was passiert eigentlich, wenn du in einer dApp auf eine Schaltfläche klickst? 👇
Angenommen, du verwendest eine dezentrale App und klickst auf „Token senden“.
Es sieht nach einer einfachen Aktion aus. Im Hintergrund passieren jedoch mehrere Dinge.
1√ Das Frontend bereitet die Anfrage vor
Deine dApp verwendet ihre Benutzeroberfläche und den Code zur Vertragsintegration, um die gewünschte Aktion vorzubereiten.
2√ Deine Wallet bittet um Genehmigung
Bei einer Transaktion, die den Zustand der Blockchain verändert, kannst du die Anfrage in deiner Wallet überprüfen und signieren. Signiere niemals etwas, das du nicht verstehst.
3️⃣ Die Transaktion wird an das Netzwerk gesendet
Die signierte Transaktion wird über einen RPC-Anbieter an das Blockchain-Netzwerk übermittelt.
4️⃣ Der Smart Contract wird ausgeführt
Das Netzwerk verarbeitet die Transaktion gemäß dem Code des Vertrags. Wenn die Transaktion erfolgreich ist, kann sich der Zustand des Vertrags ändern.
5√ Deine App überprüft das Ergebnis
Deine dApp kann den Transaktionsstatus verfolgen und nach Erhalt der entsprechenden Bestätigung ein Ergebnis anzeigen. Bei wichtigen Aktionen sollte sie den Transaktionsbeleg und die erwarteten Ereignisse überprüfen, anstatt einer Erfolgsmeldung des Frontends einfach zu vertrauen.
Ein Detail wird von Einsteigern oft übersehen:
Blockchain-Daten zu lesen ist etwas anderes, als sie zu ändern.
- „balanceOf()“ kann einen Token-Kontostand in der Regel über einen schreibgeschützten Aufruf lesen, ohne eine Transaktionsgebühr zu zahlen.
- „transfer()“ verändert den Zustand der Blockchain und erfordert im Allgemeinen eine signierte Transaktion sowie eine Netzwerkgebühr.
Der genaue Ablauf hängt von der Blockchain, der Wallet und dem Vertrag ab, die du verwendest.
Als Entwickler hilft uns das Verständnis dieses Ablaufs dabei, bessere Benutzeroberflächen zu entwickeln, Fehler richtig zu behandeln und Nutzern den Transaktionsstatus verständlicher anzuzeigen.
Ich beschäftige mich aus der Perspektive der Full-Stack- und Web3-Entwicklung mit diesen Konzepten und teile meine Erkenntnisse auf diesem Weg.
Frage an alle, die mitentwickeln: Welchen Teil soll ich als Nächstes genauer erklären: Wallet-Integration, RPC-Anbieter oder Transaktionsbelege?
#Web3Dev #SmartContracts #BinanceSquare